qDecoder Header file
Data Structures | |
struct | _Q_ENTRY |
struct | _Q_ENTOBJ_T |
Defines | |
#define | _Q_PRGNAME "qDecoder" |
#define | _Q_VERSION "11.0.0" |
Typedefs | |
typedef struct _Q_ENTRY | Q_ENTRY |
typedef struct _Q_ENTOBJ_T | Q_ENTOBJ_T |
Enumerations | |
enum | Q_CGI_T { Q_CGI_ALL = 0, Q_CGI_COOKIE, Q_CGI_GET, Q_CGI_POST } |
Functions | |
Q_ENTRY * | qCgiRequestSetOption (Q_ENTRY *request, bool filemode, const char *basepath, int clearold) |
Set request parsing option for file uploading in case of multipart/form-data encoding. | |
Q_ENTRY * | qCgiRequestParse (Q_ENTRY *request, Q_CGI_T method) |
Parse one or more request(COOKIE/GET/POST) queries. | |
char * | qCgiRequestGetQuery (Q_CGI_T method) |
Get raw query string. | |
bool | qCgiResponseSetCookie (Q_ENTRY *request, const char *name, const char *value, int expire, const char *path, const char *domain, bool secure) |
Set cookie. | |
bool | qCgiResponseRemoveCookie (Q_ENTRY *request, const char *name, const char *path, const char *domain, bool secure) |
Remove cookie. | |
bool | qCgiResponseSetContentType (Q_ENTRY *request, const char *mimetype) |
Set responding content-type. | |
const char * | qCgiResponseGetContentType (Q_ENTRY *request) |
Get content-type. | |
bool | qCgiResponseRedirect (Q_ENTRY *request, const char *uri) |
Send redirection header. | |
int | qCgiResponseDownload (Q_ENTRY *request, const char *filepath, const char *mimetype) |
Force to send(download) file to client in accordance with given mime type. | |
void | qCgiResponseError (Q_ENTRY *request, char *format,...) |
Print out HTML error page and exit program. | |
Q_ENTRY * | qSessionInit (Q_ENTRY *request, const char *dirpath) |
Initialize session. | |
bool | qSessionSetTimeout (Q_ENTRY *session, time_t seconds) |
Set the auto-expiration seconds about user session. | |
const char * | qSessionGetId (Q_ENTRY *session) |
Get user session id. | |
time_t | qSessionGetCreated (Q_ENTRY *session) |
Get user session created time. | |
bool | qSessionSave (Q_ENTRY *session) |
Update session data. | |
bool | qSessionDestroy (Q_ENTRY *session) |
Destroy user session. | |
Q_ENTRY * | qEntry (void) |
Create new Q_ENTRY linked-list object. |
Q_ENTRY* qCgiRequestSetOption | ( | Q_ENTRY * | request, | |
bool | filemode, | |||
const char * | basepath, | |||
int | clearold | |||
) |
Set request parsing option for file uploading in case of multipart/form-data encoding.
request | Q_ENTRY container pointer that options will be set. NULL can be used to create a new container. | |
filemode | false for parsing in memory, true for storing attached files into file-system directly. | |
basepath | the base path where the uploaded files are located. Set to NULL if filemode is false. | |
clearold | saved files older than this seconds will be removed automatically. Set to 0 to disable. |
Q_ENTRY *req = qCgiRequestSetOption(NULL, true, "/tmp", 86400); req = qCgiRequestParse(req, 0); req->free(req);
Parse one or more request(COOKIE/GET/POST) queries.
request | Q_ENTRY container pointer that parsed key/value pairs will be stored. NULL can be used to create a new container. | |
method | Target mask consists of one or more of Q_CGI_COOKIE, Q_CGI_GET and Q_CGI_POST. Q_CGI_ALL or 0 can be used for parsing all of those types. |
Q_ENTRY *req = qCgiRequestParse(NULL, 0); char *name = req->getStr(req, "name", false); if(name != NULL) printf("%s\n", name); req->free(req);
char* qCgiRequestGetQuery | ( | Q_CGI_T | method | ) |
Get raw query string.
method | One of Q_CGI_COOKIE, Q_CGI_GET and Q_CGI_POST. |
char *query = qCgiRequestGetQuery(Q_CGI_GET); if(query != NULL) { printf("%s\n", query); free(query); }
bool qCgiResponseSetCookie | ( | Q_ENTRY * | request, | |
const char * | name, | |||
const char * | value, | |||
int | expire, | |||
const char * | path, | |||
const char * | domain, | |||
bool | secure | |||
) |
Set cookie.
request | a pointer of request structure | |
name | cookie name | |
value | cookie value | |
expire | expire related time in seconds (0 means end of session) | |
path | cookie path (NULL can current path) | |
domain | cookie domain (NULL means current domain) | |
secure | secure flag |
// Apply cookie in the current domain and directory for 1 day. qCgiResponseSetCookie(req, "NAME", "qDecoder", 86400, NULL, NULL, false); // Apply cookie to the "/" directory of "*.qdecoder.org" until the // browser is closed. qCgiResponseSetCookie(req, name, value, 0, "/", ".qdecoder.org", false); // As for the followings, cookies will be set up only when security // requirements are satisfied. qCgiResponseSetCookie(req, name, value, 0, NULL, NULL, true);
bool qCgiResponseRemoveCookie | ( | Q_ENTRY * | request, | |
const char * | name, | |||
const char * | path, | |||
const char * | domain, | |||
bool | secure | |||
) |
Remove cookie.
request | a pointer of request structure | |
name | cookie name | |
path | cookie path | |
domain | cookie domain | |
secure | secure flag |
qCgiResponseSetCookie(req, "NAME", "VALUE", 0, NULL, NULL, NULL); qCgiResponseRemoveCookie(req, "NAME", NULL, NULL, NULL); qCgiResponseSetCookie(req, "NAME", "VALUE", 0, "/", "www.qdecoder.org", NULL); qCgiResponseRemoveCookie(req, "NAME", "/", "www.qdecoder.org", NULL);
bool qCgiResponseSetContentType | ( | Q_ENTRY * | request, | |
const char * | mimetype | |||
) |
Set responding content-type.
request | a pointer of request structure | |
mimetype | mimetype |
qCgiResponseSetContentType(req, "text/html");
const char* qCgiResponseGetContentType | ( | Q_ENTRY * | request | ) |
Get content-type.
request | a pointer of request structure |
qCgiResponseSetContentType(req, "text/html");
bool qCgiResponseRedirect | ( | Q_ENTRY * | request, | |
const char * | uri | |||
) |
Send redirection header.
request | a pointer of request structure | |
uri | new URI |
qCgiResponseRedirect(req, "http://www.qdecoder.org/");
int qCgiResponseDownload | ( | Q_ENTRY * | request, | |
const char * | filepath, | |||
const char * | mimetype | |||
) |
Force to send(download) file to client in accordance with given mime type.
request | a pointer of request structure | |
filepath | file to send | |
mimetype | mimetype. NULL can be used for "application/octet-stream" mimetype. |
void qCgiResponseError | ( | Q_ENTRY * | request, | |
char * | format, | |||
... | ||||
) |
Print out HTML error page and exit program.
request | a pointer of request structure | |
format | error message |
qCgiResponseError(req, "Error: can't find userid.");
Initialize session.
request | a pointer of request structure returned by qCgiRequestParse() | |
dirpath | directory path where session data will be kept |
bool qSessionSetTimeout | ( | Q_ENTRY * | session, | |
time_t | seconds | |||
) |
Set the auto-expiration seconds about user session.
session | a pointer of session structure | |
seconds | expiration seconds |
const char* qSessionGetId | ( | Q_ENTRY * | session | ) |
Get user session id.
session | a pointer of session structure |
time_t qSessionGetCreated | ( | Q_ENTRY * | session | ) |
Get user session created time.
session | a pointer of session structure |
bool qSessionSave | ( | Q_ENTRY * | session | ) |
Update session data.
session | a pointer of session structure |
bool qSessionDestroy | ( | Q_ENTRY * | session | ) |
Destroy user session.
session | a pointer of session structure |