%% options copyright owner = Dirk Krause copyright year = 2015-xxxx license = bsd %% module #include "dk4conf.h" #include "dk4sock.h" $!trace-include #if DK4_HAVE_STRUCT_SOCKADDR_IN6 && defined(AF_INET6) struct in6_addr sin6; #endif struct in_addr sin4; static void run_test(const char *addrtext) { char buf[1040]; dk4_er_t er; int res; printf("Text: \"%s\"\n", addrtext); dk4error_init(&er); res = dk4socket_c8_inet_pton(&sin4, sizeof(sin4), AF_INET, addrtext, &er); if (DK4_SOCKET_RESULT_SUCCESS == res) { res = dk4socket_c8_inet_ntop(buf, sizeof(buf), AF_INET, &sin4, &er); if (DK4_SOCKET_RESULT_SUCCESS == res) { printf("Address: \"%s\"\n", buf); } else { printf("Conversion succeeded.\n"); } } else { #if DK4_HAVE_STRUCT_SOCKADDR_IN6 && defined(AF_INET6) res = dk4socket_c8_inet_pton(&sin6, sizeof(sin6), AF_INET6, addrtext, &er); if (DK4_SOCKET_RESULT_SUCCESS == res) { res = dk4socket_c8_inet_ntop(buf, sizeof(buf), AF_INET6, &sin6, &er); if (DK4_SOCKET_RESULT_SUCCESS == res) { printf("Address: \"%s\"\n", buf); } else { printf("Conversion succeeded.\n"); } } else { #endif printf("!!!!! Conversion failed!\n"); #if DK4_HAVE_STRUCT_SOCKADDR_IN6 && defined(AF_INET6) } #endif } } /** Main function. @param argc Number of command line arguments. @param argv Command line arguments array. @return 0 on success, all other values indicate errors. */ #if DK4_CHAR_SIZE > 1 int wmain(int argc, wchar_t *argv[]) #else int main(int argc, char *argv[]) #endif { dk4_er_t er; int i; $!trace-init test-inet-pton.deb $? "+ main" dk4error_init(&er); if (DK4_SOCKET_RESULT_SUCCESS == dk4socket_up(&er)) { for (i = 1; i < argc; i++) { run_test(argv[i]); } dk4socket_down(&er); } $? "- main" $!trace-end return 0; }