]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/nfsd/nfssvc.c
libnfs.a: Fix API for getfh() & friends
[nfs-utils.git] / utils / nfsd / nfssvc.c
index 12d3253228fadb0e074590b83d6e08808c2ec59e..34c67ca11b927ff6201e2d6b61a2e9c8c605ae7b 100644 (file)
@@ -181,7 +181,7 @@ nfssvc_setfds(const struct addrinfo *hints, const char *node, const char *port)
                }
 
                snprintf(buf, sizeof(buf), "%d\n", sockfd); 
-               if (write(fd, buf, strlen(buf)) != strlen(buf)) {
+               if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf)) {
                        /*
                         * this error may be common on older kernels that don't
                         * support IPv6, so turn into a debug message.
@@ -212,7 +212,7 @@ int
 nfssvc_set_sockets(const int family, const unsigned int protobits,
                   const char *host, const char *port)
 {
-       struct addrinfo hints = { .ai_flags = AI_PASSIVE | AI_ADDRCONFIG };
+       struct addrinfo hints = { .ai_flags = AI_PASSIVE };
 
        hints.ai_family = family;
 
@@ -238,20 +238,20 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers4)
        if (fd < 0)
                return;
 
+       n = minorvers4 >= 0 ? minorvers4 : -minorvers4;
+       if (n >= NFSD_MINMINORVERS4 && n <= NFSD_MAXMINORVERS4)
+                   off += snprintf(ptr+off, sizeof(buf) - off, "%c4.%d ",
+                                   minorvers4 > 0 ? '+' : '-',
+                                   n);
        for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) {
                if (NFSCTL_VERISSET(ctlbits, n))
                    off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n);
                else
                    off += snprintf(ptr+off, sizeof(buf) - off, "-%d ", n);
        }
-       n = minorvers4 >= 0 ? minorvers4 : -minorvers4;
-       if (n >= NFSD_MINMINORVERS4 && n <= NFSD_MAXMINORVERS4)
-                   off += snprintf(ptr+off, sizeof(buf) - off, "%c4.%d",
-                                   minorvers4 > 0 ? '+' : '-',
-                                   n);
        xlog(D_GENERAL, "Writing version string to kernel: %s", buf);
        snprintf(ptr+off, sizeof(buf) - off, "\n");
-       if (write(fd, buf, strlen(buf)) != strlen(buf))
+       if (write(fd, buf, strlen(buf)) != (ssize_t)strlen(buf))
                xlog(L_ERROR, "Setting version failed: errno %d (%m)", errno);
 
        close(fd);
@@ -277,7 +277,7 @@ nfssvc_threads(unsigned short port, const int nrservs)
                snprintf(buf, sizeof(buf), "%d\n", nrservs);
                n = write(fd, buf, strlen(buf));
                close(fd);
-               if (n != strlen(buf))
+               if (n != (ssize_t)strlen(buf))
                        return -1;
                else
                        return 0;