X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=server%2Ffastcgi.h;h=09884d1a729aca863937c3be224eac3ece208a20;hb=HEAD;hp=5826ece3a52c7d173f7c9df7adda91fd1ddeee0f;hpb=8c5bba9863ed029b83766d8b4de1195aa38b1f5d;p=matches%2FMCTX3420.git diff --git a/server/fastcgi.h b/server/fastcgi.h index 5826ece..09884d1 100644 --- a/server/fastcgi.h +++ b/server/fastcgi.h @@ -35,12 +35,20 @@ typedef enum StatusCodes { #define CONTROL_KEY_BUFSIZ 41 +/** + * An entry that describes an expected user parameter for parsing. + * To be used in conjunction with @see FCGI_ParseRequest. + */ typedef struct FCGIValue { + /** The name of the key (from key/value pair) [in] **/ const char *key; + /** A pointer to a variable that will hold the parsed value [out] **/ void *value; + /** Bit flags that determine things like if the field is required and if it was received [in/out] **/ unsigned flags; } FCGIValue; +/** The type of a user (unauthorised, normal, admin). **/ typedef enum {USER_UNAUTH, USER_NORMAL, USER_ADMIN} UserType; /**Contextual information related to FCGI requests*/ @@ -66,6 +74,7 @@ typedef struct int response_number; } FCGIContext; +/** The type definition of a module handler. **/ typedef void (*ModuleHandler) (FCGIContext *context, char *params); extern bool FCGI_LockControl(FCGIContext *context, const char * user_name, UserType user_type); @@ -85,6 +94,7 @@ extern void FCGI_JSONKey(const char *key); extern void FCGI_PrintRaw(const char *format, ...); extern void FCGI_EndJSON(); extern void FCGI_RejectJSONEx(FCGIContext *context, StatusCodes status, const char *description); +extern char *FCGI_URLDecode(char *buf); extern char *FCGI_EscapeText(char *buf); extern void *FCGI_RequestLoop (void *data);