File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2442,7 +2442,14 @@ int wolfSSL_BIO_flush(WOLFSSL_BIO* bio)
24422442 WOLFSSL_ENTER ("wolfSSL_BIO_new_accept" );
24432443 bio = wolfSSL_BIO_new (wolfSSL_BIO_s_socket ());
24442444 if (bio ) {
2445- bio -> port = (word16 )XATOI (port );
2445+ const char * portStr = port ;
2446+ #ifdef WOLFSSL_IPV6
2447+ const char * ipv6End = XSTRSTR (port , "]" );
2448+ if (ipv6End ) {
2449+ portStr = XSTRSTR (ipv6End , ":" );
2450+ }
2451+ #endif
2452+ bio -> port = (word16 )XATOI (portStr );
24462453 bio -> type = WOLFSSL_BIO_SOCKET ;
24472454 }
24482455 return bio ;
Original file line number Diff line number Diff line change @@ -1508,19 +1508,31 @@ int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port)
15081508#ifdef HAVE_SOCKADDR
15091509 int ret = 0 ;
15101510 SOCKADDR_S addr ;
1511+ #ifdef WOLFSSL_IPV6
1512+ socklen_t sockaddr_len = sizeof (SOCKADDR_IN6 );
1513+ SOCKADDR_IN6 * sin = (SOCKADDR_IN6 * )& addr ;
1514+ #else
15111515 socklen_t sockaddr_len = sizeof (SOCKADDR_IN );
15121516 SOCKADDR_IN * sin = (SOCKADDR_IN * )& addr ;
1517+ #endif
15131518
15141519 if (sockfd == NULL || port < 1 ) {
15151520 return WOLFSSL_FATAL_ERROR ;
15161521 }
15171522
15181523 XMEMSET (& addr , 0 , sizeof (addr ));
15191524
1525+ #ifdef WOLFSSL_IPV6
1526+ sin -> sin6_family = AF_INET6 ;
1527+ sin -> sin6_addr = in6addr_any ;
1528+ sin -> sin6_port = XHTONS (port );
1529+ * sockfd = (SOCKET_T )socket (AF_INET6 , SOCK_STREAM , 0 );
1530+ #else
15201531 sin -> sin_family = AF_INET ;
15211532 sin -> sin_addr .s_addr = INADDR_ANY ;
15221533 sin -> sin_port = XHTONS (port );
15231534 * sockfd = (SOCKET_T )socket (AF_INET , SOCK_STREAM , 0 );
1535+ #endif
15241536
15251537#ifdef USE_WINDOWS_API
15261538 if (* sockfd == SOCKET_INVALID )
You can’t perform that action at this time.
0 commit comments