コード例 #1
0
/*
 * 2.2.14.  symlinkargs
 *
 *	struct symlinkargs {
 *		diropargs from;
 *		path to;
 *		sattr attributes;
 *	};
 */
static void nfs2_xdr_enc_symlinkargs(struct rpc_rqst *req,
				     struct xdr_stream *xdr,
				     const struct nfs_symlinkargs *args)
{
	encode_diropargs(xdr, args->fromfh, args->fromname, args->fromlen);
	encode_path(xdr, args->pages, args->pathlen);
	encode_sattr(xdr, args->sattr);
}
コード例 #2
0
ファイル: mount.c プロジェクト: elambert/honeycomb
int
get_handle(int nodeid, int diskid, int mapid, fhandle3 *filehandle)
{
    CLIENT *clnt = NULL;
    int error = 0;
    char nodeAddr[32];
    char *diskPath = NULL;

    diskPath = (char*)malloc(MNTPATHLEN);
    if (!diskPath) {
        return(1);
    }

    snprintf(nodeAddr, sizeof(nodeAddr), "%s.%d", INTERNAL_SUBNET, nodeid + NODEBASEID);
    encode_path(diskid, mapid, diskPath, MNTPATHLEN);
    
    clnt = clnt_create_timed(nodeAddr, MOUNT_PROGRAM, MOUNT_V3, "udp", &HCRPC_TIMEOUT);
    if (!clnt) {
        free(diskPath);
        log_error("clnt_create failed(%d, %d)", nodeid, diskid);
        return(1);
    }

    error = single_mount(clnt, diskPath, filehandle);

    if (clnt) {
        clnt_destroy(clnt);
        clnt = NULL;
    }
    if (diskPath) {
        free(diskPath);
        diskPath = NULL;
    }
    
    return(error);
}
コード例 #3
0
ファイル: encode.hpp プロジェクト: Plaristote/uri
String encode_path(const String &path) {
  String encoded;
  encode_path(std::begin(path), std::end(path), std::back_inserter(encoded));
  return encoded;
}