diff options
author | kuriyama <kuriyama@FreeBSD.org> | 2005-02-03 22:21:19 +0000 |
---|---|---|
committer | kuriyama <kuriyama@FreeBSD.org> | 2005-02-03 22:21:19 +0000 |
commit | adecb8eaaa11cd16d1deacd584fca1f90b3792a7 (patch) | |
tree | 25f9e7f96f5dbb52348d70a84bf76e8a9f74c83e /usr.sbin/rpc.lockd | |
parent | 3c0c7b01b6c26ef9bb5936c3196a61eb7ca753e8 (diff) | |
download | FreeBSD-src-adecb8eaaa11cd16d1deacd584fca1f90b3792a7.zip FreeBSD-src-adecb8eaaa11cd16d1deacd584fca1f90b3792a7.tar.gz |
- Use svc_getrpccaller() rather than svc_getcaller() for using
xt_rtaddr member of SVCXPRT structure. This allows to use IPv6
address stored in "struct sockaddr_storage" in "struct netbuf".
- Output the reason of getnameinfo() error.
Reviewed by: alfred
Diffstat (limited to 'usr.sbin/rpc.lockd')
-rw-r--r-- | usr.sbin/rpc.lockd/lock_proc.c | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/usr.sbin/rpc.lockd/lock_proc.c b/usr.sbin/rpc.lockd/lock_proc.c index 221ee47..0449664 100644 --- a/usr.sbin/rpc.lockd/lock_proc.c +++ b/usr.sbin/rpc.lockd/lock_proc.c @@ -62,6 +62,8 @@ __RCSID("$NetBSD: lock_proc.c,v 1.7 2000/10/11 20:23:56 is Exp $"); #define CLIENT_CACHE_SIZE 64 /* No. of client sockets cached */ #define CLIENT_CACHE_LIFETIME 120 /* In seconds */ +#define getrpcaddr(rqstp) (struct sockaddr *)(svc_getrpccaller((rqstp)->rq_xprt)->buf) + static void log_from_addr(const char *, struct svc_req *); static void log_netobj(netobj *obj); static int addrcmp(struct sockaddr *, struct sockaddr *); @@ -194,7 +196,7 @@ get_client(host_addr, vers) { CLIENT *client; struct timeval retry_time, time_now; - int i; + int error, i; const char *netid; struct netconfig *nconf; char host[NI_MAXHOST]; @@ -241,9 +243,11 @@ get_client(host_addr, vers) * Need a host string for clnt_tp_create. Use NI_NUMERICHOST * to avoid DNS lookups. */ - if (getnameinfo(host_addr, host_addr->sa_len, host, sizeof host, - NULL, 0, NI_NUMERICHOST) != 0) { - syslog(LOG_ERR, "unable to get name string for caller"); + error = getnameinfo(host_addr, host_addr->sa_len, host, sizeof host, + NULL, 0, NI_NUMERICHOST); + if (error != 0) { + syslog(LOG_ERR, "unable to get name string for caller: %s", + gai_strerror(error)); return NULL; } @@ -562,8 +566,7 @@ nlm_lock_msg_1_svc(arg, rqstp) res.cookie = arg->cookie; res.stat.stat = getlock(&arg4, rqstp, LOCK_ASYNC | LOCK_MON); - transmit_result(NLM_LOCK_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit_result(NLM_LOCK_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -617,8 +620,7 @@ nlm_cancel_msg_1_svc(arg, rqstp) * a lock to cancel, so this call always fails. */ res.stat.stat = unlock(&arg4, LOCK_CANCEL); - transmit_result(NLM_CANCEL_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit_result(NLM_CANCEL_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -665,8 +667,7 @@ nlm_unlock_msg_1_svc(arg, rqstp) res.stat.stat = unlock(&arg4, 0); res.cookie = arg->cookie; - transmit_result(NLM_UNLOCK_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit_result(NLM_UNLOCK_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -723,8 +724,7 @@ nlm_granted_msg_1_svc(arg, rqstp) nlm_granted, NULL, NLM_VERS) == 0 ? nlm_granted : nlm_denied; - transmit_result(NLM_GRANTED_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit_result(NLM_GRANTED_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -1067,8 +1067,7 @@ nlm4_lock_msg_4_svc(arg, rqstp) res.cookie = arg->cookie; res.stat.stat = getlock(arg, rqstp, LOCK_MON | LOCK_ASYNC | LOCK_V4); - transmit4_result(NLM4_LOCK_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit4_result(NLM4_LOCK_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -1116,8 +1115,7 @@ nlm4_cancel_msg_4_svc(arg, rqstp) * a lock to cancel, so this call always fails. */ res.stat.stat = unlock(&arg->alock, LOCK_CANCEL | LOCK_V4); - transmit4_result(NLM4_CANCEL_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit4_result(NLM4_CANCEL_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -1158,8 +1156,7 @@ nlm4_unlock_msg_4_svc(arg, rqstp) res.stat.stat = unlock(&arg->alock, LOCK_V4); res.cookie = arg->cookie; - transmit4_result(NLM4_UNLOCK_RES, &res, - (struct sockaddr *)svc_getcaller(rqstp->rq_xprt)); + transmit4_result(NLM4_UNLOCK_RES, &res, getrpcaddr(rqstp)); return (NULL); } @@ -1215,8 +1212,7 @@ nlm4_granted_msg_4_svc(arg, rqstp) res.stat.stat = lock_answer(arg->alock.svid, &arg->cookie, nlm4_granted, NULL, NLM_VERS4) == 0 ? nlm4_granted : nlm4_denied; - transmit4_result(NLM4_GRANTED_RES, &res, - (struct sockaddr *)svc_getrpccaller(rqstp->rq_xprt)->buf); + transmit4_result(NLM4_GRANTED_RES, &res, getrpcaddr(rqstp)); return (NULL); } |