X-Git-Url: https://git.piment-noir.org/?p=deb_libnfs.git;a=blobdiff_plain;f=lib%2Flibnfs-sync.c;h=59911fc867db45e4f4a2470870445f95774e6f29;hp=2851a9109f4aeb625c6f171e8fd9a71afc446bc7;hb=23b10e1f18c57e88ac4ef13b4dd08b976834260d;hpb=c50173cf0d1fbaafcbf444d0b980de72b83373c9 diff --git a/lib/libnfs-sync.c b/lib/libnfs-sync.c index 2851a91..59911fc 100644 --- a/lib/libnfs-sync.c +++ b/lib/libnfs-sync.c @@ -1277,6 +1277,40 @@ int nfs_access(struct nfs_context *nfs, const char *path, int mode) +/* + * access2() + */ +static void access2_cb(int status, struct nfs_context *nfs, void *data, void *private_data) +{ + struct sync_cb_data *cb_data = private_data; + + cb_data->is_finished = 1; + cb_data->status = status; + + if (status < 0) { + nfs_set_error(nfs, "access2 call failed with \"%s\"", (char *)data); + return; + } +} + +int nfs_access2(struct nfs_context *nfs, const char *path) +{ + struct sync_cb_data cb_data; + + cb_data.is_finished = 0; + + if (nfs_access2_async(nfs, path, access2_cb, &cb_data) != 0) { + nfs_set_error(nfs, "nfs_access2_async failed"); + return -1; + } + + wait_for_nfs_reply(nfs, &cb_data); + + return cb_data.status; +} + + + /* * symlink() */