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

Committer:
andrewboyson
Date:
Sat Jan 26 15:44:59 2019 +0000
Revision:
117:a725e5ad4fad
Parent:
110:67c96c143c2a
Child:
118:067cb5bce7e3
Found bug in function which retrieves the 'If-Last-Modified' line: the lastModified pointer is not initialised so could point anywhere if no line. Although checked for NULL it is not checked for other random values. Initialised to NULL.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
andrewboyson 61:aad055f1b0d1 1 #include <stdbool.h>
andrewboyson 61:aad055f1b0d1 2 #include <stdarg.h>
andrewboyson 61:aad055f1b0d1 3 #include <stdint.h>
andrewboyson 61:aad055f1b0d1 4
andrewboyson 96:43eb7a110f1a 5 extern void HttpAddChar (char c);
andrewboyson 96:43eb7a110f1a 6 extern void HttpFillChar (char c, int length);
andrewboyson 96:43eb7a110f1a 7 extern int HttpAddText (const char* text);
andrewboyson 96:43eb7a110f1a 8 extern int HttpAddV (char *fmt, va_list argptr);
andrewboyson 96:43eb7a110f1a 9 extern int HttpAddF (char *fmt, ...);
andrewboyson 96:43eb7a110f1a 10 extern void HttpAddData (const char* data, int length);
andrewboyson 96:43eb7a110f1a 11 extern void HttpAddStream (void (*startFunction)(void), int (*enumerateFunction)(void));
andrewboyson 96:43eb7a110f1a 12 extern void HttpAddNibbleAsHex(int value);
andrewboyson 96:43eb7a110f1a 13 extern void HttpAddInt12AsHex (int value);
andrewboyson 96:43eb7a110f1a 14 extern void HttpAddInt16AsHex (int value);
andrewboyson 54:84ef2b29cf7e 15
andrewboyson 117:a725e5ad4fad 16 extern void HttpRequestRead (char *p, int len, char** ppMethod, char** ppPath, char** ppQuery, char** ppLastModified);
andrewboyson 110:67c96c143c2a 17
andrewboyson 110:67c96c143c2a 18 extern char* HttpQuerySplit (char* pQuery, char** ppName, char** ppValue);
andrewboyson 110:67c96c143c2a 19 extern void HttpQueryUnencode(char* pValue);
andrewboyson 54:84ef2b29cf7e 20
andrewboyson 54:84ef2b29cf7e 21 extern int (*HttpRequestFunction)(char *pPath, char* pLastModified, char *pQuery);
andrewboyson 54:84ef2b29cf7e 22 extern void (*HttpReplyFunction)(int todo);
andrewboyson 54:84ef2b29cf7e 23
andrewboyson 54:84ef2b29cf7e 24 extern bool HttpTrace;
andrewboyson 79:f50e02fb5c94 25 extern void HttpHandleRequest(int size, char* pRequestStream, uint32_t positionInRequestStream, int* pToDo);
andrewboyson 79:f50e02fb5c94 26 extern void HttpSendReply (int* pSize, char* pReplyStream, uint32_t positionInReplyStream, uint16_t mss, int todo);
andrewboyson 54:84ef2b29cf7e 27
andrewboyson 54:84ef2b29cf7e 28 extern void HttpDateFromDateTime(const char* date, const char *ptime, char* ptext);
andrewboyson 54:84ef2b29cf7e 29 extern void HttpDateFromNow(char* pText);
andrewboyson 54:84ef2b29cf7e 30
andrewboyson 109:bca6ebe63e32 31 extern bool HttpSameStr (const char* pa, const char* pb);
andrewboyson 109:bca6ebe63e32 32 extern bool HttpSameDate(const char* date, const char* time, const char* pOtherDate);
andrewboyson 109:bca6ebe63e32 33
andrewboyson 54:84ef2b29cf7e 34 #define HTTP_DATE_LENGTH 30
andrewboyson 54:84ef2b29cf7e 35