Browse Source

fix bug connect AF_UNIX

woonhak 7 years ago
parent
commit
e94285a566
1 changed files with 7 additions and 5 deletions
  1. 7 5
      LibOS/shim/src/sys/shim_socket.c

+ 7 - 5
LibOS/shim/src/sys/shim_socket.c

@@ -700,12 +700,14 @@ int shim_do_connect (int sockfd, struct sockaddr * addr, int addrlen)
         hdl->pal_handle = NULL;
     }
 
-    if (addrlen != ((sock->domain == AF_INET) ? sizeof(struct sockaddr_in) :
-                    sizeof(struct sockaddr_in6)))
-            goto out;
+	if (sock->domain != AF_UNIX) {
+		if (addrlen != ((sock->domain == AF_INET) ? sizeof(struct sockaddr_in) :
+					sizeof(struct sockaddr_in6)))
+			goto out;
 
-    inet_save_addr(sock->domain, &sock->addr.in.conn, addr);
-    inet_rebase_port(false, sock->domain, &sock->addr.in.conn, false);
+		inet_save_addr(sock->domain, &sock->addr.in.conn, addr);
+		inet_rebase_port(false, sock->domain, &sock->addr.in.conn, false);
+	}
 
     sock->sock_state = (state == SOCK_BOUND) ? SOCK_BOUNDCONNECTED :
                                                SOCK_CONNECTED;