1 /* Test by David L Stevens <dlstevens@us.ibm.com> [BZ #358] */
5 #include <sys/socket.h>
10 const char portstr
[] = "583";
11 int port
= atoi (portstr
);
12 struct addrinfo hints
, *aires
, *pai
;
16 memset (&hints
, 0, sizeof (hints
));
17 hints
.ai_family
= AF_INET
;
18 rv
= getaddrinfo (NULL
, portstr
, &hints
, &aires
);
21 struct sockaddr_in
*psin
= 0;
25 got_tcp
= got_udp
= 0;
26 for (pai
= aires
; pai
; pai
= pai
->ai_next
)
28 printf ("ai_family=%d, ai_addrlen=%d, ai_socktype=%d",
29 (int) pai
->ai_family
, (int) pai
->ai_addrlen
,
30 (int) pai
->ai_socktype
);
31 if (pai
->ai_family
== AF_INET
)
33 ntohs (((struct sockaddr_in
*) pai
->ai_addr
)->sin_port
));
36 err
|= pai
->ai_family
!= AF_INET
;
37 err
|= pai
->ai_addrlen
!= sizeof (struct sockaddr_in
);
38 err
|= pai
->ai_addr
== 0;
39 if (pai
->ai_family
== AF_INET
)
41 ntohs (((struct sockaddr_in
*) pai
->ai_addr
)->sin_port
) != port
;
42 got_tcp
|= pai
->ai_socktype
== SOCK_STREAM
;
43 got_udp
|= pai
->ai_socktype
== SOCK_DGRAM
;
49 printf ("FAIL getaddrinfo IPv4 socktype 0,513: "
50 "fam %d alen %d addr 0x%08X addr/fam %d "
51 "addr/port %d H[%d]\n",
52 pai
->ai_family
, pai
->ai_addrlen
, psin
,
53 psin
? psin
->sin_family
: 0,
54 psin
? psin
->sin_port
: 0,
55 psin
? htons (psin
->sin_port
) : 0);
57 else if (got_tcp
&& got_udp
)
59 printf ("SUCCESS getaddrinfo IPv4 socktype 0,513\n");
63 printf ("FAIL getaddrinfo IPv4 socktype 0,513 TCP %d"
64 " UDP %d\n", got_tcp
, got_udp
);
68 printf ("FAIL getaddrinfo IPv4 socktype 0,513 returns %d "
69 "(\"%s\")\n", rv
, gai_strerror (rv
));
74 #define TEST_FUNCTION do_test ()
75 #include "../test-skeleton.c"