nfsmount: style fix

This commit is contained in:
Denis Vlasenko 2006-09-10 18:28:23 +00:00
parent 5983914c1b
commit 2244a21a8e

View File

@ -192,45 +192,45 @@ get_mountport(struct sockaddr_in *server_addr,
long unsigned proto, long unsigned proto,
long unsigned port) long unsigned port)
{ {
struct pmaplist *pmap; struct pmaplist *pmap;
static struct pmap p = {0, 0, 0, 0}; static struct pmap p = {0, 0, 0, 0};
server_addr->sin_port = PMAPPORT; server_addr->sin_port = PMAPPORT;
pmap = pmap_getmaps(server_addr); pmap = pmap_getmaps(server_addr);
if (version > MAX_NFSPROT) if (version > MAX_NFSPROT)
version = MAX_NFSPROT; version = MAX_NFSPROT;
if (!prog) if (!prog)
prog = MOUNTPROG; prog = MOUNTPROG;
p.pm_prog = prog; p.pm_prog = prog;
p.pm_vers = version; p.pm_vers = version;
p.pm_prot = proto; p.pm_prot = proto;
p.pm_port = port; p.pm_port = port;
while (pmap) { while (pmap) {
if (pmap->pml_map.pm_prog != prog) if (pmap->pml_map.pm_prog != prog)
goto next; goto next;
if (!version && p.pm_vers > pmap->pml_map.pm_vers) if (!version && p.pm_vers > pmap->pml_map.pm_vers)
goto next; goto next;
if (version > 2 && pmap->pml_map.pm_vers != version) if (version > 2 && pmap->pml_map.pm_vers != version)
goto next; goto next;
if (version && version <= 2 && pmap->pml_map.pm_vers > 2) if (version && version <= 2 && pmap->pml_map.pm_vers > 2)
goto next; goto next;
if (pmap->pml_map.pm_vers > MAX_NFSPROT || if (pmap->pml_map.pm_vers > MAX_NFSPROT ||
(proto && p.pm_prot && pmap->pml_map.pm_prot != proto) || (proto && p.pm_prot && pmap->pml_map.pm_prot != proto) ||
(port && pmap->pml_map.pm_port != port)) (port && pmap->pml_map.pm_port != port))
goto next; goto next;
memcpy(&p, &pmap->pml_map, sizeof(p)); memcpy(&p, &pmap->pml_map, sizeof(p));
next: next:
pmap = pmap->pml_next; pmap = pmap->pml_next;
} }
if (!p.pm_vers) if (!p.pm_vers)
p.pm_vers = MOUNTVERS; p.pm_vers = MOUNTVERS;
if (!p.pm_port) if (!p.pm_port)
p.pm_port = MOUNTPORT; p.pm_port = MOUNTPORT;
if (!p.pm_prot) if (!p.pm_prot)
p.pm_prot = IPPROTO_TCP; p.pm_prot = IPPROTO_TCP;
return &p; return &p;
} }
int nfsmount(const char *spec, const char *node, int *flags, int nfsmount(const char *spec, const char *node, int *flags,
@ -242,7 +242,7 @@ int nfsmount(const char *spec, const char *node, int *flags,
char *hostname; char *hostname;
char *pathname; char *pathname;
char *old_opts; char *old_opts;
char *mounthost=NULL; char *mounthost = NULL;
char new_opts[1024]; char new_opts[1024];
struct timeval total_timeout; struct timeval total_timeout;
enum clnt_stat clnt_stat; enum clnt_stat clnt_stat;
@ -321,11 +321,11 @@ int nfsmount(const char *spec, const char *node, int *flags,
hp->h_length = sizeof(struct in_addr); hp->h_length = sizeof(struct in_addr);
} }
memcpy(&server_addr.sin_addr, memcpy(&server_addr.sin_addr,
hp->h_addr, hp->h_length); hp->h_addr, hp->h_length);
} }
} }
memcpy (&mount_server_addr, &server_addr, sizeof (mount_server_addr)); memcpy(&mount_server_addr, &server_addr, sizeof (mount_server_addr));
/* add IP address to mtab options for use when unmounting */ /* add IP address to mtab options for use when unmounting */
@ -403,9 +403,9 @@ int nfsmount(const char *spec, const char *node, int *flags,
else if (!strcmp(opt, "port")) else if (!strcmp(opt, "port"))
port = val; port = val;
else if (!strcmp(opt, "mountport")) else if (!strcmp(opt, "mountport"))
mountport = val; mountport = val;
else if (!strcmp(opt, "mounthost")) else if (!strcmp(opt, "mounthost"))
mounthost=xstrndup(opteq+1, mounthost = xstrndup(opteq+1,
strcspn(opteq+1," \t\n\r,")); strcspn(opteq+1," \t\n\r,"));
else if (!strcmp(opt, "mountprog")) else if (!strcmp(opt, "mountprog"))
mountprog = val; mountprog = val;
@ -536,23 +536,23 @@ int nfsmount(const char *spec, const char *node, int *flags,
/* create mount daemon client */ /* create mount daemon client */
/* See if the nfs host = mount host. */ /* See if the nfs host = mount host. */
if (mounthost) { if (mounthost) {
if (mounthost[0] >= '0' && mounthost[0] <= '9') { if (mounthost[0] >= '0' && mounthost[0] <= '9') {
mount_server_addr.sin_family = AF_INET; mount_server_addr.sin_family = AF_INET;
mount_server_addr.sin_addr.s_addr = inet_addr(hostname); mount_server_addr.sin_addr.s_addr = inet_addr(hostname);
} else { } else {
if ((hp = gethostbyname(mounthost)) == NULL) { if ((hp = gethostbyname(mounthost)) == NULL) {
bb_herror_msg("%s", mounthost); bb_herror_msg("%s", mounthost);
goto fail; goto fail;
} else { } else {
if (hp->h_length > sizeof(struct in_addr)) { if (hp->h_length > sizeof(struct in_addr)) {
bb_error_msg("got bad hp->h_length?"); bb_error_msg("got bad hp->h_length?");
hp->h_length = sizeof(struct in_addr); hp->h_length = sizeof(struct in_addr);
} }
mount_server_addr.sin_family = AF_INET; mount_server_addr.sin_family = AF_INET;
memcpy(&mount_server_addr.sin_addr, memcpy(&mount_server_addr.sin_addr,
hp->h_addr, hp->h_length); hp->h_addr, hp->h_length);
} }
} }
} }
/* /*
@ -593,10 +593,10 @@ int nfsmount(const char *spec, const char *node, int *flags,
sleep(30); sleep(30);
pm_mnt = get_mountport(&mount_server_addr, pm_mnt = get_mountport(&mount_server_addr,
mountprog, mountprog,
mountvers, mountvers,
proto, proto,
mountport); mountport);
/* contact the mount daemon via TCP */ /* contact the mount daemon via TCP */
mount_server_addr.sin_port = htons(pm_mnt->pm_port); mount_server_addr.sin_port = htons(pm_mnt->pm_port);
@ -609,18 +609,18 @@ int nfsmount(const char *spec, const char *node, int *flags,
pm_mnt->pm_vers, pm_mnt->pm_vers,
retry_timeout, retry_timeout,
&msock); &msock);
if (mclient) if (mclient)
break; break;
mount_server_addr.sin_port = htons(pm_mnt->pm_port); mount_server_addr.sin_port = htons(pm_mnt->pm_port);
msock = RPC_ANYSOCK; msock = RPC_ANYSOCK;
case IPPROTO_TCP: case IPPROTO_TCP:
mclient = clnttcp_create(&mount_server_addr, mclient = clnttcp_create(&mount_server_addr,
pm_mnt->pm_prog, pm_mnt->pm_prog,
pm_mnt->pm_vers, pm_mnt->pm_vers,
&msock, 0, 0); &msock, 0, 0);
break; break;
default: default:
mclient = 0; mclient = 0;
} }
if (mclient) { if (mclient) {
/* try to mount hostname:pathname */ /* try to mount hostname:pathname */
@ -637,7 +637,7 @@ int nfsmount(const char *spec, const char *node, int *flags,
(caddr_t) &pathname, (caddr_t) &pathname,
(xdrproc_t) xdr_mountres3, (xdrproc_t) xdr_mountres3,
(caddr_t) &status, (caddr_t) &status,
total_timeout); total_timeout);
else else
clnt_stat = clnt_call(mclient, MOUNTPROC_MNT, clnt_stat = clnt_call(mclient, MOUNTPROC_MNT,
(xdrproc_t) xdr_dirpath, (xdrproc_t) xdr_dirpath,
@ -665,7 +665,7 @@ int nfsmount(const char *spec, const char *node, int *flags,
prevt = t; prevt = t;
} }
if (!bg) if (!bg)
goto fail; goto fail;
if (!running_bg) { if (!running_bg) {
prev_bg_host = xstrdup(hostname); prev_bg_host = xstrdup(hostname);
if (retry > 0) if (retry > 0)
@ -686,12 +686,12 @@ int nfsmount(const char *spec, const char *node, int *flags,
goto fail; goto fail;
} }
memcpy(data.root.data, memcpy(data.root.data,
(char *) status.nfsv2.fhstatus_u.fhs_fhandle, (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
NFS_FHSIZE); NFS_FHSIZE);
data.root.size = NFS_FHSIZE; data.root.size = NFS_FHSIZE;
memcpy(data.old_root.data, memcpy(data.old_root.data,
(char *) status.nfsv2.fhstatus_u.fhs_fhandle, (char *) status.nfsv2.fhstatus_u.fhs_fhandle,
NFS_FHSIZE); NFS_FHSIZE);
} else { } else {
fhandle3 *my_fhandle; fhandle3 *my_fhandle;
if (status.nfsv3.fhs_status != 0) { if (status.nfsv3.fhs_status != 0) {
@ -705,8 +705,8 @@ int nfsmount(const char *spec, const char *node, int *flags,
memset(&data.root, 0, sizeof(data.root)); memset(&data.root, 0, sizeof(data.root));
data.root.size = my_fhandle->fhandle3_len; data.root.size = my_fhandle->fhandle3_len;
memcpy(data.root.data, memcpy(data.root.data,
(char *) my_fhandle->fhandle3_val, (char *) my_fhandle->fhandle3_val,
my_fhandle->fhandle3_len); my_fhandle->fhandle3_len);
data.flags |= NFS_MOUNT_VER3; data.flags |= NFS_MOUNT_VER3;
} }
@ -751,7 +751,7 @@ int nfsmount(const char *spec, const char *node, int *flags,
*/ */
if (get_linux_version_code() <= KERNEL_VERSION(2,3,10) if (get_linux_version_code() <= KERNEL_VERSION(2,3,10)
&& connect(fsock, (struct sockaddr *) &server_addr, && connect(fsock, (struct sockaddr *) &server_addr,
sizeof (server_addr)) < 0) { sizeof (server_addr)) < 0) {
perror("nfs connect"); perror("nfs connect");
goto fail; goto fail;
} }
@ -826,20 +826,20 @@ static char *nfs_strerror(int status)
return buf; return buf;
} }
static bool_t xdr_fhandle (XDR *xdrs, fhandle objp) static bool_t xdr_fhandle(XDR *xdrs, fhandle objp)
{ {
if (!xdr_opaque (xdrs, objp, FHSIZE)) if (!xdr_opaque(xdrs, objp, FHSIZE))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
bool_t xdr_fhstatus (XDR *xdrs, fhstatus *objp) bool_t xdr_fhstatus(XDR *xdrs, fhstatus *objp)
{ {
if (!xdr_u_int (xdrs, &objp->fhs_status)) if (!xdr_u_int(xdrs, &objp->fhs_status))
return FALSE; return FALSE;
switch (objp->fhs_status) { switch (objp->fhs_status) {
case 0: case 0:
if (!xdr_fhandle (xdrs, objp->fhstatus_u.fhs_fhandle)) if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle))
return FALSE; return FALSE;
break; break;
default: default:
@ -848,44 +848,44 @@ bool_t xdr_fhstatus (XDR *xdrs, fhstatus *objp)
return TRUE; return TRUE;
} }
bool_t xdr_dirpath (XDR *xdrs, dirpath *objp) bool_t xdr_dirpath(XDR *xdrs, dirpath *objp)
{ {
if (!xdr_string (xdrs, objp, MNTPATHLEN)) if (!xdr_string(xdrs, objp, MNTPATHLEN))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
bool_t xdr_fhandle3 (XDR *xdrs, fhandle3 *objp) bool_t xdr_fhandle3(XDR *xdrs, fhandle3 *objp)
{ {
if (!xdr_bytes (xdrs, (char **)&objp->fhandle3_val, (unsigned int *) &objp->fhandle3_len, FHSIZE3)) if (!xdr_bytes(xdrs, (char **)&objp->fhandle3_val, (unsigned int *) &objp->fhandle3_len, FHSIZE3))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
bool_t xdr_mountres3_ok (XDR *xdrs, mountres3_ok *objp) bool_t xdr_mountres3_ok(XDR *xdrs, mountres3_ok *objp)
{ {
if (!xdr_fhandle3 (xdrs, &objp->fhandle)) if (!xdr_fhandle3(xdrs, &objp->fhandle))
return FALSE; return FALSE;
if (!xdr_array (xdrs, &(objp->auth_flavours.auth_flavours_val), &(objp->auth_flavours.auth_flavours_len), ~0, if (!xdr_array(xdrs, &(objp->auth_flavours.auth_flavours_val), &(objp->auth_flavours.auth_flavours_len), ~0,
sizeof (int), (xdrproc_t) xdr_int)) sizeof (int), (xdrproc_t) xdr_int))
return FALSE;
return TRUE;
}
bool_t xdr_mountstat3(XDR *xdrs, mountstat3 *objp)
{
if (!xdr_enum(xdrs, (enum_t *) objp))
return FALSE; return FALSE;
return TRUE; return TRUE;
} }
bool_t xdr_mountstat3 (XDR *xdrs, mountstat3 *objp) bool_t xdr_mountres3(XDR *xdrs, mountres3 *objp)
{ {
if (!xdr_enum (xdrs, (enum_t *) objp)) if (!xdr_mountstat3(xdrs, &objp->fhs_status))
return FALSE; return FALSE;
return TRUE;
}
bool_t xdr_mountres3 (XDR *xdrs, mountres3 *objp)
{
if (!xdr_mountstat3 (xdrs, &objp->fhs_status))
return FALSE;
switch (objp->fhs_status) { switch (objp->fhs_status) {
case MNT_OK: case MNT_OK:
if (!xdr_mountres3_ok (xdrs, &objp->mountres3_u.mountinfo)) if (!xdr_mountres3_ok(xdrs, &objp->mountres3_u.mountinfo))
return FALSE; return FALSE;
break; break;
default: default:
@ -893,4 +893,3 @@ bool_t xdr_mountres3 (XDR *xdrs, mountres3 *objp)
} }
return TRUE; return TRUE;
} }