Common stuff for all my devices' web server pages: css, login, log, ipv4, ipv6, firmware update, clock, reset info etc.

Dependents:   oldheating gps motorhome heating

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers http.h Source File

http.h

00001 #include <stdbool.h>
00002 #include <stdarg.h>
00003 #include <stdint.h>
00004 #include <time.h>
00005 
00006 #define HTTP_WAIT                    0
00007 #define HTTP_FINISHED                1
00008 #define HTTP_HAVE_SOMETHING_TO_SEND  2
00009 
00010 extern void   HttpReset   (int connectionId);
00011 extern bool   HttpAdd     (int connectionId,                      int* pWindowSize, char* pWindow, uint32_t windowPositionInStream); //returns true if finished; false if not
00012 extern int    HttpPoll    (int connectionId, bool clientFinished);  //returns true if something to send; false if not
00013 extern void   HttpRequest (int connectionId,                      int   windowSize, char* pWindow, uint32_t windowPositionInStream);
00014 
00015 extern bool   HttpGetTrace(void);
00016 
00017 extern void   HttpAddStart        (uint32_t position, int mss, char *pData);
00018 extern int    HttpAddLength       (void);
00019 extern bool   HttpAddFilled       (void);
00020 
00021 extern void   HttpAddChar         (char c);
00022 extern void   HttpAddFillChar     (char c, int length);
00023 extern int    HttpAddText         (const char* text);
00024 extern int    HttpAddTextN        (const char* text, int length);
00025 extern int    HttpAddV            (char *fmt, va_list argptr);
00026 extern int    HttpAddF            (char *fmt, ...);
00027 extern void   HttpAddData         (const char* data, int length);
00028 extern void   HttpAddStream       (void (*startFunction)(void), int (*enumerateFunction)(void));
00029 extern void   HttpAddNibbleAsHex  (int value);
00030 extern void   HttpAddByteAsHex    (int value);
00031 extern void   HttpAddInt12AsHex   (int value);
00032 extern void   HttpAddInt16AsHex   (int value);
00033 extern void   HttpAddInt32AsHex   (int value);
00034 extern void   HttpAddInt64AsHex   (int64_t value);
00035 extern void   HttpAddBytesAsHex   (const uint8_t* value, int size);
00036 extern void   HttpAddBytesAsHexRev(const uint8_t* value, int size);
00037 extern void   HttpAddTm           (struct tm* ptm);
00038 
00039 extern void   HttpOk(const char* contentType, const char* cacheControl, const char* lastModifiedDate, const char* lastModifiedTime);
00040 extern char*  HttpOkCookieName;
00041 extern char*  HttpOkCookieValue;
00042 extern int    HttpOkCookieMaxAge;
00043 
00044 extern void   HttpNotFound        (void);
00045 extern void   HttpNotModified     (void);
00046 
00047 extern int    HttpRequestRead(char *p, int len, char** ppMethod, char** ppPath, char** ppQuery, char** ppLastModified, char** ppCookies, int* pContentLength);
00048 
00049 extern char*  HttpCookiesSplit      (char* pCookies, char** ppName, char** ppValue);
00050 extern char*  HttpQuerySplit        (char* pQuery,   char** ppName, char** ppValue);
00051 extern int    HttpQueryValueAsInt   (char* pValue);
00052 extern double HttpQueryValueAsDouble(char* pValue);
00053 extern void   HttpQueryUnencode     (char* pValue);
00054 
00055 extern void   HttpDateFromDateTime(const char* date, const char *ptime, char* ptext);
00056 extern void   HttpDateFromNow(char* pText);
00057 
00058 extern bool HttpSameStr               (const char* pa,   const char* pb);
00059 extern bool HttpSameStrCaseInsensitive(const char* pa,   const char* pb);
00060 extern bool HttpSameDate              (const char* date, const char* time, const char* pOtherDate);
00061 
00062 #define HTTP_DATE_LENGTH 30
00063