Create "username" and "password" DHCP options, ready for placing this
[people/xl0/gpxe.git] / src / tests / ftptest.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/ftp.h>
8
9 static void test_ftp_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_ftp ( struct in_addr server, const char *filename ) {
26         struct ftp_request ftp;
27         int rc;
28
29         printf ( "FTP fetching %s:%s\n", inet_ntoa ( server ), filename );
30         
31         memset ( &ftp, 0, sizeof ( ftp ) );
32         ftp.tcp.sin.sin_addr.s_addr = server.s_addr;
33         ftp.tcp.sin.sin_port = htons ( FTP_PORT );
34         ftp.filename = filename;
35         ftp.callback = test_ftp_callback;
36
37         rc = async_wait ( ftp_get ( &ftp ) );
38         if ( rc ) {
39                 printf ( "FTP fetch failed\n" );
40         }
41 }