A stack which works with or without an Mbed os library. Provides IPv4 or IPv6 with a full 1500 byte buffer.
Dependents: oldheating gps motorhome heating
tcp/http/http.c
- Committer:
- andrewboyson
- Date:
- 2019-05-08
- Revision:
- 142:a8c0890a58d1
- Parent:
- 131:774f7f367031
- Child:
- 144:6bd5c54efc7d
File content as of revision 142:a8c0890a58d1:
#include <stdbool.h> #include "http.h" #include "tcpbuf.h" #include "action.h" #include "net.h" #include "log.h" #include "led.h" #include "restart.h" bool HttpTrace = false; //Plumb into these from your html server void (*HttpRequestFunction)(int size, char* pRequestStream, uint32_t positionInRequestStream, int* pToDo, bool* pPostComplete, uint32_t* pDelayUntil); void (*HttpReplyFunction )(int todo); void HttpHandleRequest(int size, char* pRequestStream, uint32_t positionInRequestStream, int* pToDo, bool* pPostComplete, uint32_t* pDelayUntil) { int lastRestartPoint = RestartPoint; RestartPoint = FAULT_POINT_HttpHandleRequest; if (HttpTrace) { LogF("HTTP <<< %d (%u)\r\n", size, positionInRequestStream); } HttpRequestFunction(size, pRequestStream, positionInRequestStream, pToDo, pPostComplete, pDelayUntil); RestartPoint = lastRestartPoint; } void HttpSendReply(int* pSize, char* pReplyStream, uint32_t positionInReplyStream, uint16_t mss, int todo) { TcpBufStart(positionInReplyStream, mss, pReplyStream); HttpReplyFunction(todo); *pSize = TcpBufLength(); if (HttpTrace) { LogF("HTTP >>> %d (%d)\r\n", *pSize, positionInReplyStream); } }