xdr for SECINFO and SECINFO_NO_NAME
This commit is contained in:
parent
ee955a10b2
commit
eb5a1d721c
3 changed files with 218 additions and 2 deletions
|
|
@ -1623,6 +1623,83 @@ out:
|
|||
return status;
|
||||
}
|
||||
|
||||
int nfs41_secinfo(
|
||||
IN nfs41_session *session,
|
||||
IN nfs41_path_fh *file,
|
||||
IN const nfs41_component *name,
|
||||
OUT nfs41_secinfo_info *secinfo)
|
||||
{
|
||||
int status;
|
||||
nfs41_compound compound;
|
||||
nfs_argop4 argops[3];
|
||||
nfs_resop4 resops[3];
|
||||
nfs41_sequence_args sequence_args;
|
||||
nfs41_sequence_res sequence_res;
|
||||
nfs41_putfh_args putfh_args;
|
||||
nfs41_putfh_res putfh_res;
|
||||
nfs41_secinfo_args secinfo_args;
|
||||
nfs41_secinfo_noname_res secinfo_res;
|
||||
|
||||
compound_init(&compound, argops, resops, "secinfo");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
|
||||
compound_add_op(&compound, OP_PUTFH, &putfh_args, &putfh_res);
|
||||
putfh_args.file = file;
|
||||
putfh_args.in_recovery = 0;
|
||||
|
||||
compound_add_op(&compound, OP_SECINFO, &secinfo_args, &secinfo_res);
|
||||
secinfo_args.name = name;
|
||||
secinfo_res.secinfo = secinfo;
|
||||
|
||||
status = compound_encode_send_decode(session, &compound, TRUE);
|
||||
if (status)
|
||||
goto out;
|
||||
|
||||
compound_error(status = compound.res.status);
|
||||
out:
|
||||
return status;
|
||||
}
|
||||
|
||||
int nfs41_secinfo_noname(
|
||||
IN nfs41_session *session,
|
||||
OUT nfs41_secinfo_info *secinfo)
|
||||
{
|
||||
int status;
|
||||
nfs41_compound compound;
|
||||
nfs_argop4 argops[3];
|
||||
nfs_resop4 resops[3];
|
||||
nfs41_sequence_args sequence_args;
|
||||
nfs41_sequence_res sequence_res;
|
||||
nfs41_putfh_res putfh_res;
|
||||
nfs41_secinfo_noname_args noname_args;
|
||||
nfs41_secinfo_noname_res noname_res;
|
||||
|
||||
compound_init(&compound, argops, resops, "secinfo_no_name");
|
||||
|
||||
compound_add_op(&compound, OP_SEQUENCE, &sequence_args, &sequence_res);
|
||||
status = nfs41_session_sequence(&sequence_args, session, 0);
|
||||
if (status)
|
||||
goto out;
|
||||
|
||||
compound_add_op(&compound, OP_PUTROOTFH, NULL, &putfh_res);
|
||||
|
||||
compound_add_op(&compound, OP_SECINFO_NO_NAME, &noname_args, &noname_res);
|
||||
noname_args.type = SECINFO_STYLE4_CURRENT_FH;
|
||||
noname_res.secinfo = secinfo;
|
||||
|
||||
status = compound_encode_send_decode(session, &compound, TRUE);
|
||||
if (status)
|
||||
goto out;
|
||||
|
||||
compound_error(status = compound.res.status);
|
||||
out:
|
||||
return status;
|
||||
}
|
||||
|
||||
enum nfsstat4 pnfs_rpc_layoutget(
|
||||
IN nfs41_session *session,
|
||||
IN nfs41_path_fh *file,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue