From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chuck Lever Subject: [PATCH 11/13] SUNRPC: Support IPv6 addresses in svc_tcp_accept Date: Thu, 18 Jan 2007 18:50:58 -0500 Message-ID: <20070118235058.24266.18237.stgit@localhost.localdomain> References: <20070118234855.24266.37463.stgit@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Cc: nfs@lists.sourceforge.net Return-path: Received: from sc8-sf-mx1-b.sourceforge.net ([10.3.1.91] helo=mail.sourceforge.net) by sc8-sf-list2-new.sourceforge.net with esmtp (Exim 4.43) id 1H7h2C-00059p-Tl for nfs@lists.sourceforge.net; Thu, 18 Jan 2007 15:51:09 -0800 Received: from agminet01.oracle.com ([141.146.126.228]) by mail.sourceforge.net with esmtps (TLSv1:AES256-SHA:256) (Exim 4.44) id 1H7h2C-0000Y0-Cl for nfs@lists.sourceforge.net; Thu, 18 Jan 2007 15:51:08 -0800 To: neilb@suse.de In-Reply-To: <20070118234855.24266.37463.stgit@localhost.localdomain> List-Id: "Discussion of NFS under Linux development, interoperability, and testing." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nfs-bounces@lists.sourceforge.net Errors-To: nfs-bounces@lists.sourceforge.net Modify svc_tcp_accept to support connecting on IPv6 sockets. Signed-off-by: Chuck Lever Cc: Aurelien Charbon --- net/sunrpc/svcsock.c | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c index ddf4773..b3efa23 100644 --- a/net/sunrpc/svcsock.c +++ b/net/sunrpc/svcsock.c @@ -947,7 +947,8 @@ #endif static void svc_tcp_accept(struct svc_sock *svsk) { - struct sockaddr_in sin; + struct sockaddr_storage addr; + struct sockaddr *sin = (struct sockaddr *) &addr; struct svc_serv *serv = svsk->sk_server; struct socket *sock = svsk->sk_sock; struct socket *newsock; @@ -974,8 +975,7 @@ svc_tcp_accept(struct svc_sock *svsk) set_bit(SK_CONN, &svsk->sk_flags); svc_sock_enqueue(svsk); - slen = sizeof(sin); - err = kernel_getpeername(newsock, (struct sockaddr *) &sin, &slen); + err = kernel_getpeername(newsock, sin, &slen); if (err < 0) { if (net_ratelimit()) printk(KERN_WARNING "%s: peername failed (err %d)!\n", @@ -987,12 +987,11 @@ svc_tcp_accept(struct svc_sock *svsk) * hosts here, but when we get encryption, the IP of the host won't * tell us anything. For now just warn about unpriv connections. */ - if (!svc_port_is_privileged((struct sockaddr *) &sin)) { + if (!svc_port_is_privileged(sin)) { dprintk(KERN_WARNING "%s: connect from unprivileged port: %s\n", serv->sv_name, - __svc_print_addr((struct sockaddr *) &sin, buf, - sizeof(buf))); + __svc_print_addr(sin, buf, sizeof(buf))); } dprintk("%s: connect from %s\n", serv->sv_name, buf); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ NFS maillist - NFS@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/nfs