Net-LibNFS

 view release on metacpan or  search on metacpan

libnfs/include/libnfs-private.h  view on Meta::CPAN

void rpc_free_all_fragments(struct rpc_context *rpc);
int rpc_is_udp_socket(struct rpc_context *rpc);
uint64_t rpc_current_time(void);

void *zdr_malloc(ZDR *zdrs, uint32_t size);


struct nfs_cb_data;
void free_nfs_cb_data(struct nfs_cb_data *data);

struct nfs_specdata {
        uint32_t specdata1;
        uint32_t specdata2;
};
struct nfs_time {
        uint32_t seconds;
        uint32_t nseconds;
};
struct nfs_attr {
        uint32_t type;
        uint32_t mode;
        uint32_t uid;
        uint32_t gid;
        uint32_t nlink;
        uint64_t size;
        uint64_t used;
        uint64_t fsid;
        struct nfs_specdata rdev;
        struct nfs_time atime;
        struct nfs_time mtime;
        struct nfs_time ctime;
};

struct nfs_fh {
        int len;
        char *val;
};

libnfs/lib/nfs_v3.c  view on Meta::CPAN

#include <sys/stat.h>
#include <fcntl.h>
#include "libnfs-zdr.h"
#include "slist.h"
#include "libnfs.h"
#include "libnfs-raw.h"
#include "libnfs-raw-mount.h"
#include "libnfs-private.h"

static dev_t
specdata3_to_rdev(struct specdata3 *rdev)
{
#ifdef makedev
	return makedev(rdev->specdata1, rdev->specdata2);
#else
	return 0;
#endif
}

struct mount_attr_cb {
	int wait_count;
	struct nfs_cb_data *data;
};

libnfs/lib/nfs_v3.c  view on Meta::CPAN

fattr3_to_nfs_attr(struct nfs_attr *attr, fattr3 *fa3)
{
        attr->type  = fa3->type;
        attr->mode  = fa3->mode;
        attr->uid   = fa3->uid;
        attr->gid   = fa3->gid;
        attr->nlink = fa3->nlink;
        attr->size  = fa3->size;
        attr->used  = fa3->used;
        attr->fsid  = fa3->fsid;
        attr->rdev.specdata1 = fa3->rdev.specdata1;
        attr->rdev.specdata2 = fa3->rdev.specdata2;
        attr->atime.seconds  = fa3->atime.seconds;
        attr->atime.nseconds = fa3->atime.nseconds;
        attr->mtime.seconds  = fa3->mtime.seconds;
        attr->mtime.nseconds = fa3->mtime.nseconds;
        attr->ctime.seconds  = fa3->ctime.seconds;
        attr->ctime.nseconds = fa3->ctime.nseconds;
}

