59 #define WEBSERVER_CONF_PAGETITLE sprintf(buf,"[%02x%02x]",WAD[14],WAD[15]);
64 #ifndef WEBSERVER_CONF_NANO
65 #if CONTIKI_TARGET_SKY || CONTIKI_TARGET_STK500
66 #define WEBSERVER_CONF_NANO 1
67 #elif CONTIKI_TARGET_REDBEE_ECONOTAG || CONTIKI_TARGET_AVR_RAVEN || CONTIKI_TARGET_AVR_ATMEGA128RFA1
68 #define WEBSERVER_CONF_NANO 2
70 #define WEBSERVER_CONF_NANO 3
74 #if WEBSERVER_CONF_NANO==1
76 #define WEBSERVER_CONF_CONNS 2
77 #define WEBSERVER_CONF_NAMESIZE 16
78 #define WEBSERVER_CONF_BUFSIZE 40
80 #define WEBSERVER_CONF_TIMEOUT 20
82 #define WEBSERVER_CONF_INCLUDE 1
84 #define WEBSERVER_CONF_CGI 1
86 #define MAX_SCRIPT_NAME_LENGTH WEBSERVER_CONF_NAMESIZE+2
88 #define WEBSERVER_CONF_HEADER 1
90 #define WEBSERVER_CONF_HEADER_MENU 1 //with links to other pages
92 #define WEBSERVER_CONF_LOADTIME 0 //show load time in filestats
93 #define WEBSERVER_CONF_FILESTATS 1
94 #define WEBSERVER_CONF_TCPSTATS 0
95 #define WEBSERVER_CONF_PROCESSES 0
96 #define WEBSERVER_CONF_ADDRESSES 1
97 #define WEBSERVER_CONF_NEIGHBORS 1
98 #define WEBSERVER_CONF_NEIGHBOR_STATUS 0
99 #define WEBSERVER_CONF_ROUTES 0
100 #define WEBSERVER_CONF_ROUTE_LINKS 0
101 #define WEBSERVER_CONF_SENSORS 0
102 #define WEBSERVER_CONF_STATISTICS 0
103 #define WEBSERVER_CONF_TICTACTOE 0 //Needs passquery of at least 10 chars
104 #define WEBSERVER_CONF_AJAX 0
106 #if WEBSERVER_CONF_PASSQUERY
107 extern char httpd_query[WEBSERVER_CONF_PASSQUERY];
110 #define WEBSERVER_CONF_JPG 0
111 #define WEBSERVER_CONF_PNG 0
112 #define WEBSERVER_CONF_GIF 0
113 #define WEBSERVER_CONF_TXT 1
114 #define WEBSERVER_CONF_CSS 0
115 #define WEBSERVER_CONF_BIN 0
118 #define WEBSERVER_CONF_LOG 0
120 #define WEBSERVER_CONF_REFERER 0
122 #elif WEBSERVER_CONF_NANO==2
124 #define WEBSERVER_CONF_CONNS 2
125 #define WEBSERVER_CONF_NAMESIZE 20
126 #define WEBSERVER_CONF_BUFSIZE 40
127 #define WEBSERVER_CONF_TIMEOUT 20
129 #define WEBSERVER_CONF_INCLUDE 1
131 #define WEBSERVER_CONF_CGI 1
133 #define MAX_SCRIPT_NAME_LENGTH WEBSERVER_CONF_NAMESIZE+2
135 #define WEBSERVER_CONF_HEADER 1
137 #define WEBSERVER_CONF_HEADER_MENU 1 //with links to other pages
139 #define WEBSERVER_CONF_LOADTIME 1
140 #define WEBSERVER_CONF_FILESTATS 1
141 #define WEBSERVER_CONF_TCPSTATS 1
142 #define WEBSERVER_CONF_PROCESSES 1
143 #define WEBSERVER_CONF_ADDRESSES 1
144 #define WEBSERVER_CONF_NEIGHBORS 1
145 #define WEBSERVER_CONF_NEIGHBOR_STATUS 1
146 #define WEBSERVER_CONF_ROUTES 1
147 #define WEBSERVER_CONF_ROUTE_LINKS 1
148 #define WEBSERVER_CONF_SENSORS 1
149 #define WEBSERVER_CONF_STATISTICS 1
151 #define WEBSERVER_CONF_AJAX 1
152 #define WEBSERVER_CONF_SHOW_ROOM 0
153 #define WEBSERVER_CONF_PASSQUERY 10
154 #if WEBSERVER_CONF_PASSQUERY
155 extern char httpd_query[WEBSERVER_CONF_PASSQUERY];
158 #define WEBSERVER_CONF_JPG 0
159 #define WEBSERVER_CONF_PNG 0
160 #define WEBSERVER_CONF_GIF 0
161 #define WEBSERVER_CONF_TXT 1
162 #define WEBSERVER_CONF_CSS 0
163 #define WEBSERVER_CONF_BIN 0
166 #define WEBSERVER_CONF_LOG 0
168 #define WEBSERVER_CONF_REFERER 1
171 #elif WEBSERVER_CONF_NANO==3
173 #define WEBSERVER_CONF_CONNS 6
174 #define WEBSERVER_CONF_NAMESIZE 20
175 #define WEBSERVER_CONF_BUFSIZE 40
176 #define WEBSERVER_CONF_TIMEOUT 20
178 #define WEBSERVER_CONF_INCLUDE 1
180 #define WEBSERVER_CONF_CGI 1
182 #define MAX_SCRIPT_NAME_LENGTH WEBSERVER_CONF_NAMESIZE+2
184 #define WEBSERVER_CONF_HEADER 1
186 #define WEBSERVER_CONF_HEADER_MENU 1 //with links to other pages
188 #define WEBSERVER_CONF_LOADTIME 1
189 #define WEBSERVER_CONF_FILESTATS 1
190 #define WEBSERVER_CONF_TCPSTATS 1
191 #define WEBSERVER_CONF_PROCESSES 1
192 #define WEBSERVER_CONF_ADDRESSES 1
193 #define WEBSERVER_CONF_NEIGHBORS 1
194 #define WEBSERVER_CONF_ROUTES 1
195 #define WEBSERVER_CONF_NEIGHBORS 1
196 #define WEBSERVER_CONF_NEIGHBOR_STATUS 1
197 #define WEBSERVER_CONF_ROUTES 1
198 #define WEBSERVER_CONF_ROUTE_LINKS 1
199 #define WEBSERVER_CONF_SENSORS 1
200 #define WEBSERVER_CONF_STATISTICS 1
201 #define WEBSERVER_CONF_TICTACTOE 1 //Needs passquery of at least 10 chars
202 #define WEBSERVER_CONF_AJAX 1
203 #define WEBSERVER_CONF_PASSQUERY 10
204 #if WEBSERVER_CONF_PASSQUERY
205 extern char httpd_query[WEBSERVER_CONF_PASSQUERY];
208 #define WEBSERVER_CONF_JPG 1
209 #define WEBSERVER_CONF_PNG 1
210 #define WEBSERVER_CONF_GIF 1
211 #define WEBSERVER_CONF_TXT 1
212 #define WEBSERVER_CONF_CSS 1
213 #define WEBSERVER_CONF_BIN 1
216 #define WEBSERVER_CONF_LOG 1
218 #define WEBSERVER_CONF_REFERER 1
221 #error Specified WEBSERVER_CONF_NANO configuration not supported.
225 #if WEBSERVER_CONF_LOG || WEBSERVER_CONF_ADDRESSES || WEBSERVER_CONF_NEIGHBORS || WEBSERVER_CONF_ROUTES
227 #define WEBSERVER_CONF_PRINTADDR 1
229 #if WEBSERVER_CONF_PRINTADDR
230 uint8_t httpd_cgi_sprint_ip6(uip_ip6addr_t addr,
char * result);
232 #define httpd_cgi_sprint_ip6(...) 0
235 #include "contiki-net.h"
236 #include "httpd-fs.h"
242 #include <avr/pgmspace.h>
243 #define HTTPD_STRING_ATTR PROGMEM
244 #define PRINTA(FORMAT,args...) printf_P(PSTR(FORMAT),##args)
246 #define httpd_memcpy memcpy_P
247 #define httpd_strcpy strcpy_P
248 #define httpd_strcmp strcmp_P
249 #define httpd_strncmp strncmp_P
250 #define httpd_strlen strlen_P
251 #define httpd_snprintf snprintf_P
252 #define httpd_fs_cpy memcpy_P
253 #define httpd_fs_strcmp strcmp_P
254 #define httpd_fs_strchr strchr_P
255 #define httpd_fs_getchar(x) pgm_read_byte(x)
258 #define HTTPD_STRING_ATTR
259 #define PRINTA(FORMAT,args...) printf(FORMAT,##args)
260 #define httpd_snprintf snprintf
261 #define httpd_fs_cpy memcpy
262 #define httpd_memcpy memcpy
263 #define httpd_strcpy strcpy
264 #define httpd_strcmp strcmp
265 #define httpd_strncmp strncmp
266 #define httpd_strlen strlen
267 #define httpd_fs_strchr strchr
268 #define httpd_fs_strcmp strcmp
269 #define httpd_fs_getchar(c) *(c)
274 struct psock sin, sout;
276 #if WEBSERVER_CONF_INCLUDE || WEBSERVER_CONF_CGI
279 char inputbuf[WEBSERVER_CONF_BUFSIZE];
280 char filename[WEBSERVER_CONF_NAMESIZE];
282 struct httpd_fs_file file;
284 #if WEBSERVER_CONF_INCLUDE || WEBSERVER_CONF_CGI
288 #if WEBSERVER_CONF_LOADTIME
289 clock_time_t pagetime;
291 #if WEBSERVER_CONF_AJAX
292 uint16_t ajax_timeout;
294 #if WEBSERVER_CONF_NEIGHBORS || WEBSERVER_CONF_ROUTES
295 uint8_t starti,savei,startj,savej;
297 #if WEBSERVER_CONF_CGI
299 unsigned short count;
305 void httpd_init(
void);
306 void httpd_appcall(
void *state);
324 struct httpd_state *sg;
325 #define uip_mss(...) 512
326 #define uip_appdata TCPBUF
The representation of a protosocket.
Interface structure (contains all the interface variables)