]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rsockets: Support SO_OOBINLINE
authorSean Hefty <sean.hefty@intel.com>
Wed, 8 Aug 2012 04:25:00 +0000 (21:25 -0700)
committerSean Hefty <sean.hefty@intel.com>
Wed, 8 Aug 2012 04:29:23 +0000 (21:29 -0700)
We don't support urgent data, so just return success.

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

index 1264594dbc6d73e747fca33e6288df492c86e82c..4379bfc7d20c242cce34443c692da10a80a379ac 100644 (file)
@@ -49,6 +49,7 @@
 #include <unistd.h>
 #include <semaphore.h>
 #include <stdio.h>
+#include <sys/syscall.h>
 
 #include <rdma/rdma_cma.h>
 #include <rdma/rdma_verbs.h>
@@ -395,6 +396,8 @@ int socket(int domain, int type, int protocol)
        if (index < 0)
                return index;
 
+       fprintf(fout, "%d socket - %d\n", syscall(SYS_gettid), index);
+       fflush(fout);
        recursive = 1;
        ret = rsocket(domain, type, protocol);
        recursive = 0;
@@ -409,6 +412,9 @@ int socket(int domain, int type, int protocol)
                        fd_store(index, ret, fd_rsocket);
                        set_rsocket_options(ret);
                }
+               fprintf(fout, "%d socket - %d fd %d type %d\n",
+                               syscall(SYS_gettid), index, ret, fd_gett(index));
+               fflush(fout);
                return index;
        }
        fd_close(index, &ret);
@@ -469,6 +475,8 @@ static int fork_active(int socket, const struct sockaddr *addr, socklen_t addrle
        long flags;
 
        fd = fd_getd(socket);
+       fprintf(fout, "%d fork_active - %d fd %d\n", syscall(SYS_gettid), socket, fd);
+       fflush(fout);
        flags = real.fcntl(fd, F_GETFL);
        real.fcntl(fd, F_SETFL, 0);
        ret = real.connect(fd, addr, addrlen);
@@ -499,6 +507,8 @@ static void fork_passive(int socket)
        uint32_t msg;
 
        fd_get(socket, &sfd);
+       fprintf(fout, "%d fork_passive - %d fd %d\n", syscall(SYS_gettid), socket, sfd);
+       fflush(fout);
 
        len = sizeof sin6;
        ret = real.getsockname(sfd, (struct sockaddr *) &sin6, &len);
@@ -531,11 +541,17 @@ static void fork_passive(int socket)
        ret = rlisten(lfd, 1);
        if (ret)
                goto lclose;
+       fprintf(fout, "%d fork_passive - %d listening for fork\n", syscall(SYS_gettid), socket);
+       fflush(fout);
 
        msg = 0;
        len = real.write(sfd, &msg, sizeof msg);
        if (len != sizeof msg)
+       {
+               fprintf(fout, "%d fork_passive - %d write failed\n", syscall(SYS_gettid), socket);
+               fflush(fout);
                goto lclose;
+       }
 
        dfd = raccept(lfd, NULL, NULL);
        if (dfd < 0) {
@@ -551,6 +567,8 @@ static void fork_passive(int socket)
        real.shutdown(sfd, SHUT_RDWR);
        real.close(sfd);
        fd_store(socket, dfd, fd_rsocket);
+       fprintf(fout, "%d fork_passive success - %d new fd %d\n", syscall(SYS_gettid), socket, dfd);
+       fflush(fout);
 
 lclose:
        rclose(lfd);
@@ -928,6 +946,7 @@ int dup2(int oldfd, int newfd)
        int ret;
 
        init_preload();
+       fprintf(fout, "%d dup2 %d -> %d\n", syscall(SYS_gettid), oldfd, newfd);
        oldfdi = idm_lookup(&idm, oldfd);
        if (oldfdi && oldfdi->type == fd_fork)
                fork_passive(oldfd);
@@ -973,16 +992,16 @@ int __fxstat64(int ver, int socket, struct stat64 *buf)
        int fd, ret;
 
        init_preload();
-       fprintf(fout, "fxstat64 socket %d - fd %d type %d\n",
-               socket, fd_getd(socket), fd_gett(socket));
+       fprintf(fout, "%d fxstat64 socket %d - fd %d type %d\n",
+                       syscall(SYS_gettid), socket, fd_getd(socket), fd_gett(socket));
        if (fd_get(socket, &fd) == fd_rsocket) {
                ret = real.fxstat64(ver, socket, buf);
-               fprintf(fout, "fxstat64 - rsocket %d\n", ret);
+               fprintf(fout, "%d fxstat64 - rsocket %d\n", syscall(SYS_gettid), ret);
                if (!ret)
                        buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK;
        } else {
                ret = real.fxstat64(ver, fd, buf);
-               fprintf(fout, "fxstat64 - normal %d\n", ret);
+               fprintf(fout, "%d fxstat64 - normal %d\n", syscall(SYS_gettid), ret);
        }
        fflush(fout);
        return ret;