/* WARNING: This file was generated by dkct. 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: test-udpa.ctr */ /** @file test-udpa.c The test-udpa module. */ #line 1 "test-udpa.ctr" /* test-udap hostname... Test the dk4socket_c8_udp_addresses_numeric() function from the dk4sock32 module. */ #include "dk4conf.h" #include #include "dk4sock.h" static void show_address(dk4_sockaddr_storage_t *addr) { struct sockaddr *sa; struct sockaddr_in *sa4; struct sockaddr_in6 *sa6; unsigned long ul; unsigned short us; size_t i; unsigned char uc; sa = (struct sockaddr *)addr; sa4 = (struct sockaddr_in *)addr; sa6 = (struct sockaddr_in6 *)addr; switch (sa->sa_family) { case AF_INET : { ul = ntohl(sa4->sin_addr.s_addr); us = ntohs(sa4->sin_port); printf( "IPv4 %lu.%lu.%lu.%lu %u\n", ((ul >> 24) & 0x000000FFUL), ((ul >> 16) & 0x000000FFUL), ((ul >> 8) & 0x000000FFUL), ((ul ) & 0x000000FFUL), (unsigned)us ); } break; case AF_INET6 : { us = ntohs(sa6->sin6_port); printf("IPv6 "); for (i = 0; i < 16; i++) { uc = sa6->sin6_addr.s6_addr[i]; if ((0 < i) && (0 == (i % 2))) { printf(":"); } printf("%02X", uc); } printf(" %u\n", (unsigned short)us); } break; default: { printf("ERROR: Unknown address family!\n"); } break; } } int main(int argc, char *argv[]) { dk4_sockaddr_storage_t array[2]; int i; int res; for (i = 1; i < argc; i++) { printf("Test \"%s\"\n", argv[i]); res = dk4socket_c8_udp_addresses_numeric( array, argv[i], 9876, 9876, 0, NULL ); if (DK4_SOCKET_RESULT_SUCCESS == res) { show_address(array); show_address(&(array[1])); } else { printf("ERROR: Not found!\n"); } printf("\n"); } return 0; }