]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/rpcmisc.c
See Changelog
[nfs-utils.git] / support / nfs / rpcmisc.c
index 832de5fe28c89e06999301da968054a656a953d8..ca63c8142975940557ba6ed9470e594d720f284a 100644 (file)
@@ -50,11 +50,10 @@ rpc_init(char *name, int prog, int vers, void (*dispatch)(), int defport)
 
        asize = sizeof(saddr);
        sock = 0;
-       if (getsockname(0, (struct sockaddr *) &saddr, &asize) == 0) {
+       if (getsockname(0, (struct sockaddr *) &saddr, &asize) == 0
+           && saddr.sin_family == AF_INET) {
                int ssize = sizeof (int);
                _rpcfdtype = 0;
-               if (saddr.sin_family != AF_INET)
-                       xlog(L_FATAL, "init: stdin is bound to non-inet addr");
                if (getsockopt(0, SOL_SOCKET, SO_TYPE,
                                (char *)&_rpcfdtype, &ssize) == -1)
                        xlog(L_FATAL, "getsockopt failed: %s", strerror(errno));
@@ -67,7 +66,7 @@ rpc_init(char *name, int prog, int vers, void (*dispatch)(), int defport)
        if ((_rpcfdtype == 0) || (_rpcfdtype == SOCK_DGRAM)) {
                static SVCXPRT *last_transp = NULL;
  
-               if (_rpcfdtype == 0) {
+               if (_rpcpmstart == 0) {
                        if (last_transp
                            && (!defport || defport == last_transp->xp_port)) {
                                transp = last_transp;
@@ -97,7 +96,7 @@ rpc_init(char *name, int prog, int vers, void (*dispatch)(), int defport)
        if ((_rpcfdtype == 0) || (_rpcfdtype == SOCK_STREAM)) {
                static SVCXPRT *last_transp = NULL;
 
-               if (_rpcfdtype == 0) {
+               if (_rpcpmstart == 0) {
                        if (last_transp
                            && (!defport || defport == last_transp->xp_port)) {
                                transp = last_transp;