Changeset View
Changeset View
Standalone View
Standalone View
head/sys/nlm/nlm_prot_impl.c
Show First 20 Lines • Show All 342 Lines • ▼ Show 20 Lines | |||||
/* | /* | ||||
* Create an RPC client handle for the given (address,prog,vers) | * Create an RPC client handle for the given (address,prog,vers) | ||||
* triple using UDP. | * triple using UDP. | ||||
*/ | */ | ||||
static CLIENT * | static CLIENT * | ||||
nlm_get_rpc(struct sockaddr *sa, rpcprog_t prog, rpcvers_t vers) | nlm_get_rpc(struct sockaddr *sa, rpcprog_t prog, rpcvers_t vers) | ||||
{ | { | ||||
char *wchan = "nlmrcv"; | char *wchan = "nlmrcv"; | ||||
const char* protofmly; | |||||
struct sockaddr_storage ss; | struct sockaddr_storage ss; | ||||
struct socket *so; | struct socket *so; | ||||
CLIENT *rpcb; | CLIENT *rpcb; | ||||
struct timeval timo; | struct timeval timo; | ||||
RPCB parms; | RPCB parms; | ||||
char *uaddr; | char *uaddr; | ||||
enum clnt_stat stat = RPC_SUCCESS; | enum clnt_stat stat = RPC_SUCCESS; | ||||
int rpcvers = RPCBVERS4; | int rpcvers = RPCBVERS4; | ||||
bool_t do_tcp = FALSE; | bool_t do_tcp = FALSE; | ||||
bool_t tryagain = FALSE; | bool_t tryagain = FALSE; | ||||
struct portmap mapping; | struct portmap mapping; | ||||
u_short port = 0; | u_short port = 0; | ||||
/* | /* | ||||
* First we need to contact the remote RPCBIND service to find | * First we need to contact the remote RPCBIND service to find | ||||
* the right port. | * the right port. | ||||
*/ | */ | ||||
memcpy(&ss, sa, sa->sa_len); | memcpy(&ss, sa, sa->sa_len); | ||||
switch (ss.ss_family) { | switch (ss.ss_family) { | ||||
case AF_INET: | case AF_INET: | ||||
((struct sockaddr_in *)&ss)->sin_port = htons(111); | ((struct sockaddr_in *)&ss)->sin_port = htons(111); | ||||
protofmly = "inet"; | |||||
so = nlm_socket; | so = nlm_socket; | ||||
break; | break; | ||||
#ifdef INET6 | #ifdef INET6 | ||||
case AF_INET6: | case AF_INET6: | ||||
((struct sockaddr_in6 *)&ss)->sin6_port = htons(111); | ((struct sockaddr_in6 *)&ss)->sin6_port = htons(111); | ||||
protofmly = "inet6"; | |||||
so = nlm_socket6; | so = nlm_socket6; | ||||
break; | break; | ||||
#endif | #endif | ||||
default: | default: | ||||
/* | /* | ||||
* Unsupported address family - fail. | * Unsupported address family - fail. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 2,049 Lines • Show Last 20 Lines |