From: Ronnie Sahlberg Date: Sun, 19 Jun 2011 13:20:35 +0000 (+1000) Subject: remove the need for an explicit rpc context for the highlevel function mount_getexports() X-Git-Tag: upstream/1.9.6^2~394 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=e210bd2af80d4817e6debf48192ba685c6620864;p=deb_libnfs.git remove the need for an explicit rpc context for the highlevel function mount_getexports() --- diff --git a/examples/nfsclient-sync.c b/examples/nfsclient-sync.c index 6fc219e..9370443 100644 --- a/examples/nfsclient-sync.c +++ b/examples/nfsclient-sync.c @@ -62,19 +62,15 @@ int main(int argc _U_, char *argv[] _U_) off_t offset; struct statvfs svfs; exports export, tmp; - struct rpc_context *mount_context; printf("exports on server %s\n", SERVER); - mount_context = rpc_init_context(); - export = mount_getexports(mount_context, SERVER); + export = mount_getexports(SERVER); tmp = export; while (tmp != NULL) { printf("Export: %s\n", tmp->ex_dir); tmp = tmp->ex_next; } mount_free_export_list(export); - rpc_destroy_context(mount_context); - nfs = nfs_init_context(); diff --git a/include/libnfs.h b/include/libnfs.h index de46b5e..e77e1d6 100644 --- a/include/libnfs.h +++ b/include/libnfs.h @@ -945,7 +945,7 @@ int mount_getexports_async(struct rpc_context *rpc, const char *server, rpc_cb c * * returned data must be freed by calling mount_free_export_list(exportnode); */ -struct exportnode *mount_getexports(struct rpc_context *rpc, const char *server); +struct exportnode *mount_getexports(const char *server); void mount_free_export_list(struct exportnode *exports); diff --git a/lib/libnfs-sync.c b/lib/libnfs-sync.c index cef6444..3b10e0a 100644 --- a/lib/libnfs-sync.c +++ b/lib/libnfs-sync.c @@ -1093,19 +1093,23 @@ void mount_getexports_cb(struct rpc_context *mount_context _U_, int status, void } } -struct exportnode *mount_getexports(struct rpc_context *rpc, const char *server) +struct exportnode *mount_getexports(const char *server) { struct sync_cb_data cb_data; + struct rpc_context *rpc; + cb_data.is_finished = 0; cb_data.return_data = NULL; + rpc = rpc_init_context(); if (mount_getexports_async(rpc, server, mount_getexports_cb, &cb_data) != 0) { - rpc_set_error(rpc, "mount_getexports_async failed"); + rpc_destroy_context(rpc); return NULL; } wait_for_reply(rpc, &cb_data); + rpc_destroy_context(rpc); return cb_data.return_data; }