static void
nfs3_lookup_path_1_cb(struct rpc_context *rpc, int status, void *command_data,

libnfs/lib/nfs_v3.c  view on Meta::CPAN

			nfsdirent->mtime.tv_sec  = attributes->mtime.seconds;
			nfsdirent->mtime.tv_usec = attributes->mtime.nseconds/1000;
			nfsdirent->mtime_nsec = attributes->mtime.nseconds;
			nfsdirent->ctime.tv_sec  = attributes->ctime.seconds;
			nfsdirent->ctime.tv_usec = attributes->ctime.nseconds/1000;
			nfsdirent->ctime_nsec = attributes->ctime.nseconds;
			nfsdirent->uid = attributes->uid;
			nfsdirent->gid = attributes->gid;
			nfsdirent->nlink = attributes->nlink;
			nfsdirent->dev = attributes->fsid;
			nfsdirent->rdev = specdata3_to_rdev(&attributes->rdev);
			nfsdirent->blksize = NFS_BLKSIZE;
			nfsdirent->blocks = (attributes->used + 512 - 1) / 512;
			nfsdirent->used = attributes->used;
		}
	}

	if (rdpe_cb_data->getattrcount == 0) {
		if (rdpe_cb_data->status != RPC_STATUS_SUCCESS) {
			nfs_set_error(nfs, "READDIRPLUS emulation "
			      "failed: %s", rpc_get_error(rpc));

libnfs/lib/nfs_v3.c  view on Meta::CPAN

				if (mnt->path[splen] != '/')
					continue;
				if (strcmp(mnt->path + splen + 1, entry->name))
					continue;
				attr = mnt->attr;
                                has_attr = 1;
				break;
			}
		}
		if (has_attr) {
                        struct specdata3 sd3 = { attr.rdev.specdata1,
                                                 attr.rdev.specdata2 };

			nfsdirent->type = attr.type;
			nfsdirent->mode = attr.mode;
			switch (nfsdirent->type) {
			case NF3REG:  nfsdirent->mode |= S_IFREG; break;
			case NF3DIR:  nfsdirent->mode |= S_IFDIR; break;
			case NF3BLK:  nfsdirent->mode |= S_IFBLK; break;
			case NF3CHR:  nfsdirent->mode |= S_IFCHR; break;
			case NF3LNK:  nfsdirent->mode |= S_IFLNK; break;
			case NF3SOCK: nfsdirent->mode |= S_IFSOCK; break;

libnfs/lib/nfs_v3.c  view on Meta::CPAN

			nfsdirent->mtime.tv_sec  = attr.mtime.seconds;
			nfsdirent->mtime.tv_usec = attr.mtime.nseconds/1000;
			nfsdirent->mtime_nsec = attr.mtime.nseconds;
			nfsdirent->ctime.tv_sec  = attr.ctime.seconds;
			nfsdirent->ctime.tv_usec = attr.ctime.nseconds/1000;
			nfsdirent->ctime_nsec = attr.ctime.nseconds;
			nfsdirent->uid = attr.uid;
			nfsdirent->gid = attr.gid;
			nfsdirent->nlink = attr.nlink;
			nfsdirent->dev = attr.fsid;
			nfsdirent->rdev = specdata3_to_rdev(&sd3);
			nfsdirent->blksize = NFS_BLKSIZE;
			nfsdirent->blocks = (attr.used + 512 - 1) / 512;
			nfsdirent->used = attr.used;
		}

		nfsdirent->next  = nfsdir->entries;
		nfsdir->entries  = nfsdirent;

		cookie = entry->cookie;
		entry  = entry->nextentry;

libnfs/lib/nfs_v3.c  view on Meta::CPAN

	str = &str[strlen(str) + 1];

	args.where.dir.data.data_len = data->fh.len;
	args.where.dir.data.data_val = data->fh.val;
	args.where.name = str;
	switch (cb_data->mode & S_IFMT) {
	case S_IFCHR:
		args.what.type = NF3CHR;
		args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		args.what.mknoddata3_u.chr_device.spec.specdata1 = cb_data->major;
		args.what.mknoddata3_u.chr_device.spec.specdata2 = cb_data->minor;
		break;
	case S_IFBLK:
		args.what.type = NF3BLK;
		args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		args.what.mknoddata3_u.blk_device.spec.specdata1 = cb_data->major;
		args.what.mknoddata3_u.blk_device.spec.specdata2 = cb_data->minor;
                break;
	case S_IFSOCK:
		args.what.type = NF3SOCK;
		args.what.mknoddata3_u.sock_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.sock_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		break;
	case S_IFIFO:
		args.what.type = NF3FIFO;
		args.what.mknoddata3_u.pipe_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.pipe_attributes.mode.set_mode3_u.mode = cb_data->mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);

libnfs/lib/nfs_v3.c  view on Meta::CPAN

	case NF3SOCK:
		st.st_mode |= S_IFSOCK;
		break;
	case NF3FIFO:
		st.st_mode |= S_IFIFO;
		break;
	}
        st.st_nlink   = res->GETATTR3res_u.resok.obj_attributes.nlink;
        st.st_uid     = res->GETATTR3res_u.resok.obj_attributes.uid;
        st.st_gid     = res->GETATTR3res_u.resok.obj_attributes.gid;
	st.st_rdev    = specdata3_to_rdev(&res->GETATTR3res_u.resok.obj_attributes.rdev);
        st.st_size    = res->GETATTR3res_u.resok.obj_attributes.size;
