From 4c06b8eec1a1d71f67561d4fa9860850795c56aa Mon Sep 17 00:00:00 2001 From: rsc Date: Thu, 19 May 2005 14:39:10 +0000 Subject: fixes for vnfs --- src/libsunrpc/net.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/libsunrpc/net.c') diff --git a/src/libsunrpc/net.c b/src/libsunrpc/net.c index 28890d6c..a8b917e0 100644 --- a/src/libsunrpc/net.c +++ b/src/libsunrpc/net.c @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -16,7 +17,10 @@ sunnetlisten(void *v) { int fd, lcfd; char ldir[40]; + uchar ip[IPaddrlen]; + int port; Arg *a = v; + NetConnInfo *nci; for(;;){ lcfd = listen(a->adir, ldir); @@ -26,6 +30,19 @@ sunnetlisten(void *v) close(lcfd); if(fd < 0) continue; + if(a->srv->ipokay){ + if((nci = getnetconninfo(nil, fd)) == nil){ + close(fd); + continue; + } + port = atoi(nci->rserv); + parseip(ip, nci->raddr); + freenetconninfo(nci); + if(!a->srv->ipokay(ip, port)){ + close(fd); + continue; + } + } if(!sunsrvfd(a->srv, fd)) close(fd); } -- cgit v1.2.3