Fix simple warnings that did not include the right files.
[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 <iplib.h>
7 #include <net.h>
8
9 /* simple test, gets a single web page.  no url parsing, no timeout detection,
10  * etc.  pass it the IP addr and page to fetch.
11  *
12  * check out http://www.d.umn.edu/~gshute/net/http-script.html for some info. */
13 int main(int argc, char *argv[])
14 {
15         char *host, *page;
16         int dfd, ret;
17         char buf[128];
18         char addr[256];
19         if (argc != 3) {
20                 printf("Usage: %s HOST PAGE\n", argv[0]);
21                 host = "128.32.37.180";
22                 page = "files/test.html";
23         } else {
24                 host = argv[1];
25                 page = argv[2];
26         }
27         printf("Trying to access http://%s/%s\n", host, page);
28         /* manually making our own addr (no mkaddr, which was racy anyway) */
29         ret = snprintf(addr, sizeof(addr), "tcp!%s!%s", host, "80");
30         if (snprintf_overflow(ret, addr, sizeof(addr))) {
31                 perror("Addr string too long");
32                 exit(-1);
33         }
34         dfd = dial(addr, 0, 0, 0);
35         if (dfd < 0) {
36                 perror("Bad Data FD");
37                 exit(-1);
38         }
39         /* short get style */
40         snprintf(buf, sizeof(buf), "GET /%s\n\n", page);
41         ret = write(dfd, buf, strlen(buf));
42         if (ret < 0) {
43                 perror("Write");
44                 exit(-1);
45         }
46         /* buf - 1, to leave room for a \0 when we print */
47         while ((ret = read(dfd, buf, sizeof(buf) - 1)) > 0) {
48                 assert(ret < sizeof(buf));
49                 /* trim to print only what we received */
50                 buf[ret] = 0;
51                 printf("%s", buf);
52         }
53 }