File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2440,9 +2440,21 @@ int wolfSSL_BIO_flush(WOLFSSL_BIO* bio)
24402440 {
24412441 WOLFSSL_BIO * bio ;
24422442 WOLFSSL_ENTER ("wolfSSL_BIO_new_accept" );
2443+
2444+ if (port == NULL ) {
2445+ return NULL ;
2446+ }
2447+
24432448 bio = wolfSSL_BIO_new (wolfSSL_BIO_s_socket ());
24442449 if (bio ) {
2445- bio -> port = (word16 )XATOI (port );
2450+ const char * portStr = port ;
2451+ #ifdef WOLFSSL_IPV6
2452+ const char * ipv6End = XSTRSTR (port , "]" );
2453+ if (ipv6End ) {
2454+ portStr = XSTRSTR (ipv6End , ":" );
2455+ }
2456+ #endif
2457+ bio -> port = (word16 )XATOI (portStr );
24462458 bio -> type = WOLFSSL_BIO_SOCKET ;
24472459 }
24482460 return bio ;
Original file line number Diff line number Diff line change @@ -1554,19 +1554,31 @@ int wolfIO_TcpBind(SOCKET_T* sockfd, word16 port)
15541554#ifdef HAVE_SOCKADDR
15551555 int ret = 0 ;
15561556 SOCKADDR_S addr ;
1557+ #ifdef WOLFSSL_IPV6
1558+ socklen_t sockaddr_len = sizeof (SOCKADDR_IN6 );
1559+ SOCKADDR_IN6 * sin = (SOCKADDR_IN6 * )& addr ;
1560+ #else
15571561 socklen_t sockaddr_len = sizeof (SOCKADDR_IN );
15581562 SOCKADDR_IN * sin = (SOCKADDR_IN * )& addr ;
1563+ #endif
15591564
15601565 if (sockfd == NULL || port < 1 ) {
15611566 return WOLFSSL_FATAL_ERROR ;
15621567 }
15631568
15641569 XMEMSET (& addr , 0 , sizeof (addr ));
15651570
1571+ #ifdef WOLFSSL_IPV6
1572+ sin -> sin6_family = AF_INET6 ;
1573+ sin -> sin6_addr = in6addr_any ;
1574+ sin -> sin6_port = XHTONS (port );
1575+ * sockfd = (SOCKET_T )socket (AF_INET6 , SOCK_STREAM , 0 );
1576+ #else
15661577 sin -> sin_family = AF_INET ;
15671578 sin -> sin_addr .s_addr = INADDR_ANY ;
15681579 sin -> sin_port = XHTONS (port );
15691580 * sockfd = (SOCKET_T )socket (AF_INET , SOCK_STREAM , 0 );
1581+ #endif
15701582
15711583#ifdef USE_WINDOWS_API
15721584 if (* sockfd == SOCKET_INVALID )
You can’t perform that action at this time.
0 commit comments