private fork
Fork of GSwifiInterface by
Diff: GSwifi/GSwifi_httpd.cpp
- Revision:
- 19:d035412a7803
- Parent:
- 18:20970aec3ad3
- Child:
- 20:9bfb8a13010c
diff -r 20970aec3ad3 -r d035412a7803 GSwifi/GSwifi_httpd.cpp --- a/GSwifi/GSwifi_httpd.cpp Mon May 12 01:24:09 2014 +0000 +++ b/GSwifi/GSwifi_httpd.cpp Thu Jun 05 04:21:02 2014 +0000 @@ -26,9 +26,28 @@ if (!isAssociated() || _state.status != STAT_READY) return -1; memset(&_httpd, 0, sizeof(_httpd)); - for (i = 0; i < 16; i ++) { + for (i = 0; i < CFG_MAX_SOCKETS; i ++) { _httpd[i].mode = HTTPDMODE_REQUEST; + _httpd[i].buf = _con[i].buf; } +#ifdef CFG_ENABLE_RTOS +#ifdef CFG_EXTENDED_MEMORY2 + int n = CFG_EXTENDED_SIZE2 / CFG_MAX_SOCKETS; + for (i = 0; i < CFG_MAX_SOCKETS; i ++) { + _httpd[i].uri = (char*)(CFG_EXTENDED_MEMORY2 + (n * i)); +#ifdef CFG_ENABLE_RTOS + _httpd[i].websocket_key = (char*)malloc(30); +#endif + } +#else // CFG_EXTENDED_MEMORY + for (i = 0; i < CFG_MAX_SOCKETS; i ++) { + _httpd[i].uri = (char*)malloc(CFG_CMD_SIZE); +#ifdef CFG_ENABLE_RTOS + _httpd[i].websocket_key = (char*)malloc(30); +#endif + } +#endif // CFG_EXTENDED_MEMORY +#endif _handler_count = 0; _httpd_cid = listen(PROTO_TCP, port); @@ -204,10 +223,10 @@ } else { return -1; } - +#ifndef CFG_ENABLE_RTOS if (_httpd[cid].uri == NULL) _httpd[cid].uri = (char*)malloc(CFG_CMD_SIZE); - +#endif for (i = 0; i < len - j; i ++) { _httpd[cid].uri[i] = buf[i + j]; if (buf[i + j] == ' ' || i >= CFG_CMD_SIZE - 1) { @@ -298,9 +317,11 @@ } void GSwifi::reqWebSocketKey (int cid, const char *buf) { +#ifndef CFG_ENABLE_RTOS if (_httpd[cid].websocket_key == NULL) { _httpd[cid].websocket_key = (char*)malloc(30); } +#endif strncpy(_httpd[cid].websocket_key, &buf[19], 30); } #else