Set a NUL terminator before calling inet_aton.
[people/xl0/gpxe.git] / src / tests / hellotest.c
1 #include <stdint.h>
2 #include <string.h>
3 #include <byteswap.h>
4 #include <console.h>
5 #include <vsprintf.h>
6 #include <gpxe/async.h>
7 #include <gpxe/hello.h>
8
9 static void test_hello_callback ( char *data, size_t len ) {
10         unsigned int i;
11         char c;
12
13         for ( i = 0 ; i < len ; i++ ) {
14                 c = data[i];
15                 if ( c == '\r' ) {
16                         /* Print nothing */
17                 } else if ( ( c == '\n' ) || ( c >= 32 ) || ( c <= 126 ) ) {
18                         putchar ( c );
19                 } else {
20                         putchar ( '.' );
21                 }
22         }
23 }
24
25 void test_hello ( struct sockaddr_in *server, const char *message ) {
26         struct hello_request hello;
27         int rc;
28
29         printf ( "Saying \"%s\" to %s:%d\n", message,
30                  inet_ntoa ( server->sin_addr ), ntohs ( server->sin_port ) );
31         
32         memset ( &hello, 0, sizeof ( hello ) );
33         hello.tcp.sin = *server;
34         hello.message = message;
35         hello.callback = test_hello_callback;
36
37         rc = async_wait ( say_hello ( &hello ) );
38         if ( rc ) {
39                 printf ( "HELLO fetch failed\n" );
40         }
41 }