Adds test program to fetch a web page
[akaros.git] / tests / get_html.c
1 #include <stdlib.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include <unistd.h>
5 #include <assert.h>
6 //#include <nixip.h>
7
8 int main()
9 {
10         printf("Commented out, pending inferno stack\n");
11         return 0;
12 }
13
14 #if 0
15 /* simple test, gets a single web page.  no url parsing, no timeout detection,
16  * etc.  pass it the IP addr and page to fetch.
17  *
18  * check out http://www.d.umn.edu/~gshute/net/http-script.html for some info. */
19 int main(int argc, char *argv[])
20 {
21         char *host, *page, *addr;
22         int dfd, ret;
23         char buf[128];
24         if (argc != 3) {
25                 printf("Usage: %s HOST PAGE\n", argv[0]);
26                 host = "128.32.37.180";
27                 page = "files/test.html";
28         } else {
29                 host = argv[1];
30                 page = argv[2];
31         }
32         printf("Trying to access http://%s/%s\n", host, page);
33         /* mkaddr/dial style */
34         addr = netmkaddr(host, "/9/net/tcp", "80");
35         dfd = dial(addr, 0, 0, 0);
36         if (dfd < 0) {
37                 perror("Bad Data FD");
38                 exit(-1);
39         }
40         /* short get style */
41         snprintf(buf, sizeof(buf), "GET /%s\n\n", page);
42         ret = write(dfd, buf, strlen(buf));
43         if (ret < 0) {
44                 perror("Write");
45                 exit(-1);
46         }
47         /* buf - 1, to leave room for a \0 when we print */
48         while ((ret = read(dfd, buf, sizeof(buf) - 1)) > 0) {
49                 assert(ret < sizeof(buf));
50                 /* trim to print only what we received */
51                 buf[ret] = 0;
52                 printf("%s", buf);
53         }
54 }
55 #endif