fix doc of using raw values with sendkey
[qemu.git] / slirp / tcp_subr.c
index 6f6585a10ff6a11d1296b3ac18c44719f8fd2e6a..025b3743678b80fe72891e01ca8f0d61551cf7e4 100644 (file)
@@ -336,7 +336,7 @@ int tcp_fconnect(struct socket *so)
     int opt, s=so->s;
     struct sockaddr_in addr;
 
-    fd_nonblock(s);
+    socket_set_nonblock(s);
     opt = 1;
     setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(opt ));
     opt = 1;
@@ -424,7 +424,7 @@ tcp_connect(struct socket *inso)
                tcp_close(sototcpcb(so)); /* This will sofree() as well */
                return;
        }
-       fd_nonblock(s);
+       socket_set_nonblock(s);
        opt = 1;
        setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
        opt = 1;
@@ -435,8 +435,11 @@ tcp_connect(struct socket *inso)
        so->so_fport = addr.sin_port;
        so->so_faddr = addr.sin_addr;
        /* Translate connections from localhost to the real hostname */
-       if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr)
-          so->so_faddr = slirp->vhost_addr;
+        if (so->so_faddr.s_addr == 0 ||
+            (so->so_faddr.s_addr & loopback_mask) ==
+            (loopback_addr.s_addr & loopback_mask)) {
+            so->so_faddr = slirp->vhost_addr;
+        }
 
        /* Close the accept() socket, set right state */
        if (inso->so_state & SS_FACCEPTONCE) {
This page took 0.02479 seconds and 4 git commands to generate.