void showPage(char* filename, unsigned filenameLen) { printf("Request file: %s (%u)\n", filename, filenameLen); // CONTENT char* html = 0; unsigned html_len; char* contentType; if (memcmp(filename,"/",filenameLen)==0) { // index page char data[] = "<html><head><title>Testseite</title></head><body><h1>Testseite</h1><p>Hier steht Text</p><a href='speedtest.bin'>Lade große Datenmenge für Speedtest</a></body></html>"; html_len = sizeof(data)-1; html = data; contentType = "text/html; charset=utf-8;"; } else if (memcmp(filename,"/speedtest.bin",filenameLen)==0) { // speedtest file html_len = 1024*1024*10; // 10 MB contentType = "application/octet-stream"; } else { // not found html_len = 0; } // HEADER unsigned remainingLength = 1024; char output[remainingLength]; char* pout = output; bool ok = true; if (!html_len) ok &= addErrorResponseHeader(pout, remainingLength); else ok &= addResponseHeader(pout, remainingLength, html_len); ok &= addContentLanguageHeader(pout, remainingLength); ok &= addConnectionClose(pout, remainingLength); if (html_len) ok &= addContentType(pout, remainingLength, contentType); ok &= closeHeader(pout, remainingLength); if (!ok) { while(socket.close() == false); return; } if (html) { // html memcpy(pout, html, html_len); } printf("Send %u bytes. Is 404? %u\n", pout-output+html_len, html_len==0); socket.write(output, pout-output+html_len); while(socket.close() == false); }
virtual void generateResponseHeader() { addResponseHeader("X-MyHeader", "header3"); addResponseHeader("X-MyHeader", "header4"); addResponseHeader("Transport-Encoding", "somebits"); }