System call sys_getchar () was improved; stdin is correspond with 0. fd and stdout...
[ZeXOS.git] / apps / websrv / main.c
blobbd8cb64b6e4d07882fd03a48fdc38b3205a9a93d
1 /*
2 * ZeX/OS
3 * Copyright (C) 2007 Tomas 'ZeXx86' Jedrzejek (zexx86@gmail.com)
4 * Copyright (C) 2008 Tomas 'ZeXx86' Jedrzejek (zexx86@gmail.com)
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
21 #include <stdio.h>
22 #include <string.h>
23 #include <stdlib.h>
24 #include <unistd.h>
25 #include "net.h"
26 #include "http.h"
28 int arguments (int argc, char **argv)
30 if (argc < 2)
31 return 0;
33 unsigned i = argc - 1;
34 unsigned len = strlen (argv[i]);
35 int flags = 0;
37 if (len < 2)
38 return 0;
40 if (!strcmp (argv[i], "-6"))
41 flags |= FLAG_IPV6;
43 return flags;
46 int main (int argc, char **argv)
48 int port = DEFAULT_HTTP_PORT;
49 int flags = arguments (argc, argv);
51 printf ("websrv\n-=-=-=-\nExit -- (ESC)\n");
53 if ((!flags && argc == 2) || argc == 3)
54 port = atoi (argv[1]);
56 if (init (port, flags) < 1) {
57 printf ("websrv -> init (0) !\n");
58 return -1;
61 while (1) {
62 if (loop () == -1)
63 break;
65 /* Escape was pressed */
66 if (getkey () == 1)
67 break;
69 schedule ();
72 http_destroy ();
74 printf ("websrv -> Bye !\n");
76 return 0;