#ifndef WIN32
        st.st_blksize = NFS_BLKSIZE;
	st.st_blocks  = (res->GETATTR3res_u.resok.obj_attributes.used + 512 - 1) / 512;
#endif//WIN32
        st.st_atime   = res->GETATTR3res_u.resok.obj_attributes.atime.seconds;
        st.st_mtime   = res->GETATTR3res_u.resok.obj_attributes.mtime.seconds;
        st.st_ctime   = res->GETATTR3res_u.resok.obj_attributes.ctime.seconds;
#ifdef HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
	st.st_atim.tv_nsec = res->GETATTR3res_u.resok.obj_attributes.atime.nseconds;

libnfs/lib/nfs_v3.c  view on Meta::CPAN

	case NF3SOCK:
		st.nfs_mode |= S_IFSOCK;
		break;
	case NF3FIFO:
		st.nfs_mode |= S_IFIFO;
		break;
	}
        st.nfs_nlink   = res->GETATTR3res_u.resok.obj_attributes.nlink;
        st.nfs_uid     = res->GETATTR3res_u.resok.obj_attributes.uid;
        st.nfs_gid     = res->GETATTR3res_u.resok.obj_attributes.gid;
	st.nfs_rdev    = specdata3_to_rdev(&res->GETATTR3res_u.resok.obj_attributes.rdev);
        st.nfs_size    = res->GETATTR3res_u.resok.obj_attributes.size;
	st.nfs_blksize = NFS_BLKSIZE;
	st.nfs_blocks  = (res->GETATTR3res_u.resok.obj_attributes.used + 512 - 1) / 512;
        st.nfs_atime   = res->GETATTR3res_u.resok.obj_attributes.atime.seconds;
        st.nfs_mtime   = res->GETATTR3res_u.resok.obj_attributes.mtime.seconds;
        st.nfs_ctime   = res->GETATTR3res_u.resok.obj_attributes.ctime.seconds;
	st.nfs_atime_nsec = res->GETATTR3res_u.resok.obj_attributes.atime.nseconds;
	st.nfs_mtime_nsec = res->GETATTR3res_u.resok.obj_attributes.mtime.nseconds;
	st.nfs_ctime_nsec = res->GETATTR3res_u.resok.obj_attributes.ctime.nseconds;
	st.nfs_used    = res->GETATTR3res_u.resok.obj_attributes.used;

libnfs/lib/nfs_v3.c  view on Meta::CPAN

		/* align end offset to blocksize */
		count += NFS_BLKSIZE - 1 ;
		count &= ~(NFS_BLKSIZE - 1);
	}

	data->offset = offset;
	data->count = (count3)count;

	if (nfsfh->pagecache.num_entries) {
		while (count > 0) {
			char *cdata = nfs_pagecache_get(&nfsfh->pagecache,
                                                        offset);
			if (!cdata) {
				break;
			}
			/* we copy data from the pagecache so we need a
                         * reassembly buffer */
			if (data->buffer == NULL) {
				data->buffer = malloc(data->count);
				if (data->buffer == NULL) {
					free_nfs_cb_data(data);
					return -ENOMEM;
				}
			}
			memcpy(data->buffer + offset - data->offset, cdata,
                               NFS_BLKSIZE);
			offset += NFS_BLKSIZE;
			count -= NFS_BLKSIZE;
		}
		if (!count) {
			data->nfsfh->ra.fh_offset = data->offset + data->count;
			if (update_pos) {
				data->nfsfh->offset = data->org_offset + data->org_count;
			}
			data->cb(data->org_count, nfs, data->buffer + (data->org_offset - data->offset), data->private_data);

libnfs/lib/nfs_v4.c  view on Meta::CPAN

        }
        if (linkdata) {
                cargs->objtype.createtype4_u.linkdata.utf8string_len =
                        strlen(linkdata);
                cargs->objtype.createtype4_u.linkdata.utf8string_val =
                        discard_const(linkdata);
        }
        switch (type) {
        case NF4CHR:
                cargs->objtype.type = NF4CHR;
                cargs->objtype.createtype4_u.devdata.specdata1 = major(dev);
                cargs->objtype.createtype4_u.devdata.specdata2 = minor(dev);
                break;
        case NF4BLK:
                cargs->objtype.type = NF4BLK;
                cargs->objtype.createtype4_u.devdata.specdata1 = major(dev);
                cargs->objtype.createtype4_u.devdata.specdata2 = minor(dev);
                break;
        default:
                ;
        }
        return 1;
}

