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
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 для декодирования и возврата обратно