int ipv6_addrinit(struct sockaddr* addr, const char* address, int port){ struct sockaddr_in6* addr6 = (struct sockaddr_in6*)addr; simple_bzero(addr6, sizeof(*addr6)); addr6->sin6_family = AF_INET6; addr6->sin6_port = htons(port); if(ipv6_pton(address, &addr6->sin6_addr) <= 0){ return -1; } return 0; }
int ipv4_addrinit(struct sockaddr* addr, const char* address, int port){ struct sockaddr_in* addr4 = (struct sockaddr_in*)addr; simple_bzero(addr4, sizeof(*addr4)); addr4->sin_family = AF_INET; addr4->sin_port = htons(port); if(ipv4_pton(address, &addr4->sin_addr) <= 0){ return -1; } return 0; }
static void do_one_test (impl_t *impl, CHAR *s, int c __attribute ((unused)), size_t n) { size_t i, iters = INNER_LOOP_ITERS; timing_t start, stop, cur; CHAR tstbuf[n]; #ifdef TEST_BZERO simple_bzero (tstbuf, n); CALL (impl, s, n); if (memcmp (s, tstbuf, n) != 0) #else CHAR *res = CALL (impl, s, c, n); if (res != s || SIMPLE_MEMSET (tstbuf, c, n) != tstbuf || MEMCMP (s, tstbuf, n) != 0) #endif /* !TEST_BZERO */ { error (0, 0, "Wrong result in function %s", impl->name); ret = 1; return; } TIMING_NOW (start); for (i = 0; i < iters; ++i) { #ifdef TEST_BZERO CALL (impl, s, n); #else CALL (impl, s, c, n); #endif /* !TEST_BZERO */ } TIMING_NOW (stop); TIMING_DIFF (cur, start, stop); TIMING_PRINT_MEAN ((double) cur, (double) iters); }