%% options copyright owner = Dirk Krause copyright year = 2016-xxxx license = bsd %% module #include "dk4sock.h" $!trace-include dk4_socket_t dk4socket_udp_client_for_addr( int addrfam, struct sockaddr *pLocalAddr, size_t szLocalAddr, dk4_er_t *erp ) { dk4_socket_t back = INVALID_SOCKET; int res; $? "+ dk4socket_udp_client_for_addr" if ((NULL != pLocalAddr) && (0 < szLocalAddr)) { $? ". arguments" switch (addrfam) { case PF_INET : #if DK4_HAVE_STRUCT_SOCKADDR_IN6 case PF_INET6 : #endif { $? ". pf ok" back = dk4socket_open(addrfam, SOCK_DGRAM, 0, erp); if (INVALID_SOCKET != back) { res = dk4socket_bind(back, pLocalAddr, szLocalAddr, erp); if (DK4_SOCKET_RESULT_SUCCESS != res) { $? "! bind" (void)dk4socket_close(back, NULL); back = INVALID_SOCKET; } #if TRACE_DEBUG else { $? ". bind" } #endif } #if TRACE_DEBUG else { $? "! socket" } #endif } break; default : { $? "! invalid pf" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } break; } } else { $? "! arguments" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } $? "- dk4socket_udp_client_for_addr %d", (int)back return back; }