All pastes #2006155 Raw Edit

HORNY GOAT ORGY

public text v1 · immutable
#2006155 ·published 2010-11-29 21:09 UTC
rendered paste body
diff --git a/pjlib/src/pj/sock_bsd.c b/pjlib/src/pj/sock_bsd.c
index 1554af8..046ca13 100644
--- a/pjlib/src/pj/sock_bsd.c
+++ b/pjlib/src/pj/sock_bsd.c
@@ -754,10 +754,27 @@ PJ_DEF(pj_status_t) pj_sock_connect( pj_sock_t sock,
 				     const pj_sockaddr_t *addr,
 				     int namelen)
 {
+    const pj_sockaddr *b = addr;
     PJ_CHECK_STACK();
-    if (connect(sock, (struct sockaddr*)addr, namelen) != 0)
+    if (b->addr.sa_family == pj_AF_INET6()) {
+        char buf[PJ_INET6_ADDRSTRLEN];
+        int len = sizeof(pj_sockaddr_in6);
+        pj_sockaddr c;
+        pj_sock_getsockname(sock, &c, &len);
+        pj_sockaddr_print(&c, buf, sizeof(buf), 1 | 2);
+        printf ("On v6 connect, trying to connect from socket bound to %s\n", buf);
+        printf ("Address family is really %sset correctly\n", c.addr.sa_family == AF_INET6 ? "" : "NOT ");
+        printf ("And the len after getsockname is %d\n", len);
+        pj_sockaddr_print(b, buf, sizeof(buf), 1 | 2);
+        printf ("On v6 connect, trying to connect to %s\n", buf);
+        printf ("Address family is really %sset correctly\n", b->addr.sa_family == AF_INET6 ? "" : "NOT ");
+        printf ("And the len is %d\n", namelen);
+
+    }
+    if (connect(sock, (struct sockaddr*)b, namelen) != 0) {
+        printf("connect failed: %d(%s)\n", errno, strerror(errno));
 	return PJ_RETURN_OS_ERROR(pj_get_native_netos_error());
-    else
+    } else
 	return PJ_SUCCESS;
 }