kNFSdv4 - 0 of 8 - Introduction
Subsystems (3)
PATCH 1/1 kNFSdv4 - 0 of 8 - Introduction
Hi Andrew,
here are a bunch of nfsd patches from the NFSv4 team at umich. There are an assortment of minor bug fixes, a new attribute supported and, probably most significantly, code to unwrap and wrap requests with GSS integrity checking.
The only places they touch non-"experimental" code are absolutely trivial, so the should be OK to go to Linus.
NeilBrown
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 3 of 8 - fix a problem with incorrectly formatted auth_error returns.
Quoted 2 lines
From Fred Isaman:
----------- Diffstat output ------------
./net/sunrpc/auth_gss/svcauth_gss.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
net/sunrpc/auth_gss/svcauth_gss.c renamed from net/sunrpc/auth_gss/svcauth_gss.c~current~ +1 -1
@@ -690,7 +690,7 @@ svcauth_gss_accept(struct svc_rqst *rqststruct rsc *rsci =NULL ;struct rsi *rsip, rsikey;u32 *rpcstart; -u32 *reject_stat = resv->iov_base; +u32 *reject_stat = resv->iov_base + resv->iov_len;int ret;dprintk ("RPC: svcauth_gss: argv->iov_len = %zd\n" ,argv->iov_len);
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 4 of 8 - Remove name_lookup.h that noone is using anymore.
In reply to NeilBrown----------- Diffstat output ------------
./include/linux/sunrpc/name_lookup.h | 38 ----------------------------------- 1 files changed, 38 deletions(-)
include/linux/sunrpc/name_lookup.h renamed from include/linux/sunrpc/name_lookup.h~current~ +0 -38
@@ -1,38 +0,0 @@ - -/* -* map between user/group name and id for a given 'client' -*/ - -struct name_ent { -char name[20 ]; -}; -static inline int name_get_user (int uid,struct name_ent **namep) -{ -struct name_ent *n =kmalloc (sizeof (*n),GFP_KERNEL ); -if (n)sprintf (n->name,"%d" ,uid); - *namep = n; -return n ?0 : -ENOMEM ; -} -static inline int name_get_group (int uid,struct name_ent **namep) -{ -struct name_ent *n =kmalloc (sizeof (*n),GFP_KERNEL ); -if (n)sprintf (n->name,"%d" ,uid); - *namep = n; -return n ?0 : -ENOMEM ; -} -static inline int name_get_uid (char *name,int name_len,int *uidp) -{ - *uidp =simple_strtoul (name,NULL ,0 ); -return 0 ; -} - -static inline int name_get_gid (char *name,int name_len,int *gidp) -{ - *gidp =simple_strtoul (name,NULL ,0 ); -return 0 ; -} - -static inline void name_put (struct name_ent *ent) -{ -kfree (ent); -}
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 5 of 8 - Add server-side support for the nfsv4 mounted_on_fileid attribute.
In reply to NeilBrown----------- Diffstat output ------------
./fs/nfsd/nfs4xdr.c | 11 +++++++++++ ./include/linux/nfs4.h | 1 + ./include/linux/nfsd/nfsd.h | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-)
fs/nfsd/nfs4xdr.c renamed from fs/nfsd/nfs4xdr.c~current~ +11 -0
@@ -1588,7 +1588,18 @@ nfsd4_encode_fattr(struct svc_fh *fhp, sWRITE32 (stat.mtime.tv_sec);WRITE32 (stat.mtime.tv_nsec); } +if (bmval1 &FATTR4_WORD1_MOUNTED_ON_FILEID ) { +struct dentry *mnt_pnt, *mnt_root; +if ((buflen -=8 ) <0 ) + goto out_resource; + mnt_root = exp->ex_mnt->mnt_root; +if (mnt_root->d_inode == dentry->d_inode) { + mnt_pnt = exp->ex_mnt->mnt_mountpoint; +WRITE64 ((u64 ) mnt_pnt->d_inode->i_ino); + }else +WRITE64 ((u64 ) stat.ino); + } *attrlenp =htonl ((char *)p - (char *)attrlenp -4 ); *countp = p - buffer; status = nfs_ok;
include/linux/nfs4.h renamed from include/linux/nfs4.h~current~ +1 -0
@@ -274,6 +274,7 @@ enum lock_type4 {#define FATTR4_WORD1_TIME_METADATA (1 << 20)#define FATTR4_WORD1_TIME_MODIFY (1 << 21)#define FATTR4_WORD1_TIME_MODIFY_SET (1 << 22) +#define FATTR4_WORD1_MOUNTED_ON_FILEID (1 << 23)#define NFSPROC4_NULL 0#define NFSPROC4_COMPOUND 1
include/linux/nfsd/nfsd.h renamed from include/linux/nfsd/nfsd.h~current~ +1 -1
@@ -279,7 +279,7 @@ static inline int is_fsid(struct svc_fh | FATTR4_WORD1_SPACE_AVAIL | FATTR4_WORD1_SPACE_FREE | FATTR4_WORD1_SPACE_TOTAL \ | FATTR4_WORD1_SPACE_USED | FATTR4_WORD1_TIME_ACCESS | FATTR4_WORD1_TIME_ACCESS_SET \ | FATTR4_WORD1_TIME_CREATE | FATTR4_WORD1_TIME_DELTA | FATTR4_WORD1_TIME_METADATA \ - | FATTR4_WORD1_TIME_MODIFY | FATTR4_WORD1_TIME_MODIFY_SET) + | FATTR4_WORD1_TIME_MODIFY | FATTR4_WORD1_TIME_MODIFY_SET | FATTR4_WORD1_MOUNTED_ON_FILEID)/* These will return ERR_INVAL if specified in GETATTR or READDIR. */ #define NFSD_WRITEONLY_ATTRS_WORD1 \
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 6 of 8 - Improve UTF8 checking.
In reply to NeilBrownQuoted 2 lines
From Fred: We don't do all the utf8 checking we could in the kernel, but we do
some simple checks. Implement slightly stricter, and probably more efficient, checking.
----------- Diffstat output ------------
./fs/nfsd/nfs4xdr.c | 153 +++++++++++++++++++++++++++------------------------- 1 files changed, 80 insertions(+), 73 deletions(-)
fs/nfsd/nfs4xdr.c renamed from fs/nfsd/nfs4xdr.c~current~ +80 -73
@@ -58,93 +58,94 @@#define NFSDDBG_FACILITY NFSDDBG_XDR -/* -* From Peter Astrand <[email protected]>: The following routines check -* whether a filename supplied by the client is valid. -*/ -static const char trailing_bytes_for_utf8[256 ] = { -0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , -0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , -0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , -0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , +static const char utf8_byte_len[256 ] = { +1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , +1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , +1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , +1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 , -1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,1 , -2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,4 ,4 ,4 ,4 ,5 ,5 ,5 ,5 +0 ,0 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 ,2 , +3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,3 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,4 ,5 ,5 ,5 ,5 ,6 ,6 ,0 ,0 };static inline int -is_legal_iso_utf8_sequence (unsigned char *source,int length) +is_legal_utf8_sequence (unsigned char *source,int length) { -unsigned char a; -unsigned char *srcptr; +unsigned char *ptr; +unsigned char c; - srcptr = source + length; +if (length==1 )return 1 ; -switch (length) { -/* Everything else falls through when "1"... */ +/* Check for overlong sequence, and check second byte */ + c = *(source +1 ); +switch (*source) { +case 0xE0 :/* 3 bytes */ +if ( c <0xA0 )return 0 ; +break ; +case 0xF0 :/* 4 bytes */ +if ( c <0x90 )return 0 ; +break ; +case 0xF8 :/* 5 bytes */ +if ( c <0xC8 )return 0 ; +break ; +case 0xFC :/* 6 bytes */ +if ( c <0x84 )return 0 ; +break ;default : -/* Sequences with more than 6 bytes are invalid */ -return 0 ; +if ( (c &0xC0 ) !=0x80 )return 0 ; + } -/* -Byte 3-6 must be 80..BF -*/ -case 6 : -if ((a = (*--srcptr)) <0x80 || a >0xBF )return 0 ; -case 5 : -if ((a = (*--srcptr)) <0x80 || a >0xBF )return 0 ; -case 4 : -if ((a = (*--srcptr)) <0x80 || a >0xBF )return 0 ; -case 3 : -if ((a = (*--srcptr)) <0x80 || a >0xBF )return 0 ; - -case 2 : - a = *--srcptr; - -/* Upper limit */ -if (a >0xBF ) -/* 2nd byte may never be > 0xBF */ -return 0 ; +/* Check that trailing bytes look like 10xxxxxx */ +for (ptr = source++ + length -1 ; ptr>source; ptr--) +if ( ((*ptr) &0xC0 ) !=0x80 )return 0 ; +return 1 ; +} -/* -Lower limits checks, to detect non-shortest forms. -No fall-through in this inner switch. -*/ -switch (*source) { -case 0xE0 :/* 3 bytes */ -if (a <0xA0 )return 0 ; -break ; -case 0xF0 :/* 4 bytes */ -if (a <0x90 )return 0 ; -break ; -case 0xF8 :/* 5 bytes */ -if (a <0xC8 )return 0 ; -break ; -case 0xFC :/* 6 bytes */ -if (a <0x84 )return 0 ; -break ; -default : -/* In all cases, 2nd byte must be >= 0x80 (because leading -10...) */ -if (a <0x80 )return 0 ; - } +/* This does some screening on disallowed unicode characters. It is NOT +* comprehensive. +*/ +static int +is_allowed_utf8_char (unsigned char *source,int length) +{ +/* We assume length and source point to a valid utf8 sequence */ +unsigned char c; -case 1 : -/* Invalid ranges */ -if (*source >=0x80 && *source <0xC2 ) -/* Multibyte char with value < 0xC2, non-shortest */ -return 0 ; -if (*source >0xFD ) -/* Leading byte starting with 11111110 is illegal */ -return 0 ; -if (!*source) -return 0 ; +/* Disallow F0000 and up (in utf8, F3B08080) */ +if (*source >0xF3 )return 0 ; + c = *(source +1 ); +switch (*source) { +case 0xF3 : +if (c >=0xB0 )return 0 ; +break ; +/* Disallow D800-F8FF (in utf8, EDA080-EFA3BF */ +case 0xED : +if (c >=0xA0 )return 0 ; +break ; +case 0xEE : +return 0 ; +break ; +case 0xEF : +if (c <=0xA3 )return 0 ; +/* Disallow FFF9-FFFF (EFBFB9-EFBFBF) */ +if (c==0xBF ) +/* Don't need to check <=0xBF, since valid utf8 */ +if ( *(source+2 ) >=0xB9 )return 0 ; +break ; } -return 1 ; } +/* This routine should really check to see that the proper stringprep +* mappings have been applied. Instead, we do a simple screen of some +* of the more obvious illegal values by calling is_allowed_utf8_char. +* This will allow many illegal strings through, but if a client behaves, +* it will get full functionality. The other option (apart from full +* stringprep checking) is to limit everything to an easily handled subset, +* such as 7-bit ascii. +* +* Note - currently calling routines ignore return value except as boolean. +*/ static int check_utf8 (char *str,int len) {
@@ -155,11 +156,17 @@ check_utf8(char *str, int len) sourceend = str + len;while (chunk < sourceend) { - chunklen = trailing_bytes_for_utf8[*chunk]+1 ; + chunklen = utf8_byte_len[*chunk]; +if (!chunklen) +return nfserr_inval;if (chunk + chunklen > sourceend)return nfserr_inval; -if (!is_legal_iso_utf8_sequence (chunk, chunklen)) +if (!is_legal_utf8_sequence (chunk, chunklen)) +return nfserr_inval; +if (!is_allowed_utf8_char (chunk, chunklen))return nfserr_inval; +if ( (chunklen==1 ) && (!*chunk) ) +return nfserr_inval;/* Disallow embedded nulls */ chunk += chunklen; }
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 7 of 8 - Export a symbol needed by auth_gss
In reply to NeilBrownFrom: "J. Bruce Fields" <[email protected]>
Without this compiling auth_gss as module fails.
----------- Diffstat output ------------
./include/linux/sunrpc/xdr.h | 1 + ./net/sunrpc/sunrpc_syms.c | 1 + ./net/sunrpc/xdr.c | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-)
include/linux/sunrpc/xdr.h renamed from include/linux/sunrpc/xdr.h~current~ +1 -0
@@ -145,6 +145,7 @@ extern void _copy_from_pages(char *, strextern void xdr_buf_from_iov (struct iovec *,struct xdr_buf *);extern int xdr_buf_subsegment (struct xdr_buf *,struct xdr_buf *,int ,int );extern int xdr_buf_read_netobj (struct xdr_buf *,struct xdr_netobj *,int ); +extern int read_bytes_from_xdr_buf (struct xdr_buf *buf,int base,void *obj,int len);/* * Helper structure for copying from an sk_buff.
net/sunrpc/sunrpc_syms.c renamed from net/sunrpc/sunrpc_syms.c~current~ +1 -0
@@ -134,6 +134,7 @@ EXPORT_SYMBOL(xdr_read_pages);EXPORT_SYMBOL (xdr_buf_from_iov);EXPORT_SYMBOL (xdr_buf_subsegment);EXPORT_SYMBOL (xdr_buf_read_netobj); +EXPORT_SYMBOL (read_bytes_from_xdr_buf);/* Debugging symbols */ #ifdef RPC_DEBUG
net/sunrpc/xdr.c renamed from net/sunrpc/xdr.c~current~ +1 -1
@@ -799,7 +799,7 @@ xdr_buf_subsegment(struct xdr_buf *buf, }/* obj is assumed to point to allocated memory of size at least len: */ -static int +int read_bytes_from_xdr_buf (struct xdr_buf *buf,int base,void *obj,int len) {struct xdr_buf subbuf;
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 2 of 8 - Minor fix to error return when updating server authentication information
In reply to NeilBrown----------- Diffstat output ------------
./net/sunrpc/auth_gss/svcauth_gss.c | 2 ++ 1 files changed, 2 insertions(+)
net/sunrpc/auth_gss/svcauth_gss.c renamed from net/sunrpc/auth_gss/svcauth_gss.c~current~ +2 -0
@@ -389,11 +389,13 @@ static int rsc_parse(struct cache_detail/* number of additional gid's */ if (get_int (&mesg, &N )) goto out; + status = -ENOMEM ; rsci.cred.cr_group_info =groups_alloc (N );if (rsci.cred.cr_group_info ==NULL ) goto out;/* gid's */ + status = -EINVAL ;for (i=0 ; i<N ; i++) {gid_t gid;if (get_int (&mesg, &gid))
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 1 of 8 - Return -EOPNOTSUPP when unknown mechanism name encountered
In reply to NeilBrownIt's better than oopsing.
----------- Diffstat output ------------
./net/sunrpc/auth_gss/svcauth_gss.c | 4 ++++ 1 files changed, 4 insertions(+)
net/sunrpc/auth_gss/svcauth_gss.c renamed from net/sunrpc/auth_gss/svcauth_gss.c~current~ +4 -0
@@ -406,7 +406,11 @@ static int rsc_parse(struct cache_detailif (len <0 ) goto out; gm =gss_mech_get_by_name (buf); + status = -EOPNOTSUPP ; +if (!gm) + goto out; + status = -EINVAL ;/* mech-specific data: */ len =qword_get (&mesg, buf, mlen);if (len <0 ) {
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs
PATCH 1/1 kNFSdv4 - 8 of 8 - Add data integrity to serve rside gss
In reply to NeilBrownFrom: "J. Bruce Fields" <[email protected]>
rpcsec_gss supports three security levels:
1. authentication only: sign the header of each rpc request and response.
2. integrity: sign the header and body of each rpc request and response.
3. privacy: sign the header and encrypt the body of each rpc request and response.
The first 2 are already supported on the client; this adds integrity support on the server.
----------- Diffstat output ------------
./include/linux/sunrpc/svcauth_gss.h | 9 - ./net/sunrpc/auth_gss/gss_krb5_mech.c | 2 ./net/sunrpc/auth_gss/svcauth_gss.c | 172 ++++++++++++++++++++++++++++++++-- 3 files changed, 168 insertions(+), 15 deletions(-)
include/linux/sunrpc/svcauth_gss.h renamed from include/linux/sunrpc/svcauth_gss.h~current~ +0 -9
@@ -22,14 +22,5 @@int gss_svc_init (void );int svcauth_gss_register_pseudoflavor (u32 pseudoflavor,char * name); - -struct gss_svc_data { -/* decoded gss client cred: */ -struct rpc_gss_wire_cred clcred; -/* pointer to the beginning of the procedure-specific results, which -* may be encrypted/checksummed in svcauth_gss_release: */ -u32 *body_start; -}; -#endif /* __KERNEL__ */ #endif /* _LINUX_SUNRPC_SVCAUTH_GSS_H */
net/sunrpc/auth_gss/gss_krb5_mech.c renamed from net/sunrpc/auth_gss/gss_krb5_mech.c~current~ +2 -0
@@ -236,6 +236,8 @@ static int __init init_kerberos_module(vgss_register_triple (RPC_AUTH_GSS_KRB5I , gm,0 ,RPC_GSS_SVC_INTEGRITY );if (svcauth_gss_register_pseudoflavor (RPC_AUTH_GSS_KRB5 ,"krb5" ))printk ("Failed to register %s with server!\n" ,"krb5" ); +if (svcauth_gss_register_pseudoflavor (RPC_AUTH_GSS_KRB5I ,"krb5i" )) +printk ("Failed to register %s with server!\n" ,"krb5i" );gss_mech_put (gm);return 0 ; }
net/sunrpc/auth_gss/svcauth_gss.c renamed from net/sunrpc/auth_gss/svcauth_gss.c~current~ +166 -6
211 lines not on this page · raw message
-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs