X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Flibnfs-sync.c;h=4c8ba76a5139eb2e66351498fdc992a55cda8990;hb=5e9910f0f0b2a1c71a08e910e7123efcadef46bf;hp=cef644475f296f2c55719e64a8fcbbe91332dbb4;hpb=df5af25fd2ce5f5da48fe0c35d8ea337725bd15a;p=deb_libnfs.git diff --git a/lib/libnfs-sync.c b/lib/libnfs-sync.c index cef6444..4c8ba76 100644 --- a/lib/libnfs-sync.c +++ b/lib/libnfs-sync.c @@ -1069,16 +1069,20 @@ int nfs_link(struct nfs_context *nfs, const char *oldpath, const char *newpath) return cb_data.status; } -void mount_getexports_cb(struct rpc_context *mount_context _U_, int status, void *data, void *private_data) +void mount_getexports_cb(struct rpc_context *mount_context, int status, void *data, void *private_data) { struct sync_cb_data *cb_data = private_data; exports export = *(exports *)data; - printf("got exports back\n"); cb_data->is_finished = 1; cb_data->status = status; cb_data->return_data = NULL; + if (status != 0) { + rpc_set_error(mount_context, "mount/export call failed with \"%s\"", (char *)data); + return; + } + while (export != NULL) { exports new_export; @@ -1093,19 +1097,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; }