diff options
Diffstat (limited to 'support/dktools/dk4sock16.ctr')
-rw-r--r-- | support/dktools/dk4sock16.ctr | 62 |
1 files changed, 31 insertions, 31 deletions
diff --git a/support/dktools/dk4sock16.ctr b/support/dktools/dk4sock16.ctr index ebac56871b..06f0aea8c7 100644 --- a/support/dktools/dk4sock16.ctr +++ b/support/dktools/dk4sock16.ctr @@ -2,11 +2,12 @@ copyright owner = Dirk Krause copyright year = 2015-xxxx -license = bsd +SPDX-License-Identifier: BSD-3-Clause %% module +#include "dk4conf.h" #include "dk4sock.h" #include <stdio.h> @@ -48,6 +49,14 @@ license = bsd #endif #endif +#if DK4_HAVE_ASSERT_H +#ifndef ASSERT_H_INCLUDED +#include <assert.h> +#define ASSERT_H_INCLUDED 1 +#endif +#endif + + $!trace-include @@ -55,10 +64,7 @@ $!trace-include static dk4_socket_t dk4socket_tcp_client_cleanup_socket( - dk4_socket_t sock, - int level, - struct sockaddr *pAddr, - size_t szAddr + dk4_socket_t sock ) { #if 0 @@ -86,8 +92,6 @@ dk4socket_tcp_client_connect_attempt( dk4_socket_t back, struct sockaddr *pAddr, size_t szAddr, - struct sockaddr *pLoAddr, - size_t szLoAddr, long secs, long usecs, dk4_er_t *erp @@ -107,6 +111,10 @@ dk4socket_tcp_client_connect_attempt( int res; $? "+ dk4socket_tcp_client_connect_attempt" $? ". remote = PTR=%d %lu", TR_IPTR(pAddr), (unsigned long)szAddr +#if DK4_USE_ASSERT + assert(NULL != pAddr); + assert(0 < szAddr); +#endif res = dk4socket_connect(back, pAddr, szAddr, erp); switch (res) { case DK4_SOCKET_RESULT_SUCCESS : { $? ". connected" @@ -131,33 +139,27 @@ dk4socket_tcp_client_connect_attempt( if (0 != dk4socket_non_null_getsockopt(err, slo)) { $? "! non-null from getsockopt" dk4error_set_idetails(erp, DK4_E_SOCKET_CONNECT, err); - back = dk4socket_tcp_client_cleanup_socket( - back, 1, pLoAddr, szLoAddr - ); + back = dk4socket_tcp_client_cleanup_socket(back); } #if VERSION_BEFORE_20160415 if (sizeof(int) != slo) { if (0 != err) { $? "! error from getsockopt" dk4error_set_idetails(erp, DK4_E_SOCKET_CONNECT, err); - back = dk4socket_tcp_client_cleanup_socket( - back, 1, pLoAddr, szLoAddr - ); + back = dk4socket_tcp_client_cleanup_socket(back); } } else { $? "! getsockopt (size)" dk4socket_error_report(erp, DK4_E_SOCKET_GETSOCKOPT); - back = dk4socket_tcp_client_cleanup_socket( - back, 1, pLoAddr, szLoAddr - ); + back = dk4socket_tcp_client_cleanup_socket(back); } #endif } else { $? "! getsockopt" dk4socket_error_report(erp, DK4_E_SOCKET_GETSOCKOPT); - back = dk4socket_tcp_client_cleanup_socket(back,1,pLoAddr,szLoAddr); + back = dk4socket_tcp_client_cleanup_socket(back); } #endif } else { $? "! timeout (not in list)" dk4error_set_simple_error_code(erp, DK4_E_SOCKET_TIMEOUT); - back = dk4socket_tcp_client_cleanup_socket(back,0,pLoAddr,szLoAddr); + back = dk4socket_tcp_client_cleanup_socket(back); } } else { if (0 > res) { $? "! select" @@ -165,11 +167,11 @@ dk4socket_tcp_client_connect_attempt( } else { $? "! timeout (from select)" dk4error_set_simple_error_code(erp, DK4_E_SOCKET_TIMEOUT); } - back = dk4socket_tcp_client_cleanup_socket(back,0,pLoAddr,szLoAddr); + back = dk4socket_tcp_client_cleanup_socket(back); } } break; default : { $? "! failed" - back = dk4socket_tcp_client_cleanup_socket(back, 0, pLoAddr, szLoAddr); + back = dk4socket_tcp_client_cleanup_socket(back); } break; } $? "- dk4socket_tcp_client_connect_attempt %d", (int)back @@ -196,6 +198,10 @@ dk4socket_tcp_client_for_addr( int opt = 0; #endif $? "+ dk4socket_tcp_client_for_addr" +#if DK4_USE_ASSERT + assert(NULL != pRemoteAddr); + assert(0 < szRemoteAddr); +#endif if ((NULL != pRemoteAddr) && (0 < szRemoteAddr)) { $? ". args ok" $? ". remote = PTR=%d %lu",TR_IPTR(pRemoteAddr),(unsigned long)szRemoteAddr back = dk4socket_open(protfam, SOCK_STREAM, 0, erp); @@ -226,9 +232,7 @@ dk4socket_tcp_client_for_addr( #endif res = dk4socket_bind(back, pLocalAddr, szLocalAddr, erp); if (DK4_SOCKET_RESULT_FAILED == res) { $? "! bind" - back = dk4socket_tcp_client_cleanup_socket( - back, 0, pLocalAddr, szLocalAddr - ); + back = dk4socket_tcp_client_cleanup_socket(back); } } if (INVALID_SOCKET != back) { @@ -236,25 +240,21 @@ dk4socket_tcp_client_for_addr( res = dk4socket_option_set_nonblock(back, 1, erp); if (DK4_SOCKET_RESULT_SUCCESS == res) { $? ". non-blocking" back = dk4socket_tcp_client_connect_attempt( - back, pRemoteAddr, szRemoteAddr, pLocalAddr, szLocalAddr, + back, pRemoteAddr, szRemoteAddr, seconds, microSeconds, erp ); if (INVALID_SOCKET != back) { res = dk4socket_option_set_nonblock(back, 0, erp); if (DK4_SOCKET_RESULT_SUCCESS != res) { $? "! back blocking" - back = dk4socket_tcp_client_cleanup_socket( - back, 1, pLocalAddr, szLocalAddr - ); + back = dk4socket_tcp_client_cleanup_socket(back); } } } else { $? "! non-blocking" - back = dk4socket_tcp_client_cleanup_socket( - back, 0, pLocalAddr, szLocalAddr - ); + back = dk4socket_tcp_client_cleanup_socket(back); } } else { $? ". no timeout" back = dk4socket_tcp_client_connect_attempt( - back, pRemoteAddr, szRemoteAddr, pLocalAddr, szLocalAddr, + back, pRemoteAddr, szRemoteAddr, 0L, 0L, erp ); } |