Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: oldheating gps motorhome heating
base/web-server-base.c
- Committer:
- andrewboyson
- Date:
- 2020-03-11
- Revision:
- 132:5b2df69a4f17
- Parent:
- 120:85a4d8f7517d
- Child:
- 147:ea6f647725a1
File content as of revision 132:5b2df69a4f17:
#include "http.h"
#include "web.h"
#include "web-pages-base.h"
#define DO_FAVICON DO_BASE + 1
#define DO_BASE_CSS DO_BASE + 2
#define DO_NAV_CSS DO_BASE + 3
#define DO_CLOCK_HTML DO_BASE + 4
#define DO_CLOCK_AJAX DO_BASE + 5
#define DO_CLOCK_SCRIPT DO_BASE + 6
#define DO_NET_HTML DO_BASE + 7
#define DO_NET_AJAX DO_BASE + 8
#define DO_NET_SCRIPT DO_BASE + 9
#define DO_NET4_HTML DO_BASE + 10
#define DO_NET4_AJAX DO_BASE + 11
#define DO_NET4_SCRIPT DO_BASE + 12
#define DO_NET6_HTML DO_BASE + 13
#define DO_NET6_AJAX DO_BASE + 14
#define DO_NET6_SCRIPT DO_BASE + 15
#define DO_TRACE_HTML DO_BASE + 16
#define DO_TRACE_AJAX DO_BASE + 17
#define DO_TRACE_SCRIPT DO_BASE + 18
#define DO_LOG_HTML DO_BASE + 19
#define DO_RESET_HTML DO_BASE + 20
#define DO_FIRMWARE_HTML DO_BASE + 21
#define DO_FIRMWARE_AJAX DO_BASE + 22
#define DO_FIRMWARE_SCRIPT DO_BASE + 23
int WebServerBaseDecideWhatToDo(char *pPath, char* pLastModified)
{
if (HttpSameStr(pPath, "/clock" )) return DO_CLOCK_HTML;
if (HttpSameStr(pPath, "/clock-ajax" )) return DO_CLOCK_AJAX;
if (HttpSameStr(pPath, "/net" )) return DO_NET_HTML;
if (HttpSameStr(pPath, "/net-ajax" )) return DO_NET_AJAX;
if (HttpSameStr(pPath, "/net4" )) return DO_NET4_HTML;
if (HttpSameStr(pPath, "/net4-ajax" )) return DO_NET4_AJAX;
if (HttpSameStr(pPath, "/net6" )) return DO_NET6_HTML;
if (HttpSameStr(pPath, "/net6-ajax" )) return DO_NET6_AJAX;
if (HttpSameStr(pPath, "/log" )) return DO_LOG_HTML;
if (HttpSameStr(pPath, "/trace" )) return DO_TRACE_HTML;
if (HttpSameStr(pPath, "/trace-ajax" )) return DO_TRACE_AJAX;
if (HttpSameStr(pPath, "/reset" )) return DO_RESET_HTML;
if (HttpSameStr(pPath, "/firmware" )) return DO_FIRMWARE_HTML;
if (HttpSameStr(pPath, "/firmware-ajax")) return DO_FIRMWARE_AJAX;
if (HttpSameStr(pPath, "/favicon.ico" )) return HttpSameDate(WebFaviconDate, WebFaviconTime, pLastModified) ? DO_NOT_MODIFIED : DO_FAVICON;
if (HttpSameStr(pPath, "/base.css" )) return HttpSameDate(WebBaseCssDate, WebBaseCssTime, pLastModified) ? DO_NOT_MODIFIED : DO_BASE_CSS;
if (HttpSameStr(pPath, "/settings.css" )) return HttpSameDate(WebNavCssDate, WebNavCssTime, pLastModified) ? DO_NOT_MODIFIED : DO_NAV_CSS;
if (HttpSameStr(pPath, "/net.js" )) return HttpSameDate(WebNetScriptDate, WebNetScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_NET_SCRIPT;
if (HttpSameStr(pPath, "/net4.js" )) return HttpSameDate(WebNet4ScriptDate, WebNet4ScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_NET4_SCRIPT;
if (HttpSameStr(pPath, "/net6.js" )) return HttpSameDate(WebNet6ScriptDate, WebNet6ScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_NET6_SCRIPT;
if (HttpSameStr(pPath, "/trace.js" )) return HttpSameDate(WebTraceScriptDate, WebTraceScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_TRACE_SCRIPT;
if (HttpSameStr(pPath, "/clock.js" )) return HttpSameDate(WebClockScriptDate, WebClockScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_CLOCK_SCRIPT;
if (HttpSameStr(pPath, "/firmware.js" )) return HttpSameDate(WebFirmwareScriptDate, WebFirmwareScriptTime, pLastModified) ? DO_NOT_MODIFIED : DO_FIRMWARE_SCRIPT;
return DO_NOT_FOUND;
}
bool WebServerBaseHandleQuery(int todo, char* pQuery)
{
switch (todo)
{
case DO_TRACE_AJAX: WebTraceQuery (pQuery); return true;
case DO_CLOCK_AJAX: WebClockQuery (pQuery); return true;
case DO_CLOCK_HTML: WebClockQuery (pQuery); return true;
case DO_LOG_HTML: WebLogQuery (pQuery); return true;
case DO_RESET_HTML: WebResetQuery (pQuery); return true;
case DO_FIRMWARE_HTML: WebFirmwareQuery(pQuery); return true;
case DO_FIRMWARE_AJAX: WebFirmwareQuery(pQuery); return true;
}
return false;
}
bool WebServerBasePost(int todo, int contentLength, int contentStart, int size, char* pRequestStream, uint32_t positionInRequestStream, bool* pComplete)
{
switch (todo)
{
case DO_FIRMWARE_AJAX: WebFirmwarePost(contentLength, contentStart, size, pRequestStream, positionInRequestStream, pComplete); return true;
}
return false;
}
bool WebServerBaseReply(int todo)
{
switch (todo)
{
case DO_FAVICON: WebFavicon (); return true;
case DO_BASE_CSS: WebBaseCss (); return true;
case DO_NAV_CSS: WebNavCss (); return true;
case DO_TRACE_HTML: WebTraceHtml (); return true;
case DO_TRACE_AJAX: WebTraceAjax (); return true;
case DO_TRACE_SCRIPT: WebTraceScript (); return true;
case DO_CLOCK_HTML: WebClockHtml (); return true;
case DO_CLOCK_AJAX: WebClockAjax (); return true;
case DO_CLOCK_SCRIPT: WebClockScript (); return true;
case DO_NET_HTML: WebNetHtml (); return true;
case DO_NET_AJAX: WebNetAjax (); return true;
case DO_NET_SCRIPT: WebNetScript (); return true;
case DO_NET4_HTML: WebNet4Html (); return true;
case DO_NET4_AJAX: WebNet4Ajax (); return true;
case DO_NET4_SCRIPT: WebNet4Script (); return true;
case DO_NET6_HTML: WebNet6Html (); return true;
case DO_NET6_AJAX: WebNet6Ajax (); return true;
case DO_NET6_SCRIPT: WebNet6Script (); return true;
case DO_LOG_HTML: WebLogHtml (); return true;
case DO_RESET_HTML: WebResetHtml (); return true;
case DO_FIRMWARE_HTML: WebFirmwareHtml (); return true;
case DO_FIRMWARE_AJAX: WebFirmwareAjax (); return true;
case DO_FIRMWARE_SCRIPT: WebFirmwareScript(); return true;
}
return false;
}