[PATCH v2 04/11] nfs: shorten and simplify rpc_add_credentials a bit
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Sat Feb 8 01:51:28 EST 2014
On 22:28 Fri 07 Feb , Uwe Kleine-K??nig wrote:
> Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
keep the hostname I use it on nfs for export filter
Best Regards,
J.
> ---
> fs/nfs.c | 26 +++++---------------------
> 1 file changed, 5 insertions(+), 21 deletions(-)
>
> diff --git a/fs/nfs.c b/fs/nfs.c
> index 76d8c0595db4..54dda261c0b1 100644
> --- a/fs/nfs.c
> +++ b/fs/nfs.c
> @@ -224,34 +224,18 @@ out_overflow:
> */
> static uint32_t *rpc_add_credentials(uint32_t *p)
> {
> - int hl;
> - int hostnamelen = 0;
> -
> /*
> - * Here's the executive summary on authentication requirements of the
> - * various NFS server implementations: Linux accepts both AUTH_NONE
> - * and AUTH_UNIX authentication (also accepts an empty hostname field
> - * in the AUTH_UNIX scheme). *BSD refuses AUTH_NONE, but accepts
> - * AUTH_UNIX (also accepts an empty hostname field in the AUTH_UNIX
> - * scheme). To be safe, use AUTH_UNIX and pass the hostname if we have
> - * it (if the BOOTP/DHCP reply didn't give one, just use an empty
> - * hostname).
> + * *BSD refuses AUTH_NONE, so use AUTH_UNIX. An empty hostname is OK for
> + * both Linux and *BSD.
> */
>
> - hl = (hostnamelen + 3) & ~3;
> -
> /* Provide an AUTH_UNIX credential. */
> *p++ = htonl(1); /* AUTH_UNIX */
> - *p++ = htonl(hl + 20); /* auth length */
> + *p++ = htonl(20); /* auth length: 20 + strlen(hostname) */
> *p++ = htonl(0); /* stamp */
> - *p++ = htonl(hostnamelen); /* hostname string */
> -
> - if (hostnamelen & 3)
> - *(p + hostnamelen / 4) = 0; /* add zero padding */
> -
> - /* memcpy(p, hostname, hostnamelen); */ /* empty hostname */
> + *p++ = htonl(0); /* hostname string length */
> + /* memcpy(p, "", 0); p += 0; <- empty host name */
>
> - p += hl / 4;
> *p++ = 0; /* uid */
> *p++ = 0; /* gid */
> *p++ = 0; /* auxiliary gid list */
> --
> 1.8.5.2
>
More information about the barebox
mailing list