NFSACL GETACL / SETACL структуры

У меня есть прокси-сервер между клиентом и сервером.

Я использую XDR для чтения и изменения сообщений NFS между ними

например, если я хочу отредактировать размер файла и получить ответ атрибутов, я использую структуру и функцию

GETATTR3res

bool_t xdr_GETATTR3res (XDR * xdrs, GETATTR3res * objp);

теперь я хочу использовать тот же метод для изменения ответов на

RPC:

Программа: NFSACL (100227)

Версия программы: 3

Процедура: GETACL (1) и SETACL (2)

Я хочу отредактировать поле атрибутов (fattr3) с помощью xdr

либо функция XDR для NFSACL, либо даже деконструированная функция XDR для полей, которые процедуры NFSACL имеют


person Itay Sela    schedule 20.08.2015    source источник
comment
Конечно, вы можете получить эту информацию более разумно, запустив rpcgen на nfs_prot.x < / a>, который содержит сами определения RPC   -  person Petesh    schedule 20.08.2015


Ответы (1)


Я нашел этот список структур, которые с меньшей функцией XDR можно использовать для изменения атрибутов.

struct GETACL3args {
    nfs_fh3 fh;
    uint32 mask;
};
typedef struct GETACL3args GETACL3args;

struct GETACL3resok {
    post_op_attr attr;
    vsecattr_t acl;
};
typedef struct GETACL3resok GETACL3resok;

struct GETACL3resfail {
    post_op_attr attr;
};
typedef struct GETACL3resfail GETACL3resfail;

struct GETACL3res {
    nfsstat3 status;
    union {
        GETACL3resok ok;
        GETACL3resfail fail;
    } res_u;
};
typedef struct GETACL3res GETACL3res;

struct SETACL3args {
    nfs_fh3 fh;
    vsecattr_t acl;
};
typedef struct SETACL3args SETACL3args;

struct SETACL3resok {
    post_op_attr attr;
};
typedef struct SETACL3resok SETACL3resok;

struct SETACL3resfail {
    post_op_attr attr;
};
typedef struct SETACL3resfail SETACL3resfail;

struct SETACL3res {
    nfsstat3 status;
    union {
        SETACL3resok ok;
        SETACL3resfail fail;
    } res_u;
};
typedef struct SETACL3res SETACL3res;

и используя xdr_post_op_attr для декодирования и возврата

person Itay Sela    schedule 20.08.2015