1 | #include <stdio.h> |
2 | #include <string.h> |
3 | #include <arpa/inet.h> |
4 | #include <netinet/in.h> |
5 | |
6 | |
7 | static int |
8 | test (unsigned int inaddr, const char *expected) |
9 | { |
10 | struct in_addr addr; |
11 | char *res; |
12 | int fail; |
13 | |
14 | addr.s_addr = htonl (inaddr); |
15 | res = inet_ntoa (in: addr); |
16 | fail = strcmp (res, expected); |
17 | |
18 | printf (format: "%#010x -> \"%s\" -> %s%s\n" , inaddr, res, |
19 | fail ? "fail, expected" : "ok" , fail ? expected : "" ); |
20 | |
21 | return fail; |
22 | } |
23 | |
24 | |
25 | static int |
26 | do_test (void) |
27 | { |
28 | int result = 0; |
29 | |
30 | result |= test (INADDR_LOOPBACK, expected: "127.0.0.1" ); |
31 | result |= test (INADDR_BROADCAST, expected: "255.255.255.255" ); |
32 | result |= test (INADDR_ANY, expected: "0.0.0.0" ); |
33 | result |= test (inaddr: 0xc0060746, expected: "192.6.7.70" ); |
34 | |
35 | return result; |
36 | } |
37 | |
38 | #define TEST_FUNCTION do_test () |
39 | #include "../test-skeleton.c" |
40 | |