diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2014-02-07 22:28:06 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-02-10 09:02:20 +0100 |
commit | 2897531de67756b1b359cc5c91a27970cd189086 (patch) | |
tree | a85bc08066a900200511b11aa7a28f624b8fae9e /fs/nfs.c | |
parent | f91c16b8e28daa725a11fea1b011a35e3c5b6721 (diff) | |
download | barebox-2897531de67756b1b359cc5c91a27970cd189086.tar.gz barebox-2897531de67756b1b359cc5c91a27970cd189086.tar.xz |
nfs: shorten and simplify rpc_add_credentials a bit
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'fs/nfs.c')
-rw-r--r-- | fs/nfs.c | 26 |
1 files changed, 5 insertions, 21 deletions
@@ -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 */ |