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.h@117:a725e5ad4fad, 2019-01-26 (annotated)
- 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?
User | Revision | Line number | New 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 |