From 09b8b8087c0ef761c51c35461c64cf82b7ae2f2e Mon Sep 17 00:00:00 2001
From: Sashka <github@durdom.com>
Date: Mon, 23 Oct 2017 17:59:13 -0400
Subject: [PATCH] Add libesphttpd to extras and supporting example (#458)

* libesphttpd: added extras and example

* Added "heatshrink" as a submodule

* Updated libesphttpd

* Updated libesphttpd

* Trying to fix the commit id

* Updated libesphttpd

* Added zlib1g-dev package

* Use native gcc to build mkespfsimage and mkupgimg

* Added NS and GW for DHCP server configuration
---
 .gitmodules                                   |   6 +
 .travis.yml                                   |   1 +
 examples/esphttpd/FreeRTOSConfig.h            |  11 +
 examples/esphttpd/Makefile                    |  16 ++
 examples/esphttpd/cgi-test.c                  |  90 ++++++++
 examples/esphttpd/cgi-test.h                  |   8 +
 examples/esphttpd/cgi.c                       |  81 +++++++
 examples/esphttpd/cgi.h                       |  10 +
 .../esphttpd/html/cats/cross-eyed-cat.jpg     | Bin 0 -> 36487 bytes
 .../esphttpd/html/cats/junge-katze-iv.jpg     | Bin 0 -> 34289 bytes
 .../esphttpd/html/cats/kitten-loves-toy.jpg   | Bin 0 -> 49447 bytes
 examples/esphttpd/html/flash/140medley.min.js |   2 +
 examples/esphttpd/html/flash/index.html       |  75 +++++++
 examples/esphttpd/html/flash/style.css        |  34 +++
 examples/esphttpd/html/index.tpl              |  26 +++
 examples/esphttpd/html/led.tpl                |  15 ++
 examples/esphttpd/html/style.css              |  17 ++
 examples/esphttpd/html/test/index.html        |   9 +
 examples/esphttpd/html/test/test.js           | 205 +++++++++++++++++
 examples/esphttpd/html/websocket/index.html   |  69 ++++++
 examples/esphttpd/html/wifi/140medley.min.js  |   2 +
 examples/esphttpd/html/wifi/connecting.html   |  43 ++++
 examples/esphttpd/html/wifi/icons.png         | Bin 0 -> 914 bytes
 examples/esphttpd/html/wifi/style.css         |  24 ++
 examples/esphttpd/html/wifi/wifi.tpl          |  94 ++++++++
 examples/esphttpd/io.c                        |  72 ++++++
 examples/esphttpd/io.h                        |   7 +
 examples/esphttpd/user_main.c                 | 210 ++++++++++++++++++
 extras/libesphttpd/component.mk               |  64 ++++++
 extras/libesphttpd/libesphttpd                |   1 +
 30 files changed, 1192 insertions(+)
 create mode 100644 examples/esphttpd/FreeRTOSConfig.h
 create mode 100644 examples/esphttpd/Makefile
 create mode 100644 examples/esphttpd/cgi-test.c
 create mode 100644 examples/esphttpd/cgi-test.h
 create mode 100644 examples/esphttpd/cgi.c
 create mode 100644 examples/esphttpd/cgi.h
 create mode 100644 examples/esphttpd/html/cats/cross-eyed-cat.jpg
 create mode 100644 examples/esphttpd/html/cats/junge-katze-iv.jpg
 create mode 100644 examples/esphttpd/html/cats/kitten-loves-toy.jpg
 create mode 100644 examples/esphttpd/html/flash/140medley.min.js
 create mode 100644 examples/esphttpd/html/flash/index.html
 create mode 100644 examples/esphttpd/html/flash/style.css
 create mode 100644 examples/esphttpd/html/index.tpl
 create mode 100644 examples/esphttpd/html/led.tpl
 create mode 100644 examples/esphttpd/html/style.css
 create mode 100644 examples/esphttpd/html/test/index.html
 create mode 100644 examples/esphttpd/html/test/test.js
 create mode 100644 examples/esphttpd/html/websocket/index.html
 create mode 100644 examples/esphttpd/html/wifi/140medley.min.js
 create mode 100644 examples/esphttpd/html/wifi/connecting.html
 create mode 100644 examples/esphttpd/html/wifi/icons.png
 create mode 100644 examples/esphttpd/html/wifi/style.css
 create mode 100644 examples/esphttpd/html/wifi/wifi.tpl
 create mode 100644 examples/esphttpd/io.c
 create mode 100644 examples/esphttpd/io.h
 create mode 100644 examples/esphttpd/user_main.c
 create mode 100644 extras/libesphttpd/component.mk
 create mode 160000 extras/libesphttpd/libesphttpd

diff --git a/.gitmodules b/.gitmodules
index 17f8003..6790fd5 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -28,3 +28,9 @@
 [submodule "extras/crc_generic/crc_lib"]
 	path = extras/crc_generic/crc_lib
 	url = https://github.com/Zaltora/crc_generic_lib.git
+[submodule "extras/libesphttpd/libesphttpd"]
+	path = extras/libesphttpd/libesphttpd
+	url = https://github.com/nochkin/libesphttpd
+[submodule "extras/libesphttpd/libesphttpd/lib/heatshrink"]
+	path = extras/libesphttpd/libesphttpd/lib/heatshrink
+	url = https://github.com/atomicobject/heatshrink
diff --git a/.travis.yml b/.travis.yml
index 39674fe..4d2597d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -34,6 +34,7 @@ addons:
     - git
     - help2man
     - vim-common
+    - zlib1g-dev
 
 before_install:
   - pip install --user pyserial
diff --git a/examples/esphttpd/FreeRTOSConfig.h b/examples/esphttpd/FreeRTOSConfig.h
new file mode 100644
index 0000000..d6d9c5e
--- /dev/null
+++ b/examples/esphttpd/FreeRTOSConfig.h
@@ -0,0 +1,11 @@
+/* FreeRTOSConfig overrides.
+
+   This is intended as an example of overriding some of the default FreeRTOSConfig settings,
+   which are otherwise found in FreeRTOS/Source/include/FreeRTOSConfig.h
+*/
+
+#define configUSE_RECURSIVE_MUTEXES     1
+
+/* Use the defaults for everything else */
+#include_next<FreeRTOSConfig.h>
+
diff --git a/examples/esphttpd/Makefile b/examples/esphttpd/Makefile
new file mode 100644
index 0000000..2362443
--- /dev/null
+++ b/examples/esphttpd/Makefile
@@ -0,0 +1,16 @@
+PROGRAM = esphttpd
+EXTRA_COMPONENTS = extras/dhcpserver extras/rboot-ota extras/libesphttpd
+
+ESP_IP ?= 192.168.4.1
+
+#Tag for OTA images. 0-27 characters. Change to eg your projects title.
+LIBESPHTTPD_OTA_TAGNAME ?= generic
+
+LIBESPHTTPD_MAX_CONNECTIONS ?= 8
+LIBESPHTTPD_STACKSIZE ?= 2048
+
+PROGRAM_CFLAGS += -DFREERTOS -DLIBESPHTTPD_OTA_TAGNAME="\"$(LIBESPHTTPD_OTA_TAGNAME)\"" -DFLASH_SIZE=$(FLASH_SIZE)
+EXTRA_CFLAGS += -DMEMP_NUM_NETCONN=$(LIBESPHTTPD_MAX_CONNECTIONS)
+
+include ../../common.mk
+
diff --git a/examples/esphttpd/cgi-test.c b/examples/esphttpd/cgi-test.c
new file mode 100644
index 0000000..7a16aed
--- /dev/null
+++ b/examples/esphttpd/cgi-test.c
@@ -0,0 +1,90 @@
+/*
+Cgi routines as used by the tests in the html/test subdirectory.
+*/
+
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * Jeroen Domburg <jeroen@spritesmods.com> wrote this file. As long as you retain 
+ * this notice you can do whatever you want with this stuff. If we meet some day, 
+ * and you think this stuff is worth it, you can buy me a beer in return. 
+ * ----------------------------------------------------------------------------
+ */
+
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+
+#include <espressif/esp_common.h>
+
+#include "cgi-test.h"
+
+typedef struct {
+	int len;
+	int sendPos;
+} TestbedState;
+
+
+int ICACHE_FLASH_ATTR cgiTestbed(HttpdConnData *connData) {
+	char buff[1024];
+	int first=0;
+	int l, x;
+	TestbedState *state=(TestbedState*)connData->cgiData;
+
+	if (connData->conn==NULL) {
+		//Connection aborted. Clean up.
+		if (state) free(state);
+		return HTTPD_CGI_DONE;
+	}
+
+	if (state==NULL) {
+		//First call
+		state=malloc(sizeof(TestbedState));
+		memset(state, 0, sizeof(state));
+		connData->cgiData=state;
+		first=1;
+	}
+
+	if (connData->requestType==HTTPD_METHOD_GET) {
+		if (first) {
+			httpdStartResponse(connData, 200);
+			httpdHeader(connData, "content-type", "application/data");
+			httpdEndHeaders(connData);
+			l=httpdFindArg(connData->getArgs, "len", buff, sizeof(buff));
+			state->len=1024;
+			if (l!=-1) state->len=atoi(buff);
+			state->sendPos=0;
+			return HTTPD_CGI_MORE;
+		} else {
+			l=sizeof(buff);
+			if (l>(state->len-state->sendPos)) l=(state->len-state->sendPos);
+			//Fill with semi-random data
+			for (x=0; x<l; x++) buff[x]=((x^(state->sendPos>>10))&0x1F)+'0';
+			httpdSend(connData, buff, l);
+			state->sendPos+=l;
+			printf("Test: Uploaded %d/%d bytes\n", state->sendPos, state->len);
+			if (state->len<=state->sendPos) {
+				if (state) free(state);
+				return HTTPD_CGI_DONE; 
+			} else {
+				return HTTPD_CGI_MORE;
+			}
+		}
+	}
+	if (connData->requestType==HTTPD_METHOD_POST) {
+		if (connData->post->len!=connData->post->received) {
+			//Still receiving data. Ignore this.
+			printf("Test: got %d/%d bytes\n", connData->post->received, connData->post->len);
+			return HTTPD_CGI_MORE;
+		} else {
+			httpdStartResponse(connData, 200);
+			httpdHeader(connData, "content-type", "text/plain");
+			httpdEndHeaders(connData);
+			l=sprintf(buff, "%d", connData->post->received);
+			httpdSend(connData, buff, l);
+			return HTTPD_CGI_DONE;
+		}
+	}
+	return HTTPD_CGI_DONE;
+}
diff --git a/examples/esphttpd/cgi-test.h b/examples/esphttpd/cgi-test.h
new file mode 100644
index 0000000..a2c752e
--- /dev/null
+++ b/examples/esphttpd/cgi-test.h
@@ -0,0 +1,8 @@
+#ifndef CGI_TEST_H
+#define CGI_TEST_H
+
+#include <libesphttpd/httpd.h>
+
+int cgiTestbed(HttpdConnData *connData);
+
+#endif
diff --git a/examples/esphttpd/cgi.c b/examples/esphttpd/cgi.c
new file mode 100644
index 0000000..5b83ca2
--- /dev/null
+++ b/examples/esphttpd/cgi.c
@@ -0,0 +1,81 @@
+/*
+Some random cgi routines. Used in the LED example and the page that returns the entire
+flash as a binary. Also handles the hit counter on the main page.
+*/
+
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * Jeroen Domburg <jeroen@spritesmods.com> wrote this file. As long as you retain 
+ * this notice you can do whatever you want with this stuff. If we meet some day, 
+ * and you think this stuff is worth it, you can buy me a beer in return. 
+ * ----------------------------------------------------------------------------
+ */
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+#include <espressif/esp_common.h>
+
+#include "cgi.h"
+#include "io.h"
+
+
+//cause I can't be bothered to write an ioGetLed()
+static char currLedState=0;
+
+//Cgi that turns the LED on or off according to the 'led' param in the POST data
+int ICACHE_FLASH_ATTR cgiLed(HttpdConnData *connData) {
+	int len;
+	char buff[1024];
+	
+	if (connData->conn==NULL) {
+		//Connection aborted. Clean up.
+		return HTTPD_CGI_DONE;
+	}
+
+	len=httpdFindArg(connData->post->buff, "led", buff, sizeof(buff));
+	if (len!=0) {
+		currLedState=atoi(buff);
+		ioLed(currLedState);
+	}
+
+	httpdRedirect(connData, "led.tpl");
+	return HTTPD_CGI_DONE;
+}
+
+
+
+//Template code for the led page.
+int ICACHE_FLASH_ATTR tplLed(HttpdConnData *connData, char *token, void **arg) {
+	char buff[128];
+	if (token==NULL) return HTTPD_CGI_DONE;
+
+	strcpy(buff, "Unknown");
+	if (strcmp(token, "ledstate")==0) {
+		if (currLedState) {
+			strcpy(buff, "on");
+		} else {
+			strcpy(buff, "off");
+		}
+	}
+	httpdSend(connData, buff, -1);
+	return HTTPD_CGI_DONE;
+}
+
+static int hitCounter=0;
+
+//Template code for the counter on the index page.
+int ICACHE_FLASH_ATTR tplCounter(HttpdConnData *connData, char *token, void **arg) {
+	char buff[128];
+	if (token==NULL) return HTTPD_CGI_DONE;
+
+	if (strcmp(token, "counter")==0) {
+		hitCounter++;
+		sprintf(buff, "%d", hitCounter);
+	}
+	httpdSend(connData, buff, -1);
+	return HTTPD_CGI_DONE;
+}
diff --git a/examples/esphttpd/cgi.h b/examples/esphttpd/cgi.h
new file mode 100644
index 0000000..5cb7296
--- /dev/null
+++ b/examples/esphttpd/cgi.h
@@ -0,0 +1,10 @@
+#ifndef CGI_H
+#define CGI_H
+
+#include <libesphttpd/httpd.h>
+
+int cgiLed(HttpdConnData *connData);
+int tplLed(HttpdConnData *connData, char *token, void **arg);
+int tplCounter(HttpdConnData *connData, char *token, void **arg);
+
+#endif
diff --git a/examples/esphttpd/html/cats/cross-eyed-cat.jpg b/examples/esphttpd/html/cats/cross-eyed-cat.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e166e871d87539efd48b1695540f6abbc96444af
GIT binary patch
literal 36487
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

literal 0
HcmV?d00001

diff --git a/examples/esphttpd/html/cats/junge-katze-iv.jpg b/examples/esphttpd/html/cats/junge-katze-iv.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c3cf70b9cc8c789b343dad6f310d63208a31830b
GIT binary patch
literal 34289
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
Q12^^(h)OaO{644u*;aWSN&o-=

literal 0
HcmV?d00001

diff --git a/examples/esphttpd/html/cats/kitten-loves-toy.jpg b/examples/esphttpd/html/cats/kitten-loves-toy.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..569ff561340cd46506829efb51d8ed0d7cc88616
GIT binary patch
literal 49447
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

literal 0
HcmV?d00001

diff --git a/examples/esphttpd/html/flash/140medley.min.js b/examples/esphttpd/html/flash/140medley.min.js
new file mode 100644
index 0000000..d1495d1
--- /dev/null
+++ b/examples/esphttpd/html/flash/140medley.min.js
@@ -0,0 +1,2 @@
+var t=function(a,b){return function(c,d){return a.replace(/#{([^}]*)}/g,function(a,f){return Function("x","with(x)return "+f).call(c,d||b||{})})}},s=function(a,b){return b?{get:function(c){return a[c]&&b.parse(a[c])},set:function(c,d){a[c]=b.stringify(d)}}:{}}(this.localStorage||{},JSON),p=function(a,b,c,d){c=c||document;d=c[b="on"+b];a=c[b]=function(e){d=d&&d(e=e||c.event);return(a=a&&b(e))?b:d};c=this},m=function(a,b,c){b=document;c=b.createElement("p");c.innerHTML=a;for(a=b.createDocumentFragment();b=
+c.firstChild;)a.appendChild(b);return a},$=function(a,b){a=a.match(/^(\W)?(.*)/);return(b||document)["getElement"+(a[1]?a[1]=="#"?"ById":"sByClassName":"sByTagName")](a[2])},j=function(a){for(a=0;a<4;a++)try{return a?new ActiveXObject([,"Msxml2","Msxml3","Microsoft"][a]+".XMLHTTP"):new XMLHttpRequest}catch(b){}};
diff --git a/examples/esphttpd/html/flash/index.html b/examples/esphttpd/html/flash/index.html
new file mode 100644
index 0000000..d336a6c
--- /dev/null
+++ b/examples/esphttpd/html/flash/index.html
@@ -0,0 +1,75 @@
+<html>
+<head><title>Upgrade firmware</title>
+<link rel="stylesheet" type="text/css" href="style.css">
+<script type="text/javascript" src="140medley.min.js"></script>
+<script type="text/javascript">
+
+var xhr=j();
+
+function doReboot() {
+	xhr.open("GET", "reboot");
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			window.setTimeout(function() {
+				location.reload(true);
+			}, 3000);
+		}
+	}
+	//ToDo: set timer to 
+	xhr.send();
+}
+
+function setProgress(amt) {
+	$("#progressbarinner").style.width=String(amt*200)+"px";
+}
+
+function doUpgrade() {
+	var f=$("#file").files[0];
+	if (typeof f=='undefined') {
+		$("#remark").innerHTML="Can't read file!";
+		return
+	}
+	xhr.open("POST", "upload");
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			setProgress(1);
+			if (xhr.responseText!="") {
+				$("#remark").innerHTML="Error: "+xhr.responseText;
+			} else {
+				$("#remark").innerHTML="Uploading done. Rebooting.";
+				doReboot();
+			}
+		}
+	}
+	if (typeof xhr.upload.onprogress != 'undefined') {
+		xhr.upload.onprogress=function(e) {
+			setProgress(e.loaded / e.total);
+		}
+	}
+	xhr.send(f);
+	return false;
+}
+
+
+window.onload=function(e) {
+	xhr.open("GET", "next");
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			var txt="Please upload "+xhr.responseText+" or ota file.";
+			$("#remark").innerHTML=txt;
+			setProgress(0);
+		}
+	}
+	xhr.send();
+}
+
+</script>
+</head>
+<body>
+<div id="main">
+<h1>Update firmware</h1>
+<div id="remark">Loading...</div>
+<input type="file" id="file" />
+<input type="submit" value="Upgrade!" onclick="doUpgrade()" />
+<div id="progressbar"><div id="progressbarinner"></div></div>
+</body>
\ No newline at end of file
diff --git a/examples/esphttpd/html/flash/style.css b/examples/esphttpd/html/flash/style.css
new file mode 100644
index 0000000..7678ec8
--- /dev/null
+++ b/examples/esphttpd/html/flash/style.css
@@ -0,0 +1,34 @@
+
+body {
+	background-color: #404040;
+	font-family: sans-serif;
+}
+
+#main {
+	background-color: #d0d0FF;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+	border: 2px solid #000000;
+	width: 800px;
+	margin: 0 auto;
+	padding: 20px
+}
+
+#progressbar {
+	margin: 10px;
+	padding: 0;
+	border: 1px solid #000000;
+	height: 20px;
+	width: 200px;
+	background-color: #808080;
+}
+
+#progressbarinner {
+	width: 10px;
+	height: 20px;
+	border: none;
+	background-color: #00ff00;
+}
+
+
diff --git a/examples/esphttpd/html/index.tpl b/examples/esphttpd/html/index.tpl
new file mode 100644
index 0000000..737f301
--- /dev/null
+++ b/examples/esphttpd/html/index.tpl
@@ -0,0 +1,26 @@
+<html>
+<head><title>Esp8266 web server</title>
+<link rel="stylesheet" type="text/css" href="style.css">
+</head>
+<body>
+<div id="main">
+<h1>It Works</h1>
+<p>
+If you see this, it means the tiny li'l website in your ESP8266 does actually work. Fyi, this page has
+been loaded <b>%counter%</b> times.
+<ul>
+<li>If you haven't connected this device to your WLAN network now, you can <a href="/wifi">do so.</a></li>
+<li>You can also control the <a href="led.tpl">LED</a>.</li>
+<li>Esphttpd now also supports <a href="websocket/index.html">websockets</a>.</li>
+<li>Test esphttpd using the built-in <a href="test/">test suite</a></li>
+<li>And because I can, here's a link to my <a href="http://spritesmods.com/?f=esphttpd">website</a></ul>
+</ul>
+</p>
+
+<p>And because we're on the Internets now, here are the required pictures of cats:<br />
+<img src="cats/cross-eyed-cat.jpg"><br />
+<img src="cats/junge-katze-iv.jpg"><br />
+<img src="cats/kitten-loves-toy.jpg"><br />
+</p>
+</div>
+</body></html>
diff --git a/examples/esphttpd/html/led.tpl b/examples/esphttpd/html/led.tpl
new file mode 100644
index 0000000..7a9cf89
--- /dev/null
+++ b/examples/esphttpd/html/led.tpl
@@ -0,0 +1,15 @@
+<html><head><title>Test</title>
+<link rel="stylesheet" type="text/css" href="style.css">
+</head>
+<body>
+<div id="main">
+<h1>The LED</h1>
+<p>
+If there's a LED connected to GPIO2, it's now %ledstate%. You can change that using the buttons below.
+</p>
+<form method="post" action="led.cgi">
+<input type="submit" name="led" value="1">
+<input type="submit" name="led" value="0">
+</form>
+</div>
+</body></html>
diff --git a/examples/esphttpd/html/style.css b/examples/esphttpd/html/style.css
new file mode 100644
index 0000000..2a2f758
--- /dev/null
+++ b/examples/esphttpd/html/style.css
@@ -0,0 +1,17 @@
+
+body {
+	background-color: #404040;
+	font-family: sans-serif;
+}
+
+#main {
+	background-color: #d0d0FF;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+	border: 2px solid #000000;
+	width: 800px;
+	margin: 0 auto;
+	padding: 20px
+}
+
diff --git a/examples/esphttpd/html/test/index.html b/examples/esphttpd/html/test/index.html
new file mode 100644
index 0000000..01f4121
--- /dev/null
+++ b/examples/esphttpd/html/test/index.html
@@ -0,0 +1,9 @@
+<html><head><title>Webserver test</title></head>
+<link rel="stylesheet" type="text/css" href="../wifi/style.css">
+<script type="text/javascript" src="../wifi/140medley.min.js"></script>
+<script type="text/javascript" src="test.js"></script>
+<body>
+<div id="main">
+<div id="log">Initializing test...</div>
+</div>
+</body>
\ No newline at end of file
diff --git a/examples/esphttpd/html/test/test.js b/examples/esphttpd/html/test/test.js
new file mode 100644
index 0000000..03c0cd4
--- /dev/null
+++ b/examples/esphttpd/html/test/test.js
@@ -0,0 +1,205 @@
+
+/*
+Code to test the webserver. This depends on:
+- The cat images being available, for concurrent espfs testing
+- the test.cgi script available, for generic data mangling tests
+
+
+This test does a max of 4 requests in parallel. The nonos SDK supports a max of
+5 connections; the default libesphttpd setting is 4 sockets at a time. Unfortunately,
+the nonos sdk just closes all sockets opened after the available sockets are opened,
+instead of queueing them until a socket frees up.
+*/
+
+
+function log(line) {
+	$("#log").insertAdjacentHTML('beforeend', line+'<br />');
+}
+
+
+//Load an image multiple times in parallel
+function testParLdImg(url, ct, doneFn) {
+	var im=[];
+	var state={"loaded":0, "count":ct, "doneFn": doneFn, "error":false};
+	for (var x=0; x<ct; x++) {
+		im[x]=new Image();
+		im[x].onload=function(no) {
+			log("File "+no+" loaded successfully.");
+			this.loaded++;
+			if (this.loaded==this.count) this.doneFn(!this.error);
+		}.bind(state, x);
+		im[x].onerror=function(no) {
+			log("Error loading image "+no+"!");
+			this.loaded++;
+			this.error++;
+			if (this.loaded==this.count) this.doneFn(!this.error);
+		}.bind(state, x);
+		im[x].src=url+"?"+Math.floor(Math.random()*100000).toString();
+	}
+}
+
+function testDownloadCgi(len, doneFn) {
+	var xhr=j();
+	var state={"len":len, "doneFn":doneFn, "ts": Date.now()};
+	xhr.open("GET", "test.cgi?len="+len+"&nocache="+Math.floor(Math.random()*100000).toString());
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			if (xhr.response.length==this.len) {
+				log("Downloaded "+this.len+" bytes successfully.");
+				this.doneFn(true);
+			} else {
+				log("Downloaded "+xhr.response.length+" bytes successfully, but needed "+this.len+"!");
+				this.doneFn(false);
+			}
+		} else if (xhr.readyState==4) {
+			log("Failed! Error "+xhr.status);
+			this.doneFn(false);
+		}
+	}.bind(state);
+	//If the webbrowser enables it, show progress.
+	if (typeof xhr.onprogress != 'undefined') {
+		xhr.onprogress=function(e) {
+			if (Date.now()>this.ts+2000) {
+				log("..."+Math.floor(e.loaded*100/this.len).toString()+"%");
+				this.ts=Date.now();
+			}
+		}.bind(state);
+	}
+	xhr.send();
+}
+
+
+function testUploadCgi(len, doneFn) {
+	var xhr=j();
+	var state={"len":len, "doneFn":doneFn, "ts": Date.now()};
+	var data="";
+	for (var x=0; x<len; x++) data+="X";
+	xhr.open("POST", "test.cgi");
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			var ulen=parseInt(xhr.responseText);
+			if (ulen==this.len) {
+				log("Uploaded "+this.len+" bytes successfully.");
+				this.doneFn(true);
+			} else {
+				log("Webserver received "+ulen+" bytes successfully, but sent "+this.len+"!");
+				this.doneFn(false);
+			}
+		} else if (xhr.readyState==4) {
+			log("Failed! Error "+xhr.status);
+			this.doneFn(false);
+		}
+	}.bind(state);
+	//If the webbrowser enables it, show progress.
+	if (typeof xhr.upload.onprogress != 'undefined') {
+		xhr.upload.onprogress=function(e) {
+			if (Date.now()>this.ts+2000) {
+				log("..."+Math.floor(e.loaded*100/e.total).toString()+"%");
+				this.ts=Date.now();
+			}
+		}.bind(state);
+	}
+	//Upload the file
+	xhr.send(data);
+}
+
+function hammerNext(state, xhr) {
+	if (state.done==state.count) {
+		state.doneFn(!state.error);
+	}
+	if (state.started==state.count) return;
+	xhr.open("GET", "test.cgi?len="+state.len+"&nocache="+Math.floor(Math.random()*100000).toString());
+	xhr.onreadystatechange=function(xhr) {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			if (xhr.response.length==this.len) {
+				state.done++;
+				hammerNext(this, xhr);
+			} else {
+				log("Downloaded "+xhr.response.length+" bytes successfully, but needed "+this.len+"!");
+				state.done++;
+				hammerNext(this, xhr);
+			}
+		} else if (xhr.readyState==4) {
+			log("Failed! Error "+xhr.status);
+			state.done++;
+			hammerNext(this, xhr);
+		}
+	}.bind(state, xhr);
+	//If the webbrowser enables it, show progress.
+	if (typeof xhr.onprogress != 'undefined') {
+		xhr.onprogress=function(e) {
+			if (Date.now()>this.ts+2000) {
+				log("..."+state.done+"/"+state.count);
+				this.ts=Date.now();
+			}
+		}.bind(state);
+	}
+	state.started++;
+	xhr.send();
+}
+
+function testHammer(count, par, len, doneFn) {
+	var state={"count":count, "started":0, "done":0, "par":par, "len":len, "doneFn":doneFn, "ts": Date.now(), "error":false};
+	var xhr=[];
+	for (var i=0; i<par; i++) {
+		xhr[i]=j();
+		hammerNext(state, xhr[i]);
+	}
+}
+
+
+
+var tstState=0;
+var successCnt=0;
+
+function nextTest(lastOk) {
+	if (tstState!=0) {
+		if (lastOk) {
+			log("<b>Success!</b>"); 
+			successCnt++;
+		} else {
+			log("<b>Test failed!</b>");
+		}
+	}
+	tstState++;
+	if (tstState==1) {
+		log("Testing parallel load of espfs files...");
+		testParLdImg("../cats/kitten-loves-toy.jpg", 3, nextTest);
+	} else if (tstState==2) {
+		log("Testing GET request of 32K...");
+		testDownloadCgi(32*1024, nextTest);
+	} else if (tstState==3) {
+		log("Testing GET request of 128K...");
+		testDownloadCgi(128*1024, nextTest);
+	} else if (tstState==4) {
+		log("Testing GET request of 512K...");
+		testDownloadCgi(512*1024, nextTest);
+	} else if (tstState==5) {
+		log("Testing POST request of 512 bytes...");
+		testUploadCgi(512, nextTest);
+	} else if (tstState==6) {
+		log("Testing POST request of 16K bytes...");
+		testUploadCgi(16*1024, nextTest);
+	} else if (tstState==7) {
+		log("Testing POST request of 512K bytes...");
+		testUploadCgi(512*1024, nextTest);
+	} else if (tstState==8) {
+		log("Hammering webserver with 500 requests of size 512...");
+		testHammer(500, 3, 512, nextTest);
+	} else if (tstState==9) {
+		log("Hammering webserver with 500 requests of size 2048...");
+		testHammer(500, 3, 2048, nextTest);
+	} else {
+		log("Tests done! "+successCnt+" out of "+(tstState-1)+" tests were successful.");
+	}
+}
+
+
+
+window.onload=function(e) {
+	log("Starting tests.");
+	nextTest(false);
+}
+
+
+
diff --git a/examples/esphttpd/html/websocket/index.html b/examples/esphttpd/html/websocket/index.html
new file mode 100644
index 0000000..d7423ec
--- /dev/null
+++ b/examples/esphttpd/html/websocket/index.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+
+<meta charset="utf-8" />
+
+<title>WebSocket Test</title>
+
+<script language="javascript" type="text/javascript">
+
+  var wsUri = "ws://"+window.location.host+"/websocket/ws.cgi";
+  var output;
+
+  function init()
+  {
+    output = document.getElementById("output");
+    testWebSocket();
+  }
+
+  function testWebSocket()
+  {
+    websocket = new WebSocket(wsUri);
+    websocket.onopen = function(evt) { onOpen(evt) };
+    websocket.onclose = function(evt) { onClose(evt) };
+    websocket.onmessage = function(evt) { onMessage(evt) };
+    websocket.onerror = function(evt) { onError(evt) };
+  }
+
+  function onOpen(evt)
+  {
+    writeToScreen("CONNECTED");
+    doSend("WebSocket rocks");
+  }
+
+  function onClose(evt)
+  {
+    writeToScreen("DISCONNECTED");
+  }
+
+  function onMessage(evt)
+  {
+    writeToScreen('<span style="color: blue;">RECEIVED: ' + evt.data+'</span>');
+//    websocket.close();
+  }
+
+  function onError(evt)
+  {
+    writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
+  }
+
+  function doSend(message)
+  {
+    writeToScreen("SENT: " + message); 
+    websocket.send(message);
+  }
+
+  function writeToScreen(message)
+  {
+    var pre = document.createElement("p");
+    pre.style.wordWrap = "break-word";
+    pre.innerHTML = message;
+    output.appendChild(pre);
+  }
+
+  window.addEventListener("load", init, false);
+
+</script>
+
+<h2>WebSocket Test</h2>
+
+<div id="output"></div>
diff --git a/examples/esphttpd/html/wifi/140medley.min.js b/examples/esphttpd/html/wifi/140medley.min.js
new file mode 100644
index 0000000..d1495d1
--- /dev/null
+++ b/examples/esphttpd/html/wifi/140medley.min.js
@@ -0,0 +1,2 @@
+var t=function(a,b){return function(c,d){return a.replace(/#{([^}]*)}/g,function(a,f){return Function("x","with(x)return "+f).call(c,d||b||{})})}},s=function(a,b){return b?{get:function(c){return a[c]&&b.parse(a[c])},set:function(c,d){a[c]=b.stringify(d)}}:{}}(this.localStorage||{},JSON),p=function(a,b,c,d){c=c||document;d=c[b="on"+b];a=c[b]=function(e){d=d&&d(e=e||c.event);return(a=a&&b(e))?b:d};c=this},m=function(a,b,c){b=document;c=b.createElement("p");c.innerHTML=a;for(a=b.createDocumentFragment();b=
+c.firstChild;)a.appendChild(b);return a},$=function(a,b){a=a.match(/^(\W)?(.*)/);return(b||document)["getElement"+(a[1]?a[1]=="#"?"ById":"sByClassName":"sByTagName")](a[2])},j=function(a){for(a=0;a<4;a++)try{return a?new ActiveXObject([,"Msxml2","Msxml3","Microsoft"][a]+".XMLHTTP"):new XMLHttpRequest}catch(b){}};
diff --git a/examples/esphttpd/html/wifi/connecting.html b/examples/esphttpd/html/wifi/connecting.html
new file mode 100644
index 0000000..12e3a83
--- /dev/null
+++ b/examples/esphttpd/html/wifi/connecting.html
@@ -0,0 +1,43 @@
+<html><head><title>Connecting...</title>
+<link rel="stylesheet" type="text/css" href="style.css">
+<script type="text/javascript" src="140medley.min.js"></script>
+<script type="text/javascript">
+
+var xhr=j();
+
+
+function getStatus() {
+	xhr.open("GET", "connstatus.cgi");
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			var data=JSON.parse(xhr.responseText);
+			if (data.status=="idle") {
+				$("#status").innerHTML="Preparing to connect...";
+				window.setTimeout(getStatus, 1000);
+			} else if (data.status=="success") {
+				$("#status").innerHTML="Connected! Got IP "+data.ip+". If you're in the same network, you can access it <a href=\"http://"+data.ip+"/\">here</a>.";
+			} else if (data.status=="working") {
+				$("#status").innerHTML="Trying to connect to selected access point...";
+				window.setTimeout(getStatus, 1000);
+			} else if (data.status=="fail") {
+				$("#status").innerHTML="Connection failed. Check password and selected AP.<br /><a href=\"wifi.tpl\">Go Back</a>";
+			}
+		}
+	}
+	xhr.send();
+}
+
+window.onload=function(e) {
+	getStatus();
+};
+</script>
+</head>
+<body>
+<div id="main">
+<h2>Connecting to AP...</h2>
+<p>Status:<br />
+<div id="status">...</div>
+</p>
+</div>
+</body>
+</html>
diff --git a/examples/esphttpd/html/wifi/icons.png b/examples/esphttpd/html/wifi/icons.png
new file mode 100644
index 0000000000000000000000000000000000000000..03109e15a4c83edbec901d41b9e1598d151fcaf4
GIT binary patch
literal 914
zcmV;D18w|?P)<h;3K|Lk000e1NJLTq002M$005u}1^@s6ye(>600006VoOIv0RI60
z0RN!9r;`8x010qNS#tmYE+YT{E+YYWr9XB6000McNliru-V6j3Di2DDcf0@q10P95
zK~#9!?VK@h(?Ar*pOJ@1NRWXcVn9mSQTY~(1&M{BOO`S+GqenyJHnDBLl>mNRH1$c
z1Y$)>B&Hh}0ur-3R7o7$T+XS_x##=+q^hwmZsUL7`}^+RQ$+v(A|_G$$&b$L;~(BA
z7vSV`_TMoxOJpz<%eb=$X`p}IY<Uw^42GGQSz;L%>-9PA1b6eV-ew!$V`euZ*vFlI
zo%aYBjYg#pIv$VRQg1L6IXOty#JTsNIGz_z*2Y7K0Aq~I=kw*4GsT-15jj6i<nQmC
zPaH^LT-L@_ra;R?FF+bZuDfu2ar6D>*VVbnwEVs=<MR07o__(1G1BYxmdE{mKduPa
z3IF~?F2LRU?F-;N*UwLFKP!`GqxIt=>*E`z`>CQ_&u(#D(w!8jllKlOqT2&RL|#8#
zy?+0#IS=rj>rLPM;<%;=Y1f|XOogKopcwAkc)+KRze>6O{N<x0mIz3%E{zNxu5$g!
zexDRzIjq?Sh=8s~fa7*|_aflki=@@-003e@uS43(=f#p*=L9%9v+oa9)fGE46Lc+~
z+ajdRnV{FLwN2&o5F%jf@_5~w7b%y|SqvdSdmf--8{MY>TDQ^h06aibt{-1y@_2uB
zJek@jJCkW9hkHq*5#a5)?sD_nut6ls<LZ;xS9x4T$;@YYJeHCf^8nSKp7MAD6Cuju
zOof$0c|5iVpgi8vbpQYW-G>GVl{Zg=gu`^128lq{0yIbj4*LNra$SP}G)Uk9k$AvP
z3n?BNBx(z=vqH*k8YC<tMBgBR2LzexE-acO@|B^gbK6G1)uoXi-{;G(pvZTIEM8Zg
z<1yG(0rDZfcwKeQ#RF)Nph1Gips4qOEpnd-P#Xa>NVIev0000$*YQ3}3cY6NeJv1r
z&5%7omctF9b#JjT0krNd;sJO-B)Q(009~si-~o6*B)MK&0RDjj9uSEK&>uj503Lt<
z2!H?p0000G9p2adq3<_%?+*xlzk$V2>;ljq5KFF;0tnDh3eX=we*hj3hX>FfKz{%p
o5QhiQA3%Qq9)JJ{fB^Aw4Q_yb2{`v!<NyEw07*qoM6N<$f}RwU!T<mO

literal 0
HcmV?d00001

diff --git a/examples/esphttpd/html/wifi/style.css b/examples/esphttpd/html/wifi/style.css
new file mode 100644
index 0000000..abcfb10
--- /dev/null
+++ b/examples/esphttpd/html/wifi/style.css
@@ -0,0 +1,24 @@
+
+body {
+	background-color: #404040;
+	font-family: sans-serif;
+}
+
+#main {
+	background-color: #d0d0FF;
+	-moz-border-radius: 5px;
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+	border: 2px solid #000000;
+	width: 800px;
+	margin: 0 auto;
+	padding: 20px
+}
+
+.icon {
+	background-image: url("icons.png");
+	background-color: transparent;
+	width: 32px;
+	height: 32px;
+	display: inline-block;
+}
\ No newline at end of file
diff --git a/examples/esphttpd/html/wifi/wifi.tpl b/examples/esphttpd/html/wifi/wifi.tpl
new file mode 100644
index 0000000..e513025
--- /dev/null
+++ b/examples/esphttpd/html/wifi/wifi.tpl
@@ -0,0 +1,94 @@
+<html><head><title>WiFi connection</title>
+<link rel="stylesheet" type="text/css" href="style.css">
+<script type="text/javascript" src="140medley.min.js"></script>
+<script type="text/javascript">
+
+var xhr=j();
+var currAp="%currSsid%";
+
+function createInputForAp(ap) {
+	if (ap.essid=="" && ap.rssi==0) return;
+	var div=document.createElement("div");
+	div.id="apdiv";
+	var rssi=document.createElement("div");
+	var rssiVal=-Math.floor(ap.rssi/51)*32;
+	rssi.className="icon";
+	rssi.style.backgroundPosition="0px "+rssiVal+"px";
+	var encrypt=document.createElement("div");
+	var encVal="-64"; //assume wpa/wpa2
+	if (ap.enc=="0") encVal="0"; //open
+	if (ap.enc=="1") encVal="-32"; //wep
+	encrypt.className="icon";
+	encrypt.style.backgroundPosition="-32px "+encVal+"px";
+	var input=document.createElement("input");
+	input.type="radio";
+	input.name="essid";
+	input.value=ap.essid;
+	if (currAp==ap.essid) input.checked="1";
+	input.id="opt-"+ap.essid;
+	var label=document.createElement("label");
+	label.htmlFor="opt-"+ap.essid;
+	label.textContent=ap.essid;
+	div.appendChild(input);
+	div.appendChild(rssi);
+	div.appendChild(encrypt);
+	div.appendChild(label);
+	return div;
+}
+
+function getSelectedEssid() {
+	var e=document.forms.wifiform.elements;
+	for (var i=0; i<e.length; i++) {
+		if (e[i].type=="radio" && e[i].checked) return e[i].value;
+	}
+	return currAp;
+}
+
+
+function scanAPs() {
+	xhr.open("GET", "wifiscan.cgi");
+	xhr.onreadystatechange=function() {
+		if (xhr.readyState==4 && xhr.status>=200 && xhr.status<300) {
+			var data=JSON.parse(xhr.responseText);
+			currAp=getSelectedEssid();
+			if (data.result.inProgress=="0" && data.result.APs.length>1) {
+				$("#aps").innerHTML="";
+				for (var i=0; i<data.result.APs.length; i++) {
+					if (data.result.APs[i].essid=="" && data.result.APs[i].rssi==0) continue;
+					$("#aps").appendChild(createInputForAp(data.result.APs[i]));
+				}
+				window.setTimeout(scanAPs, 20000);
+			} else {
+				window.setTimeout(scanAPs, 1000);
+			}
+		}
+	}
+	xhr.send();
+}
+
+
+window.onload=function(e) {
+	scanAPs();
+};
+</script>
+</head>
+<body>
+<div id="main">
+<p>
+Current WiFi mode: %WiFiMode%
+</p>
+<p>
+Note: %WiFiapwarn%
+</p>
+<form name="wifiform" action="connect.cgi" method="post">
+<p>
+To connect to a WiFi network, please select one of the detected networks...<br>
+<div id="aps">Scanning...</div>
+<br>
+WiFi password, if applicable: <br />
+<input type="text" name="passwd" val="%WiFiPasswd%"> <br />
+<input type="submit" name="connect" value="Connect!">
+</p>
+</div>
+</body>
+</html>
diff --git a/examples/esphttpd/io.c b/examples/esphttpd/io.c
new file mode 100644
index 0000000..c104b9c
--- /dev/null
+++ b/examples/esphttpd/io.c
@@ -0,0 +1,72 @@
+
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * Jeroen Domburg <jeroen@spritesmods.com> wrote this file. As long as you retain 
+ * this notice you can do whatever you want with this stuff. If we meet some day, 
+ * and you think this stuff is worth it, you can buy me a beer in return. 
+ * ----------------------------------------------------------------------------
+ */
+
+
+#include <espressif/esp_common.h>
+//#include <c_types.h>
+#include <etstimer.h>
+#include <espressif/esp_system.h>
+#include <espressif/esp_timer.h>
+#include <espressif/esp_wifi.h>
+#include <espressif/esp_sta.h>
+#include <espressif/esp_misc.h>
+#include <espressif/osapi.h>
+
+#include <espressif/esp8266/eagle_soc.h>
+#include <espressif/esp8266/gpio_register.h>
+#include <espressif/esp8266/pin_mux_register.h>
+
+#define LEDGPIO 2
+#define BTNGPIO 0
+
+#ifndef ESP32
+static ETSTimer resetBtntimer;
+#endif
+
+void ioLed(int ena) {
+#ifndef ESP32
+	//gpio_output_set is overkill. ToDo: use better mactos
+	if (ena) {
+		sdk_gpio_output_set((1<<LEDGPIO), 0, (1<<LEDGPIO), 0);
+	} else {
+		sdk_gpio_output_set(0, (1<<LEDGPIO), (1<<LEDGPIO), 0);
+	}
+#endif
+}
+
+#ifndef ESP32
+static void resetBtnTimerCb(void *arg) {
+	static int resetCnt=0;
+	if ((GPIO_REG_READ(GPIO_IN_ADDRESS)&(1<<BTNGPIO))==0) {
+		resetCnt++;
+	} else {
+		if (resetCnt>=6) { //3 sec pressed
+			sdk_wifi_station_disconnect();
+			sdk_wifi_set_opmode(STATIONAP_MODE); //reset to AP+STA mode
+			printf("Reset to AP mode. Restarting system...\n");
+			sdk_system_restart();
+		}
+		resetCnt=0;
+	}
+}
+#endif
+
+
+void ioInit() {
+#ifndef ESP32
+	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
+	PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
+	sdk_gpio_output_set(0, 0, (1<<LEDGPIO), (1<<BTNGPIO));
+	sdk_os_timer_disarm(&resetBtntimer);
+	sdk_os_timer_setfn(&resetBtntimer, resetBtnTimerCb, NULL);
+	sdk_os_timer_arm(&resetBtntimer, 500, 1);
+#endif
+}
+
diff --git a/examples/esphttpd/io.h b/examples/esphttpd/io.h
new file mode 100644
index 0000000..42af106
--- /dev/null
+++ b/examples/esphttpd/io.h
@@ -0,0 +1,7 @@
+#ifndef IO_H
+#define IO_H
+
+void ICACHE_FLASH_ATTR ioLed(int ena);
+void ioInit(void);
+
+#endif
\ No newline at end of file
diff --git a/examples/esphttpd/user_main.c b/examples/esphttpd/user_main.c
new file mode 100644
index 0000000..94e4fd4
--- /dev/null
+++ b/examples/esphttpd/user_main.c
@@ -0,0 +1,210 @@
+/*
+ * ----------------------------------------------------------------------------
+ * "THE BEER-WARE LICENSE" (Revision 42):
+ * Jeroen Domburg <jeroen@spritesmods.com> wrote this file. As long as you retain 
+ * this notice you can do whatever you want with this stuff. If we meet some day, 
+ * and you think this stuff is worth it, you can buy me a beer in return. 
+ * ----------------------------------------------------------------------------
+ */
+
+/*
+This is example code for the esphttpd library. It's a small-ish demo showing off 
+the server, including WiFi connection management capabilities, some IO and
+some pictures of cats.
+*/
+
+#include <string.h>
+#include <stdio.h>
+
+#include <espressif/esp_common.h>
+#include <etstimer.h>
+#include <libesphttpd/httpd.h>
+#include <libesphttpd/httpdespfs.h>
+#include <libesphttpd/cgiwifi.h>
+#include <libesphttpd/cgiflash.h>
+#include <libesphttpd/auth.h>
+#include <libesphttpd/espfs.h>
+#include <libesphttpd/captdns.h>
+#include <libesphttpd/webpages-espfs.h>
+#include <libesphttpd/cgiwebsocket.h>
+#include <dhcpserver.h>
+
+#include <FreeRTOS.h>
+#include <task.h>
+#include <semphr.h>
+#include <queue.h>
+#include <esp/uart.h>
+
+#include "io.h"
+#include "cgi.h"
+#include "cgi-test.h"
+
+#define AP_SSID "esp-open-rtos AP"
+#define AP_PSK "esp-open-rtos"
+
+//Function that tells the authentication system what users/passwords live on the system.
+//This is disabled in the default build; if you want to try it, enable the authBasic line in
+//the builtInUrls below.
+int myPassFn(HttpdConnData *connData, int no, char *user, int userLen, char *pass, int passLen) {
+	if (no==0) {
+		strcpy(user, "admin");
+		strcpy(pass, "s3cr3t");
+		return 1;
+//Add more users this way. Check against incrementing no for each user added.
+//	} else if (no==1) {
+//		strcpy(user, "user1");
+//		strcpy(pass, "something");
+//		return 1;
+	}
+	return 0;
+}
+
+
+static ETSTimer websockTimer;
+
+//Broadcast the uptime in seconds every second over connected websockets
+static void websocketBcast(void *arg) {
+	static int ctr=0;
+	char buff[128];
+	while(1) {
+		ctr++;
+		sprintf(buff, "Up for %d minutes %d seconds!\n", ctr/60, ctr%60);
+		cgiWebsockBroadcast("/websocket/ws.cgi", buff, strlen(buff), WEBSOCK_FLAG_NONE);
+		vTaskDelay(1000/portTICK_PERIOD_MS);
+	}
+}
+
+//On reception of a message, send "You sent: " plus whatever the other side sent
+static void myWebsocketRecv(Websock *ws, char *data, int len, int flags) {
+	int i;
+	char buff[128];
+	sprintf(buff, "You sent: ");
+	for (i=0; i<len; i++) buff[i+10]=data[i];
+	buff[i+10]=0;
+	cgiWebsocketSend(ws, buff, strlen(buff), WEBSOCK_FLAG_NONE);
+}
+
+//Websocket connected. Install reception handler and send welcome message.
+static void myWebsocketConnect(Websock *ws) {
+	ws->recvCb=myWebsocketRecv;
+	cgiWebsocketSend(ws, "Hi, Websocket!", 14, WEBSOCK_FLAG_NONE);
+}
+
+//On reception of a message, echo it back verbatim
+void myEchoWebsocketRecv(Websock *ws, char *data, int len, int flags) {
+	printf("EchoWs: echo, len=%d\n", len);
+	cgiWebsocketSend(ws, data, len, flags);
+}
+
+//Echo websocket connected. Install reception handler.
+void myEchoWebsocketConnect(Websock *ws) {
+	printf("EchoWs: connect\n");
+	ws->recvCb=myEchoWebsocketRecv;
+}
+
+CgiUploadFlashDef uploadParams={
+	.type=CGIFLASH_TYPE_FW,
+	.fw1Pos=0x2000,
+	.fw2Pos=((FLASH_SIZE*1024*1024)/2)+0x2000,
+	.fwSize=((FLASH_SIZE*1024*1024)/2)-0x2000,
+	.tagName=LIBESPHTTPD_OTA_TAGNAME
+};
+
+
+/*
+This is the main url->function dispatching data struct.
+In short, it's a struct with various URLs plus their handlers. The handlers can
+be 'standard' CGI functions you wrote, or 'special' CGIs requiring an argument.
+They can also be auth-functions. An asterisk will match any url starting with
+everything before the asterisks; "*" matches everything. The list will be
+handled top-down, so make sure to put more specific rules above the more
+general ones. Authorization things (like authBasic) act as a 'barrier' and
+should be placed above the URLs they protect.
+*/
+HttpdBuiltInUrl builtInUrls[]={
+	{"*", cgiRedirectApClientToHostname, "esp8266.nonet"},
+	{"/", cgiRedirect, "/index.tpl"},
+	{"/led.tpl", cgiEspFsTemplate, tplLed},
+	{"/index.tpl", cgiEspFsTemplate, tplCounter},
+	{"/led.cgi", cgiLed, NULL},
+#ifndef ESP32
+	{"/flash/", cgiRedirect, "/flash/index.html"},
+	{"/flash/next", cgiGetFirmwareNext, &uploadParams},
+	{"/flash/upload", cgiUploadFirmware, &uploadParams},
+	{"/flash/reboot", cgiRebootFirmware, NULL},
+#endif
+	//Routines to make the /wifi URL and everything beneath it work.
+
+//Enable the line below to protect the WiFi configuration with an username/password combo.
+//	{"/wifi/*", authBasic, myPassFn},
+
+	{"/wifi", cgiRedirect, "/wifi/wifi.tpl"},
+	{"/wifi/", cgiRedirect, "/wifi/wifi.tpl"},
+	{"/wifi/wifiscan.cgi", cgiWiFiScan, NULL},
+	{"/wifi/wifi.tpl", cgiEspFsTemplate, tplWlan},
+	{"/wifi/connect.cgi", cgiWiFiConnect, NULL},
+	{"/wifi/connstatus.cgi", cgiWiFiConnStatus, NULL},
+	{"/wifi/setmode.cgi", cgiWiFiSetMode, NULL},
+
+	{"/websocket/ws.cgi", cgiWebsocket, myWebsocketConnect},
+	{"/websocket/echo.cgi", cgiWebsocket, myEchoWebsocketConnect},
+
+	{"/test", cgiRedirect, "/test/index.html"},
+	{"/test/", cgiRedirect, "/test/index.html"},
+	{"/test/test.cgi", cgiTestbed, NULL},
+
+	{"*", cgiEspFsHook, NULL}, //Catch-all cgi function for the filesystem
+	{NULL, NULL, NULL}
+};
+
+void wifiInit() {
+    struct ip_info ap_ip;
+    uint8_t sdk_wifi_get_opmode();
+    switch(sdk_wifi_get_opmode()) {
+        case STATIONAP_MODE:
+        case SOFTAP_MODE:
+            IP4_ADDR(&ap_ip.ip, 172, 16, 0, 1);
+            IP4_ADDR(&ap_ip.gw, 0, 0, 0, 0);
+            IP4_ADDR(&ap_ip.netmask, 255, 255, 0, 0);
+            sdk_wifi_set_ip_info(1, &ap_ip);
+
+            struct sdk_softap_config ap_config = {
+                .ssid = AP_SSID,
+                .ssid_hidden = 0,
+                .channel = 3,
+                .ssid_len = strlen(AP_SSID),
+                .authmode = AUTH_WPA_WPA2_PSK,
+                .password = AP_PSK,
+                .max_connection = 3,
+                .beacon_interval = 100,
+            };
+            sdk_wifi_softap_set_config(&ap_config);
+
+            ip_addr_t first_client_ip;
+            IP4_ADDR(&first_client_ip, 172, 16, 0, 2);
+            dhcpserver_start(&first_client_ip, 4);
+            dhcpserver_set_dns(&ap_ip.ip);
+            dhcpserver_set_router(&ap_ip.ip);
+            break;
+        case STATION_MODE:
+            break;
+        default:
+            break;
+    }
+}
+
+//Main routine. Initialize stdout, the I/O, filesystem and the webserver and we're done.
+void user_init(void) {
+    uart_set_baud(0, 115200);
+
+	wifiInit();
+	ioInit();
+	captdnsInit();
+
+	espFsInit((void*)(_binary_build_web_espfs_bin_start));
+	httpdInit(builtInUrls, 80);
+
+	xTaskCreate(websocketBcast, "wsbcast", 300, NULL, 3, NULL);
+
+	printf("\nReady\n");
+}
diff --git a/extras/libesphttpd/component.mk b/extras/libesphttpd/component.mk
new file mode 100644
index 0000000..22e433e
--- /dev/null
+++ b/extras/libesphttpd/component.mk
@@ -0,0 +1,64 @@
+# Component makefile for extras/libesphttpd
+
+INC_DIRS += $(libesphttpd_ROOT)/libesphttpd/include $(libesphttpd_ROOT)/libesphttpd/espfs $(libesphttpd_ROOT)/libesphttpd/lib/heatshrink
+
+LIBESPHTTPD_MAX_CONNECTIONS ?= 4
+LIBESPHTTPD_STACKSIZE ?= 2048
+LIBESPHTTPD_OTA_TAGNAME ?= generic
+
+RBOOT_OTA ?= 1
+ESP_IP ?= 192.168.4.1
+
+# args for passing into compile rule generation
+libesphttpd_SRC_DIR = $(libesphttpd_ROOT)/libesphttpd/core $(libesphttpd_ROOT)/libesphttpd/espfs $(libesphttpd_ROOT)/libesphttpd/util
+libesphttpd_CFLAGS += -DFREERTOS -DUSE_OPEN_SDK -DHTTPD_MAX_CONNECTIONS=$(LIBESPHTTPD_MAX_CONNECTIONS) -DHTTPD_STACKSIZE=$(LIBESPHTTPD_STACKSIZE) -DESPFS_HEATSHRINK -D__ets__ -DRBOOT_OTA=1 -std=gnu99
+
+$(eval $(call component_compile_rules,libesphttpd))
+
+rwildcard = $(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
+
+LIBESPHTTPD_MKESPFSIMAGE_DIR = $(BUILD_DIR)mkespfsimage
+
+LIBESPHTTPD_MKESPFS = $(LIBESPHTTPD_MKESPFSIMAGE_DIR)/mkespfsimage
+LIBESPHTTPD_HTML_DIR = html
+LIBESPHTTPD_HTML_FILES = $(call rwildcard,$(LIBESPHTTPD_HTML_DIR),*)
+LIBESPHTTPD_HTML_TINY_DIR = $(BUILD_DIR)html
+LIBESPHTTPD_HTML_ESPFS = $(BUILD_DIR)web.espfs.bin
+LIBESPHTTPD_HTML_ESPFS_PATH = $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_HTML_ESPFS)
+LIBESPHTTPD_HTML_ESPFS_OBJ = $(BUILD_DIR)web.espfs.o
+
+CROSS_BINARY_ARCH ?= xtensa
+CROSS_OUTPUT_TARGET ?= elf32-xtensa-le
+
+LIBESPHTTPD_HTML_TINY ?= no
+
+CURL = curl
+LIBESPHTTPD_CURL_OPTS = --connect-timeout 3 --max-time 60 -s
+
+$(LIBESPHTTPD_MKESPFSIMAGE_DIR):
+	$(Q)mkdir -p $(LIBESPHTTPD_MKESPFSIMAGE_DIR)
+
+$(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS): $(LIBESPHTTPD_MKESPFSIMAGE_DIR)
+	make -C $(libesphttpd_ROOT)/libesphttpd/espfs/mkespfsimage CC=gcc GZIP_COMPRESSION=yes USE_HEATSHRINK=yes BUILD_DIR=$(PROGRAM_REAL_ROOT)/$(BUILD_DIR)
+
+$(LIBESPHTTPD_HTML_ESPFS): $(PROGRAM_REAL_ROOT)/$(LIBESPHTTPD_MKESPFS) $(LIBESPHTTPD_HTML_FILES)
+	cd $(LIBESPHTTPD_HTML_DIR) && find . | $< > $(LIBESPHTTPD_HTML_ESPFS_PATH) || rm -f $(LIBESPHTTPD_HTML_ESPFS_PATH)
+
+$(LIBESPHTTPD_HTML_ESPFS_OBJ): $(LIBESPHTTPD_HTML_ESPFS)
+	$(Q)$(OBJCOPY) -I binary -O $(CROSS_OUTPUT_TARGET) -B $(CROSS_BINARY_ARCH) --rename-section .data=.irom.espfs $^ $@
+
+$(BUILD_DIR)libesphttpd.a: $(LIBESPHTTPD_HTML_ESPFS_OBJ)
+
+htmlfs: $(LIBESPHTTPD_HTML_ESPFS_OBJ)
+
+$(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg:
+	make -C $(libesphttpd_ROOT)/libesphttpd/mkupgimg CC=gcc RBOOT_OTA=$(RBOOT_OTA)
+
+$(FIRMWARE_DIR)ota_$(PROGRAM).bin: $(FW_FILE) $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg
+	$(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg $(FW_FILE) "$(LIBESPHTTPD_OTA_TAGNAME)" $(FIRMWARE_DIR)ota_$(PROGRAM).bin
+
+ota: $(FIRMWARE_DIR)ota_$(PROGRAM).bin $(libesphttpd_ROOT)/libesphttpd/mkupgimg/mkupgimg
+
+webflash: $(FIRMWARE_DIR)ota_$(PROGRAM).bin
+	$(CURL) $(LIBESPHTTPD_CURL_OPTS) --data-binary "@$(FIRMWARE_DIR)ota_$(PROGRAM).bin" http://$(ESP_IP)/flash/upload && $(CURL) $(LIBESPHTTPD_CURL_OPTS) http://$(ESP_IP)/flash/reboot
+
diff --git a/extras/libesphttpd/libesphttpd b/extras/libesphttpd/libesphttpd
new file mode 160000
index 0000000..c329aee
--- /dev/null
+++ b/extras/libesphttpd/libesphttpd
@@ -0,0 +1 @@
+Subproject commit c329aeef0469a40152e1630dbd0f0b34bcebd4d5