static int
nfs4_op_commit(struct nfs_context *nfs, nfs_argop4 *op)
{

libnfs/nfs/libnfs-raw-nfs.c  view on Meta::CPAN

{
	register int32_t *buf;
	buf = NULL;

	 if (!zdr_uint64_t (zdrs, objp))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_specdata3 (ZDR *zdrs, specdata3 *objp)
{
	register int32_t *buf;
	buf = NULL;

	 if (!zdr_u_int (zdrs, &objp->specdata1))
		 return FALSE;
	 if (!zdr_u_int (zdrs, &objp->specdata2))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_nfstime3 (ZDR *zdrs, nfstime3 *objp)
{
	register int32_t *buf;
	buf = NULL;

libnfs/nfs/libnfs-raw-nfs.c  view on Meta::CPAN

	 if (!zdr_u_int (zdrs, &objp->nlink))
		 return FALSE;
	 if (!zdr_uid3 (zdrs, &objp->uid))
		 return FALSE;
	 if (!zdr_gid3 (zdrs, &objp->gid))
		 return FALSE;
	 if (!zdr_size3 (zdrs, &objp->size))
		 return FALSE;
	 if (!zdr_size3 (zdrs, &objp->used))
		 return FALSE;
	 if (!zdr_specdata3 (zdrs, &objp->rdev))
		 return FALSE;
	 if (!zdr_uint64_t (zdrs, &objp->fsid))
		 return FALSE;
	 if (!zdr_fileid3 (zdrs, &objp->fileid))
		 return FALSE;
	 if (!zdr_nfstime3 (zdrs, &objp->atime))
		 return FALSE;
	 if (!zdr_nfstime3 (zdrs, &objp->mtime))
		 return FALSE;
	 if (!zdr_nfstime3 (zdrs, &objp->ctime))

libnfs/nfs/libnfs-raw-nfs.c  view on Meta::CPAN

}

uint32_t
zdr_devicedata3 (ZDR *zdrs, devicedata3 *objp)
{
	register int32_t *buf;
	buf = NULL;

	 if (!zdr_sattr3 (zdrs, &objp->dev_attributes))
		 return FALSE;
	 if (!zdr_specdata3 (zdrs, &objp->spec))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_mknoddata3 (ZDR *zdrs, mknoddata3 *objp)
{
	register int32_t *buf;
	buf = NULL;

libnfs/nfs/libnfs-raw-nfs.h  view on Meta::CPAN

typedef u_int mode3;

typedef u_int uid3;

typedef u_int gid3;

typedef uint64_t size3;

typedef uint64_t fileid3;

struct specdata3 {
	u_int specdata1;
	u_int specdata2;
};
typedef struct specdata3 specdata3;

struct nfstime3 {
	u_int seconds;
	u_int nseconds;
};
typedef struct nfstime3 nfstime3;

struct fattr3 {
	ftype3 type;
	mode3 mode;
	u_int nlink;
	uid3 uid;
	gid3 gid;
	size3 size;
	size3 used;
	specdata3 rdev;
	uint64_t fsid;
	fileid3 fileid;
	nfstime3 atime;
	nfstime3 mtime;
	nfstime3 ctime;
};
typedef struct fattr3 fattr3;

struct post_op_attr {
	uint32_t attributes_follow;

libnfs/nfs/libnfs-raw-nfs.h  view on Meta::CPAN

	nfsstat3 status;
	union {
		READLINK3resok resok;
		READLINK3resfail resfail;
	} READLINK3res_u;
};
typedef struct READLINK3res READLINK3res;

struct devicedata3 {
	sattr3 dev_attributes;
	specdata3 spec;
};
typedef struct devicedata3 devicedata3;

struct mknoddata3 {
	ftype3 type;
	union {
		devicedata3 chr_device;
		devicedata3 blk_device;
		sattr3 sock_attributes;
		sattr3 pipe_attributes;

libnfs/nfs/libnfs-raw-nfs.h  view on Meta::CPAN

extern  uint32_t zdr_cookie3 (ZDR *, cookie3*);
extern  uint32_t zdr_nfs_fh3 (ZDR *, nfs_fh3*);
extern  uint32_t zdr_filename3 (ZDR *, filename3*);
extern  uint32_t zdr_diropargs3 (ZDR *, diropargs3*);
extern  uint32_t zdr_ftype3 (ZDR *, ftype3*);
extern  uint32_t zdr_mode3 (ZDR *, mode3*);
extern  uint32_t zdr_uid3 (ZDR *, uid3*);
extern  uint32_t zdr_gid3 (ZDR *, gid3*);
extern  uint32_t zdr_size3 (ZDR *, size3*);
extern  uint32_t zdr_fileid3 (ZDR *, fileid3*);
extern  uint32_t zdr_specdata3 (ZDR *, specdata3*);
extern  uint32_t zdr_nfstime3 (ZDR *, nfstime3*);
extern  uint32_t zdr_fattr3 (ZDR *, fattr3*);
extern  uint32_t zdr_post_op_attr (ZDR *, post_op_attr*);
extern  uint32_t zdr_nfsstat3 (ZDR *, nfsstat3*);
extern  uint32_t zdr_stable_how (ZDR *, stable_how*);
extern  uint32_t zdr_offset3 (ZDR *, offset3*);
extern  uint32_t zdr_count3 (ZDR *, count3*);
extern  uint32_t zdr_wcc_attr (ZDR *, wcc_attr*);
extern  uint32_t zdr_pre_op_attr (ZDR *, pre_op_attr*);
extern  uint32_t zdr_wcc_data (ZDR *, wcc_data*);

libnfs/nfs/libnfs-raw-nfs.h  view on Meta::CPAN

extern uint32_t zdr_cookie3 ();
extern uint32_t zdr_nfs_fh3 ();
extern uint32_t zdr_filename3 ();
extern uint32_t zdr_diropargs3 ();
extern uint32_t zdr_ftype3 ();
extern uint32_t zdr_mode3 ();
extern uint32_t zdr_uid3 ();
extern uint32_t zdr_gid3 ();
extern uint32_t zdr_size3 ();
extern uint32_t zdr_fileid3 ();
extern uint32_t zdr_specdata3 ();
extern uint32_t zdr_nfstime3 ();
extern uint32_t zdr_fattr3 ();
extern uint32_t zdr_post_op_attr ();
extern uint32_t zdr_nfsstat3 ();
extern uint32_t zdr_stable_how ();
extern uint32_t zdr_offset3 ();
extern uint32_t zdr_count3 ();
extern uint32_t zdr_wcc_attr ();
extern uint32_t zdr_pre_op_attr ();
extern uint32_t zdr_wcc_data ();

libnfs/nfs/nfs.c  view on Meta::CPAN

	memset(&args, 0, sizeof(MKNOD3args));
	args.where.dir.data.data_len = fh->data.data_len;
	args.where.dir.data.data_val = fh->data.data_val;
	args.where.name = file;

	switch (mode & S_IFMT) {
	case S_IFCHR:
		args.what.type = NF3CHR;
		args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.chr_device.dev_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		args.what.mknoddata3_u.chr_device.spec.specdata1 = major;
		args.what.mknoddata3_u.chr_device.spec.specdata2 = minor;
		break;
	case S_IFBLK:
		args.what.type = NF3BLK;
		args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.blk_device.dev_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		args.what.mknoddata3_u.blk_device.spec.specdata1 = major;
		args.what.mknoddata3_u.blk_device.spec.specdata2 = minor;
	case S_IFSOCK:
		args.what.type = NF3SOCK;
		args.what.mknoddata3_u.sock_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.sock_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		break;
	case S_IFIFO:
		args.what.type = NF3FIFO;
		args.what.mknoddata3_u.pipe_attributes.mode.set_it = 1;
		args.what.mknoddata3_u.pipe_attributes.mode.set_mode3_u.mode = mode & (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH);
		break;

libnfs/nfs/nfs.x  view on Meta::CPAN

typedef unsigned int mode3;

typedef unsigned int uid3;

typedef unsigned int gid3;

typedef uint64_t size3;

typedef uint64_t fileid3;

struct specdata3 {
	unsigned int specdata1;
	unsigned int specdata2;
};

struct nfstime3 {
	unsigned int seconds;
	unsigned int nseconds;
};

struct fattr3 {
	ftype3       type;
	mode3        mode;
	unsigned int nlink;
	uid3         uid;
	gid3         gid;
	size3        size;
	size3        used;
	specdata3    rdev;
	uint64_t     fsid;
	fileid3      fileid;
	nfstime3     atime;
	nfstime3     mtime;
	nfstime3     ctime;
};

union post_op_attr switch (bool attributes_follow) {
	case TRUE:
		fattr3   attributes;

libnfs/nfs/nfs.x  view on Meta::CPAN

union READLINK3res switch (nfsstat3 status) {
	case NFS3_OK:
		READLINK3resok   resok;
	default:
	READLINK3resfail resfail;
};


struct devicedata3 {
	sattr3     dev_attributes;
	specdata3  spec;
};

union mknoddata3 switch (ftype3 type) {
	case NF3CHR:
		devicedata3  chr_device;
	case NF3BLK:
		devicedata3  blk_device;
	case NF3SOCK:
		sattr3       sock_attributes;
	case NF3FIFO:

libnfs/nfs4/libnfs-raw-nfs4.c  view on Meta::CPAN

	 if (!zdr_aceflag4 (zdrs, &objp->flag))
		 return FALSE;
	 if (!zdr_acemask4 (zdrs, &objp->access_mask))
		 return FALSE;
	 if (!zdr_utf8str_mixed (zdrs, &objp->who))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_specdata4 (ZDR *zdrs, specdata4 *objp)
{
	

	 if (!zdr_uint32_t (zdrs, &objp->specdata1))
		 return FALSE;
	 if (!zdr_uint32_t (zdrs, &objp->specdata2))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_fattr4_supported_attrs (ZDR *zdrs, fattr4_supported_attrs *objp)
{
	

	 if (!zdr_bitmap4 (zdrs, objp))

libnfs/nfs4/libnfs-raw-nfs4.c  view on Meta::CPAN

	 if (!zdr_uint64_t (zdrs, objp))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_fattr4_rawdev (ZDR *zdrs, fattr4_rawdev *objp)
{
	

	 if (!zdr_specdata4 (zdrs, objp))
		 return FALSE;
	return TRUE;
}

uint32_t
zdr_fattr4_space_avail (ZDR *zdrs, fattr4_space_avail *objp)
{
	

	 if (!zdr_uint64_t (zdrs, objp))

libnfs/nfs4/libnfs-raw-nfs4.c  view on Meta::CPAN


	 if (!zdr_nfs_ftype4 (zdrs, &objp->type))
		 return FALSE;
	switch (objp->type) {
	case NF4LNK:
		 if (!zdr_linktext4 (zdrs, &objp->createtype4_u.linkdata))
			 return FALSE;
		break;
	case NF4BLK:
	case NF4CHR:
		 if (!zdr_specdata4 (zdrs, &objp->createtype4_u.devdata))
			 return FALSE;
		break;
	case NF4SOCK:
	case NF4FIFO:
	case NF4DIR:
		break;
	default:
		break;
	}
	return TRUE;

libnfs/nfs4/libnfs-raw-nfs4.h  view on Meta::CPAN

#define MODE4_RUSR 0x100
#define MODE4_WUSR 0x080
#define MODE4_XUSR 0x040
#define MODE4_RGRP 0x020
#define MODE4_WGRP 0x010
#define MODE4_XGRP 0x008
#define MODE4_ROTH 0x004
#define MODE4_WOTH 0x002
#define MODE4_XOTH 0x001

struct specdata4 {
	uint32_t specdata1;
	uint32_t specdata2;
};
typedef struct specdata4 specdata4;
#define FH4_PERSISTENT 0x00000000
#define FH4_NOEXPIRE_WITH_OPEN 0x00000001
#define FH4_VOLATILE_ANY 0x00000002
#define FH4_VOL_MIGRATION 0x00000004
#define FH4_VOL_RENAME 0x00000008

typedef bitmap4 fattr4_supported_attrs;

typedef nfs_ftype4 fattr4_type;

libnfs/nfs4/libnfs-raw-nfs4.h  view on Meta::CPAN

typedef utf8str_mixed fattr4_owner;

typedef utf8str_mixed fattr4_owner_group;

typedef uint64_t fattr4_quota_avail_hard;

typedef uint64_t fattr4_quota_avail_soft;

typedef uint64_t fattr4_quota_used;

typedef specdata4 fattr4_rawdev;

typedef uint64_t fattr4_space_avail;

typedef uint64_t fattr4_space_free;

typedef uint64_t fattr4_space_total;

typedef uint64_t fattr4_space_used;

typedef uint32_t fattr4_system;

libnfs/nfs4/libnfs-raw-nfs4.h  view on Meta::CPAN

	union {
		COMMIT4resok resok4;
	} COMMIT4res_u;
};
typedef struct COMMIT4res COMMIT4res;

struct createtype4 {
	nfs_ftype4 type;
	union {
		linktext4 linkdata;
		specdata4 devdata;
	} createtype4_u;
};
typedef struct createtype4 createtype4;

struct CREATE4args {
	createtype4 objtype;
	component4 objname;
	fattr4 createattrs;
};
typedef struct CREATE4args CREATE4args;

libnfs/nfs4/libnfs-raw-nfs4.h  view on Meta::CPAN

extern  uint32_t zdr_layout4 (ZDR *, layout4*);
extern  uint32_t zdr_settime4 (ZDR *, settime4*);
extern  uint32_t zdr_nfs_fh4 (ZDR *, nfs_fh4*);
extern  uint32_t zdr_fsid4 (ZDR *, fsid4*);
extern  uint32_t zdr_fs_location4 (ZDR *, fs_location4*);
extern  uint32_t zdr_fs_locations4 (ZDR *, fs_locations4*);
extern  uint32_t zdr_acetype4 (ZDR *, acetype4*);
extern  uint32_t zdr_aceflag4 (ZDR *, aceflag4*);
extern  uint32_t zdr_acemask4 (ZDR *, acemask4*);
extern  uint32_t zdr_nfsace4 (ZDR *, nfsace4*);
extern  uint32_t zdr_specdata4 (ZDR *, specdata4*);
extern  uint32_t zdr_fattr4_supported_attrs (ZDR *, fattr4_supported_attrs*);
extern  uint32_t zdr_fattr4_type (ZDR *, fattr4_type*);
extern  uint32_t zdr_fattr4_fh_expire_type (ZDR *, fattr4_fh_expire_type*);
extern  uint32_t zdr_fattr4_change (ZDR *, fattr4_change*);
extern  uint32_t zdr_fattr4_size (ZDR *, fattr4_size*);
extern  uint32_t zdr_fattr4_link_support (ZDR *, fattr4_link_support*);
extern  uint32_t zdr_fattr4_symlink_support (ZDR *, fattr4_symlink_support*);
extern  uint32_t zdr_fattr4_named_attr (ZDR *, fattr4_named_attr*);
extern  uint32_t zdr_fattr4_fsid (ZDR *, fattr4_fsid*);
extern  uint32_t zdr_fattr4_unique_handles (ZDR *, fattr4_unique_handles*);

libnfs/nfs4/libnfs-raw-nfs4.h  view on Meta::CPAN

extern uint32_t zdr_layout4 ();
extern uint32_t zdr_settime4 ();
extern uint32_t zdr_nfs_fh4 ();
extern uint32_t zdr_fsid4 ();
extern uint32_t zdr_fs_location4 ();
extern uint32_t zdr_fs_locations4 ();
extern uint32_t zdr_acetype4 ();
extern uint32_t zdr_aceflag4 ();
extern uint32_t zdr_acemask4 ();
extern uint32_t zdr_nfsace4 ();
extern uint32_t zdr_specdata4 ();
extern uint32_t zdr_fattr4_supported_attrs ();
extern uint32_t zdr_fattr4_type ();
extern uint32_t zdr_fattr4_fh_expire_type ();
extern uint32_t zdr_fattr4_change ();
extern uint32_t zdr_fattr4_size ();
extern uint32_t zdr_fattr4_link_support ();
extern uint32_t zdr_fattr4_symlink_support ();
extern uint32_t zdr_fattr4_named_attr ();
extern uint32_t zdr_fattr4_fsid ();
extern uint32_t zdr_fattr4_unique_handles ();

libnfs/nfs4/nfs4.x  view on Meta::CPAN

const MODE4_WGRP = 0x010;  /* write permission: group */
const MODE4_XGRP = 0x008;  /* execute permission: group */
const MODE4_ROTH = 0x004;  /* read permission: other */
const MODE4_WOTH = 0x002;  /* write permission: other */
const MODE4_XOTH = 0x001;  /* execute permission: other */

/*
 * Special data/attribute associated with
 * file types NF4BLK and NF4CHR.
 */
struct specdata4 {
     uint32_t        specdata1;      /* major device number */
     uint32_t        specdata2;      /* minor device number */
};

/*
 * Values for fattr4_fh_expire_type
 */
const   FH4_PERSISTENT          = 0x00000000;
const   FH4_NOEXPIRE_WITH_OPEN  = 0x00000001;
const   FH4_VOLATILE_ANY        = 0x00000002;
const   FH4_VOL_MIGRATION       = 0x00000004;
const   FH4_VOL_RENAME          = 0x00000008;

libnfs/nfs4/nfs4.x  view on Meta::CPAN

typedef utf8str_cs      fattr4_mimetype;
typedef mode4           fattr4_mode;
typedef uint64_t        fattr4_mounted_on_fileid;
typedef bool            fattr4_no_trunc;
typedef uint32_t        fattr4_numlinks;
typedef utf8str_mixed   fattr4_owner;
typedef utf8str_mixed   fattr4_owner_group;
typedef uint64_t        fattr4_quota_avail_hard;
typedef uint64_t        fattr4_quota_avail_soft;
typedef uint64_t        fattr4_quota_used;
typedef specdata4       fattr4_rawdev;
typedef uint64_t        fattr4_space_avail;
typedef uint64_t        fattr4_space_free;
typedef uint64_t        fattr4_space_total;
typedef uint64_t        fattr4_space_used;
typedef bool            fattr4_system;
typedef nfstime4        fattr4_time_access;
typedef settime4        fattr4_time_access_set;
typedef nfstime4        fattr4_time_backup;
typedef nfstime4        fattr4_time_create;
typedef nfstime4        fattr4_time_delta;

libnfs/nfs4/nfs4.x  view on Meta::CPAN

};

/*
 * CREATE: Create a non-regular file
 */
union createtype4 switch (nfs_ftype4 type) {
 case NF4LNK:
         linktext4      linkdata;
 case NF4BLK:
 case NF4CHR:
         specdata4      devdata;
 case NF4SOCK:
 case NF4FIFO:
 case NF4DIR:
         void;
 default:
         void;          /* server should return NFS4ERR_BADTYPE */
};

struct CREATE4args {
        /* CURRENT_FH: directory for creation */



( run in 0.401 second using v1.01-cache-2.11-cpan-454fe037f31 )