rendered paste bodydiff --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;
}