%% options copyright owner = Dirk Krause copyright year = 2015-xxxx license = bsd %% module #include "dk4conf.h" #include "dk4app.h" #include "dk4sock.h" #include "dk4socka.h" #include "dk4vers.h" #include "dk4fput.h" $!trace-include static void dk4socket_c8_debug_allowed_peer(dk4_allowed_peer_t *peerptr) { #if DK4_HAVE_STRUCT_SOCKADDR_IN6 && defined(AF_INET6) unsigned char *ucptr; size_t i; size_t pass; #endif unsigned long ul1, ul2; if (NULL != stdout) { switch (peerptr->af) { case AF_INET : { ul1 = (peerptr->data).ipv4.ad.s_addr; ul2 = (peerptr->data).ipv4.ma.s_addr; ul1 = dk4socket_ntohl(ul1); ul2 = dk4socket_ntohl(ul2); fprintf( stdout, "Address/Mask: %lu.%lu.%lu.%lu/%lu.%lu.%lu.%lu\n", ((ul1 >> 24) & 0x000000FFUL), ((ul1 >> 16) & 0x000000FFUL), ((ul1 >> 8) & 0x000000FFUL), ((ul1 ) & 0x000000FFUL), ((ul2 >> 24) & 0x000000FFUL), ((ul2 >> 16) & 0x000000FFUL), ((ul2 >> 8) & 0x000000FFUL), ((ul2 ) & 0x000000FFUL) ); } break; #if DK4_HAVE_STRUCT_SOCKADDR_IN6 && defined(AF_INET6) case AF_INET6 : { fputs("Address/Mask: ", stdout); for (pass = 0; pass < 2; pass++) { if (0 != pass) { fputc('/', stdout); ucptr = &((peerptr->data).ipv6.ma.s6_addr[0]); } else { ucptr = &((peerptr->data).ipv6.ad.s6_addr[0]); } for (i = 0; i < 16; i++) { if ((0 != i) && (0 == (i % 2))) { fputc(':', stdout); } fprintf(stdout, "%02x", *(ucptr++)); } } fputc('\n', stdout); } break; #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_allowed_peer_t apeer; dk4_er_t er; size_t i; int res; $!trace-init test-sock.deb $? "+ main" if (DK4_SOCKET_RESULT_SUCCESS == dk4socket_up(NULL)) { $? ". up" for (i = 1; i < argc; i++) { dk4error_init(&er); res = dk4socket_get_allowed_peer(&apeer, argv[i], &er); if (DK4_SOCKET_RESULT_SUCCESS == res) { printf("SUCCESS: %s\n", argv[i]); dk4socket_c8_debug_allowed_peer(&apeer); } else { printf("FAILED: %s\n", argv[i]); } } dk4socket_down(NULL); } else { $? "! failed to bring Winsock up" } $? "- main" $!trace-end exit(0); return 0; }