|
Lines 585-590
Link Here
|
| 585 |
char host[NI_MAXHOST], serv[NI_MAXSERV]; |
585 |
char host[NI_MAXHOST], serv[NI_MAXSERV]; |
| 586 |
static struct netbuf nfs_nb; |
586 |
static struct netbuf nfs_nb; |
| 587 |
static struct sockaddr_storage nfs_ss; |
587 |
static struct sockaddr_storage nfs_ss; |
|
|
588 |
struct sockaddr_in *sin; |
| 589 |
struct sockaddr_in6 *sin6; |
| 588 |
struct netconfig *nconf; |
590 |
struct netconfig *nconf; |
| 589 |
char *netid; |
591 |
char *netid; |
| 590 |
struct timeval pertry, try; |
592 |
struct timeval pertry, try; |
|
Lines 704-713
Link Here
|
| 704 |
retrycnt = orgcnt; |
706 |
retrycnt = orgcnt; |
| 705 |
|
707 |
|
| 706 |
while (retrycnt > 0) { |
708 |
while (retrycnt > 0) { |
|
|
709 |
if (port_no != 0) { |
| 710 |
if (ai_nfs->ai_family == AF_INET6) { |
| 711 |
((struct sockaddr_in6 *)ai_nfs-> |
| 712 |
ai_addr)->sin6_port = htons(port_no); |
| 713 |
nfs_nb.len = sizeof(struct sockaddr_in6); |
| 714 |
} else { |
| 715 |
((struct sockaddr_in *)ai_nfs-> |
| 716 |
ai_addr)->sin_port = htons(port_no); |
| 717 |
nfs_nb.len = sizeof(struct sockaddr_in); |
| 718 |
} |
| 719 |
memset(&nfs_ss, 0, sizeof(nfs_ss)); |
| 720 |
memcpy(&nfs_ss, ai_nfs->ai_addr, sizeof(ai_nfs->ai_addr)); |
| 721 |
} |
| 707 |
nfs_nb.buf = &nfs_ss; |
722 |
nfs_nb.buf = &nfs_ss; |
| 708 |
nfs_nb.maxlen = sizeof nfs_ss; |
723 |
nfs_nb.maxlen = sizeof nfs_ss; |
| 709 |
if (!rpcb_getaddr(RPCPROG_NFS, nfsvers, nconf, |
724 |
if (port_no == 0 && !rpcb_getaddr(RPCPROG_NFS, |
| 710 |
&nfs_nb, hostp)){ |
725 |
nfsvers, nconf, &nfs_nb, hostp)) { |
| 711 |
if (rpc_createerr.cf_stat == RPC_SYSTEMERROR) { |
726 |
if (rpc_createerr.cf_stat == RPC_SYSTEMERROR) { |
| 712 |
nfhret.stat = rpc_createerr.cf_error.re_errno; |
727 |
nfhret.stat = rpc_createerr.cf_error.re_errno; |
| 713 |
break; |
728 |
break; |