]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - support/nfs/getport.c
getport: Recognize "rdma" and "rdma6" netid
[nfs-utils.git] / support / nfs / getport.c
index c9305397680e46859362ff8114aa2075f2efdbf0..d74400b0dcfe69eac02b8dbc2c531d01b16c9d79 100644 (file)
@@ -216,6 +216,21 @@ nfs_get_proto(const char *netid, sa_family_t *family, unsigned long *protocol)
        struct netconfig *nconf;
        struct protoent *proto;
 
        struct netconfig *nconf;
        struct protoent *proto;
 
+       /*
+        * IANA does not define a protocol number for rdma netids,
+        * since "rdma" is not an IP protocol.
+        */
+       if (strcmp(netid, "rdma") == 0) {
+               *family = AF_INET;
+               *protocol = NFSPROTO_RDMA;
+               return 1;
+       }
+       if (strcmp(netid, "rdma6") == 0) {
+               *family = AF_INET6;
+               *protocol = NFSPROTO_RDMA;
+               return 1;
+       }
+
        nconf = getnetconfigent(netid);
        if (nconf == NULL)
                return 0;
        nconf = getnetconfigent(netid);
        if (nconf == NULL)
                return 0;
@@ -242,6 +257,16 @@ nfs_get_proto(const char *netid, sa_family_t *family, unsigned long *protocol)
 {
        struct protoent *proto;
 
 {
        struct protoent *proto;
 
+       /*
+        * IANA does not define a protocol number for rdma netids,
+        * since "rdma" is not an IP protocol.
+        */
+       if (strcmp(netid, "rdma") == 0) {
+               *family = AF_INET;
+               *protocol = NFSPROTO_RDMA;
+               return 1;
+       }
+
        proto = getprotobyname(netid);
        if (proto == NULL)
                return 0;
        proto = getprotobyname(netid);
        if (proto == NULL)
                return 0;