/* Copyright (C) 2016-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: dk4sock35.ctr */ /** @file dk4sock35.c The dk4sock35 module. */ #line 8 "dk4sock35.ctr" #include "dk4conf.h" #include "dk4sock.h" #if DK4_HAVE_ASSERT_H #ifndef ASSERT_H_INCLUDED #include #define ASSERT_H_INCLUDED 1 #endif #endif #line 21 "dk4sock35.ctr" 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; #line 35 "dk4sock35.ctr" #if DK4_USE_ASSERT assert(NULL != pLocalAddr); assert(0 < szLocalAddr); #endif if ((NULL != pLocalAddr) && (0 < szLocalAddr)) { #line 40 "dk4sock35.ctr" switch (addrfam) { case PF_INET : #if DK4_HAVE_STRUCT_SOCKADDR_IN6 case PF_INET6 : #endif { #line 46 "dk4sock35.ctr" 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) { #line 50 "dk4sock35.ctr" (void)dk4socket_close(back, NULL); back = INVALID_SOCKET; } #if TRACE_DEBUG else { #line 55 "dk4sock35.ctr" } #endif } #if TRACE_DEBUG else { #line 60 "dk4sock35.ctr" } #endif } break; default : { #line 64 "dk4sock35.ctr" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } break; } } else { #line 68 "dk4sock35.ctr" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } #line 70 "dk4sock35.ctr" return back; }