]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rsockets: Enable support for privileged ports
authorSean Hefty <sean.hefty@intel.com>
Wed, 25 Jul 2012 18:11:56 +0000 (11:11 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 25 Jul 2012 18:11:56 +0000 (11:11 -0700)
Allow the preload library to use rsockets with priviledged
ports.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
src/preload.c

index c8ad747e1419309e396edfbb9490fd1edf64e5b1..52eaf1a52b31f083e542d1e6b88fd56e313e39f3 100644 (file)
@@ -405,23 +405,9 @@ real:
 
 int bind(int socket, const struct sockaddr *addr, socklen_t addrlen)
 {
-       struct sockaddr_in *sin;
-       int fd, ret;
-
-       if (fd_get(socket, &fd) == fd_rsocket) {
-               sin = (struct sockaddr_in *) addr;
-               if (!sin->sin_port || ntohs(sin->sin_port) > 1024)
-                       return rbind(fd, addr, addrlen);
-
-               ret = transpose_socket(socket, fd_normal);
-               if (ret < 0)
-                       return ret;
-
-               rclose(fd);
-               fd = ret;
-       }
-
-       return real.bind(fd, addr, addrlen);
+       int fd;
+       return (fd_get(socket, &fd) == fd_rsocket) ?
+               rbind(fd, addr, addrlen) : real.bind(fd, addr, addrlen);
 }
 
 int listen(int socket, int backlog)
@@ -582,19 +568,15 @@ static inline enum fd_type fd_fork_get(int index, int *fd)
 
 int connect(int socket, const struct sockaddr *addr, socklen_t addrlen)
 {
-       struct sockaddr_in *sin;
        int fd, ret;
 
        switch (fd_get(socket, &fd)) {
        case fd_fork:
                return fork_active(socket, addr, addrlen);
        case fd_rsocket:
-               sin = (struct sockaddr_in *) addr;
-               if (ntohs(sin->sin_port) > 1024) {
-                       ret = rconnect(fd, addr, addrlen);
-                       if (!ret || errno == EINPROGRESS)
-                               return ret;
-               }
+               ret = rconnect(fd, addr, addrlen);
+               if (!ret || errno == EINPROGRESS)
+                       return ret;
 
                ret = transpose_socket(socket, fd_normal);
                if (ret < 0)