791 lines
45 KiB
HTML
791 lines
45 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<!-------------------------------------------------------------->
|
|
<!-- qDecoder Project -->
|
|
<!-- -->
|
|
<!-- Copyright (c) The qDecoder Project -->
|
|
<!-- http://www.qdecoder.org -->
|
|
<!-------------------------------------------------------------->
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<title>qdecoder.h File Reference</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<center><h1>qDecoder API Reference</h1></center>
|
|
<!-- Generated by Doxygen 1.8.2 -->
|
|
<div id="navrow1" class="tabs">
|
|
<ul class="tablist">
|
|
<li><a href="index.html"><span>Main Page</span></a></li>
|
|
<li><a href="annotated.html"><span>Data Structures</span></a></li>
|
|
<li class="current"><a href="files.html"><span>Files</span></a></li>
|
|
</ul>
|
|
</div>
|
|
<div id="navrow2" class="tabs2">
|
|
<ul class="tablist">
|
|
<li><a href="files.html"><span>File List</span></a></li>
|
|
<li><a href="globals.html"><span>Globals</span></a></li>
|
|
</ul>
|
|
</div>
|
|
</div><!-- top -->
|
|
<div class="header">
|
|
<div class="summary">
|
|
<a href="#nested-classes">Data Structures</a> |
|
|
<a href="#define-members">Macros</a> |
|
|
<a href="#typedef-members">Typedefs</a> |
|
|
<a href="#enum-members">Enumerations</a> |
|
|
<a href="#func-members">Functions</a> </div>
|
|
<div class="headertitle">
|
|
<div class="title">qdecoder.h File Reference</div> </div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
|
|
<div class="textblock"><p>qDecoder Header file </p>
|
|
</div><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
|
|
Data Structures</h2></td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structqentry__s.html">qentry_s</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structqentobj__s.html">qentobj_s</a></td></tr>
|
|
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
|
|
Macros</h2></td></tr>
|
|
<tr class="memitem:afa70cd09420bff91fe918766567572bd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afa70cd09420bff91fe918766567572bd"></a>
|
|
#define </td><td class="memItemRight" valign="bottom"><b>_Q_PRGNAME</b>   "qdecoder"</td></tr>
|
|
<tr class="separator:afa70cd09420bff91fe918766567572bd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aeb0b1e4e15aa94af46125ab2396eb18a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeb0b1e4e15aa94af46125ab2396eb18a"></a>
|
|
#define </td><td class="memItemRight" valign="bottom"><b>_Q_VERSION</b>   "12.0.4"</td></tr>
|
|
<tr class="separator:aeb0b1e4e15aa94af46125ab2396eb18a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
|
|
Typedefs</h2></td></tr>
|
|
<tr class="memitem:a0d737c8448c011a688eabcbc7f0e3aea"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a0d737c8448c011a688eabcbc7f0e3aea"></a>
|
|
typedef struct <a class="el" href="structqentry__s.html">qentry_s</a> </td><td class="memItemRight" valign="bottom"><b>qentry_t</b></td></tr>
|
|
<tr class="separator:a0d737c8448c011a688eabcbc7f0e3aea"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a3f8ff97b060415bc679054e535dc72de"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f8ff97b060415bc679054e535dc72de"></a>
|
|
typedef struct <a class="el" href="structqentobj__s.html">qentobj_s</a> </td><td class="memItemRight" valign="bottom"><b>qentobj_t</b></td></tr>
|
|
<tr class="separator:a3f8ff97b060415bc679054e535dc72de"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
|
|
Enumerations</h2></td></tr>
|
|
<tr class="memitem:ab6621226b3917fee92bd7e0480ad34a3"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><b>Q_CGI_T</b> { <b>Q_CGI_ALL</b> = 0,
|
|
<b>Q_CGI_COOKIE</b> = 0x01,
|
|
<b>Q_CGI_POST</b> = 0x02,
|
|
<b>Q_CGI_GET</b> = 0x04
|
|
}</td></tr>
|
|
<tr class="separator:ab6621226b3917fee92bd7e0480ad34a3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table><table class="memberdecls">
|
|
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
|
|
Functions</h2></td></tr>
|
|
<tr class="memitem:a4a33fd9f17145e0fcdc61b6907f130e4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structqentry__s.html">qentry_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a4a33fd9f17145e0fcdc61b6907f130e4">qcgireq_setoption</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, bool filemode, const char *basepath, int clearold)</td></tr>
|
|
<tr class="memdesc:a4a33fd9f17145e0fcdc61b6907f130e4"><td class="mdescLeft"> </td><td class="mdescRight">Set request parsing option for file uploading in case of multipart/form-data encoding. <a href="#a4a33fd9f17145e0fcdc61b6907f130e4"></a><br/></td></tr>
|
|
<tr class="separator:a4a33fd9f17145e0fcdc61b6907f130e4"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aa6f632664932495df12271c427e83b3d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structqentry__s.html">qentry_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#aa6f632664932495df12271c427e83b3d">qcgireq_parse</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, Q_CGI_T method)</td></tr>
|
|
<tr class="memdesc:aa6f632664932495df12271c427e83b3d"><td class="mdescLeft"> </td><td class="mdescRight">Parse one or more request(COOKIE/POST/GET) queries. <a href="#aa6f632664932495df12271c427e83b3d"></a><br/></td></tr>
|
|
<tr class="separator:aa6f632664932495df12271c427e83b3d"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a013152489ce3d964811704897a77fc20"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a013152489ce3d964811704897a77fc20">qcgireq_getquery</a> (Q_CGI_T method)</td></tr>
|
|
<tr class="memdesc:a013152489ce3d964811704897a77fc20"><td class="mdescLeft"> </td><td class="mdescRight">Get raw query string. <a href="#a013152489ce3d964811704897a77fc20"></a><br/></td></tr>
|
|
<tr class="separator:a013152489ce3d964811704897a77fc20"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8792c1f4cbd158c5702d1dcef3a0e4f3"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a8792c1f4cbd158c5702d1dcef3a0e4f3">qcgires_setcookie</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, const char *name, const char *value, int expire, const char *path, const char *domain, bool secure)</td></tr>
|
|
<tr class="memdesc:a8792c1f4cbd158c5702d1dcef3a0e4f3"><td class="mdescLeft"> </td><td class="mdescRight">Set cookie. <a href="#a8792c1f4cbd158c5702d1dcef3a0e4f3"></a><br/></td></tr>
|
|
<tr class="separator:a8792c1f4cbd158c5702d1dcef3a0e4f3"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a764444bd0fc4f92c7aa3339a7c878335"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a764444bd0fc4f92c7aa3339a7c878335">qcgires_removecookie</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, const char *name, const char *path, const char *domain, bool secure)</td></tr>
|
|
<tr class="memdesc:a764444bd0fc4f92c7aa3339a7c878335"><td class="mdescLeft"> </td><td class="mdescRight">Remove cookie. <a href="#a764444bd0fc4f92c7aa3339a7c878335"></a><br/></td></tr>
|
|
<tr class="separator:a764444bd0fc4f92c7aa3339a7c878335"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a5f6be1dd6d4ffb9be553339d95b1de2b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a5f6be1dd6d4ffb9be553339d95b1de2b">qcgires_setcontenttype</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, const char *mimetype)</td></tr>
|
|
<tr class="memdesc:a5f6be1dd6d4ffb9be553339d95b1de2b"><td class="mdescLeft"> </td><td class="mdescRight">Set responding content-type. <a href="#a5f6be1dd6d4ffb9be553339d95b1de2b"></a><br/></td></tr>
|
|
<tr class="separator:a5f6be1dd6d4ffb9be553339d95b1de2b"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0c6b578908f2a2ddc444a51a6479ed16"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a0c6b578908f2a2ddc444a51a6479ed16">qcgires_getcontenttype</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request)</td></tr>
|
|
<tr class="memdesc:a0c6b578908f2a2ddc444a51a6479ed16"><td class="mdescLeft"> </td><td class="mdescRight">Get content-type. <a href="#a0c6b578908f2a2ddc444a51a6479ed16"></a><br/></td></tr>
|
|
<tr class="separator:a0c6b578908f2a2ddc444a51a6479ed16"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:aef96feb8226dbbf7a13e4ff9887520eb"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#aef96feb8226dbbf7a13e4ff9887520eb">qcgires_redirect</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, const char *uri)</td></tr>
|
|
<tr class="memdesc:aef96feb8226dbbf7a13e4ff9887520eb"><td class="mdescLeft"> </td><td class="mdescRight">Send redirection header. <a href="#aef96feb8226dbbf7a13e4ff9887520eb"></a><br/></td></tr>
|
|
<tr class="separator:aef96feb8226dbbf7a13e4ff9887520eb"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a72f8e712e6aec7c54a0c402f24f3a64f"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a72f8e712e6aec7c54a0c402f24f3a64f">qcgires_download</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, const char *filepath, const char *mimetype)</td></tr>
|
|
<tr class="memdesc:a72f8e712e6aec7c54a0c402f24f3a64f"><td class="mdescLeft"> </td><td class="mdescRight">Force to send(download) file to client in accordance with given mime type. <a href="#a72f8e712e6aec7c54a0c402f24f3a64f"></a><br/></td></tr>
|
|
<tr class="separator:a72f8e712e6aec7c54a0c402f24f3a64f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:ab69965680bb7905482ae30d75b53b622"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#ab69965680bb7905482ae30d75b53b622">qcgires_error</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, char *format,...)</td></tr>
|
|
<tr class="memdesc:ab69965680bb7905482ae30d75b53b622"><td class="mdescLeft"> </td><td class="mdescRight">Print out HTML error page and exit program. <a href="#ab69965680bb7905482ae30d75b53b622"></a><br/></td></tr>
|
|
<tr class="separator:ab69965680bb7905482ae30d75b53b622"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a4337dd74e2b07f333f10ffc1189097fd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structqentry__s.html">qentry_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a4337dd74e2b07f333f10ffc1189097fd">qcgisess_init</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *request, const char *dirpath)</td></tr>
|
|
<tr class="memdesc:a4337dd74e2b07f333f10ffc1189097fd"><td class="mdescLeft"> </td><td class="mdescRight">Initialize session. <a href="#a4337dd74e2b07f333f10ffc1189097fd"></a><br/></td></tr>
|
|
<tr class="separator:a4337dd74e2b07f333f10ffc1189097fd"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a8a6384050e074ccffb2e5706d1a5f4af"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a8a6384050e074ccffb2e5706d1a5f4af">qcgisess_settimeout</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *session, time_t seconds)</td></tr>
|
|
<tr class="memdesc:a8a6384050e074ccffb2e5706d1a5f4af"><td class="mdescLeft"> </td><td class="mdescRight">Set the auto-expiration seconds about user session. <a href="#a8a6384050e074ccffb2e5706d1a5f4af"></a><br/></td></tr>
|
|
<tr class="separator:a8a6384050e074ccffb2e5706d1a5f4af"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a098613dd87e9cb88ea5740294dd7064f"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a098613dd87e9cb88ea5740294dd7064f">qcgisess_getid</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *session)</td></tr>
|
|
<tr class="memdesc:a098613dd87e9cb88ea5740294dd7064f"><td class="mdescLeft"> </td><td class="mdescRight">Get user session id. <a href="#a098613dd87e9cb88ea5740294dd7064f"></a><br/></td></tr>
|
|
<tr class="separator:a098613dd87e9cb88ea5740294dd7064f"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a21b3fb59842a4a48d74665428a46eca6"><td class="memItemLeft" align="right" valign="top">time_t </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a21b3fb59842a4a48d74665428a46eca6">qcgisess_getcreated</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *session)</td></tr>
|
|
<tr class="memdesc:a21b3fb59842a4a48d74665428a46eca6"><td class="mdescLeft"> </td><td class="mdescRight">Get user session created time. <a href="#a21b3fb59842a4a48d74665428a46eca6"></a><br/></td></tr>
|
|
<tr class="separator:a21b3fb59842a4a48d74665428a46eca6"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a2d796ad7b6b322e24f7c1858c8bbab4e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a2d796ad7b6b322e24f7c1858c8bbab4e">qcgisess_save</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *session)</td></tr>
|
|
<tr class="memdesc:a2d796ad7b6b322e24f7c1858c8bbab4e"><td class="mdescLeft"> </td><td class="mdescRight">Update session data. <a href="#a2d796ad7b6b322e24f7c1858c8bbab4e"></a><br/></td></tr>
|
|
<tr class="separator:a2d796ad7b6b322e24f7c1858c8bbab4e"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a23439df038540b796d4f8adb6b420bc9"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a23439df038540b796d4f8adb6b420bc9">qcgisess_destroy</a> (<a class="el" href="structqentry__s.html">qentry_t</a> *session)</td></tr>
|
|
<tr class="memdesc:a23439df038540b796d4f8adb6b420bc9"><td class="mdescLeft"> </td><td class="mdescRight">Destroy user session. <a href="#a23439df038540b796d4f8adb6b420bc9"></a><br/></td></tr>
|
|
<tr class="separator:a23439df038540b796d4f8adb6b420bc9"><td class="memSeparator" colspan="2"> </td></tr>
|
|
<tr class="memitem:a0a3b500b61ebb492016def5f5c29ab6a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structqentry__s.html">qentry_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="qdecoder_8h.html#a0a3b500b61ebb492016def5f5c29ab6a">qEntry</a> (void)</td></tr>
|
|
<tr class="memdesc:a0a3b500b61ebb492016def5f5c29ab6a"><td class="mdescLeft"> </td><td class="mdescRight">Create new qentry_t linked-list object. <a href="#a0a3b500b61ebb492016def5f5c29ab6a"></a><br/></td></tr>
|
|
<tr class="separator:a0a3b500b61ebb492016def5f5c29ab6a"><td class="memSeparator" colspan="2"> </td></tr>
|
|
</table>
|
|
<h2 class="groupheader">Function Documentation</h2>
|
|
<a class="anchor" id="a4a33fd9f17145e0fcdc61b6907f130e4"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structqentry__s.html">qentry_t</a>* qcgireq_setoption </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>filemode</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>basepath</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>clearold</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set request parsing option for file uploading in case of multipart/form-data encoding. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>qentry_t container pointer that options will be set. NULL can be used to create a new container. </td></tr>
|
|
<tr><td class="paramname">filemode</td><td>false for parsing in memory, true for storing attached files into file-system directly. </td></tr>
|
|
<tr><td class="paramname">basepath</td><td>the base path where the uploaded files are located. Set to NULL if filemode is false. </td></tr>
|
|
<tr><td class="paramname">clearold</td><td>saved files older than this seconds will be removed automatically. Set to 0 to disable.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>qentry_t container pointer, otherwise returns NULL.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>This method should be called before calling <a class="el" href="qcgireq_8c.html#aa6f632664932495df12271c427e83b3d" title="Parse one or more request(COOKIE/POST/GET) queries.">qcgireq_parse()</a>.</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *req = <a class="code" href="qcgireq_8c.html#a4a33fd9f17145e0fcdc61b6907f130e4" title="Set request parsing option for file uploading in case of multipart/form-data encoding.">qcgireq_setoption</a>(NULL, <span class="keyword">true</span>, <span class="stringliteral">"/tmp"</span>, 86400);</div>
|
|
<div class="line">req = <a class="code" href="qcgireq_8c.html#aa6f632664932495df12271c427e83b3d" title="Parse one or more request(COOKIE/POST/GET) queries.">qcgireq_parse</a>(req, 0);</div>
|
|
<div class="line">req->free(req);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aa6f632664932495df12271c427e83b3d"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structqentry__s.html">qentry_t</a>* qcgireq_parse </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">Q_CGI_T </td>
|
|
<td class="paramname"><em>method</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Parse one or more request(COOKIE/POST/GET) queries. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>qentry_t container pointer that parsed key/value pairs will be stored. NULL can be used to create a new container. </td></tr>
|
|
<tr><td class="paramname">method</td><td>Target mask consists of one or more of Q_CGI_COOKIE, Q_CGI_POST and Q_CGI_GET. Q_CGI_ALL or 0 can be used for parsing all of those types.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>qentry_t* handle if successful, NULL if there was insufficient memory to allocate a new object.</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *req = <a class="code" href="qcgireq_8c.html#aa6f632664932495df12271c427e83b3d" title="Parse one or more request(COOKIE/POST/GET) queries.">qcgireq_parse</a>(NULL, 0);</div>
|
|
</div><!-- fragment --><div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *req = <a class="code" href="qcgireq_8c.html#aa6f632664932495df12271c427e83b3d" title="Parse one or more request(COOKIE/POST/GET) queries.">qcgireq_parse</a>(req, Q_CGI_COOKIE | Q_CGI_POST);</div>
|
|
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>When multiple methods are specified, it'll be parsed in the order of (1)COOKIE, (2)POST (3)GET unless you call it separately multiple times. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a013152489ce3d964811704897a77fc20"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">char* qcgireq_getquery </td>
|
|
<td>(</td>
|
|
<td class="paramtype">Q_CGI_T </td>
|
|
<td class="paramname"><em>method</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get raw query string. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">method</td><td>One of Q_CGI_COOKIE, Q_CGI_POST or Q_CGI_GET.</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>malloced query string otherwise returns NULL;</dd></dl>
|
|
<div class="fragment"><div class="line"><span class="keywordtype">char</span> *query = <a class="code" href="qcgireq_8c.html#a013152489ce3d964811704897a77fc20" title="Get raw query string.">qcgireq_getquery</a>(Q_CGI_GET);</div>
|
|
<div class="line"><span class="keywordflow">if</span>(query != NULL) {</div>
|
|
<div class="line"> printf(<span class="stringliteral">"%s\n"</span>, query);</div>
|
|
<div class="line"> free(query);</div>
|
|
<div class="line">}</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a8792c1f4cbd158c5702d1dcef3a0e4f3"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgires_setcookie </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>name</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>value</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">int </td>
|
|
<td class="paramname"><em>expire</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>path</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>domain</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>secure</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set cookie. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure </td></tr>
|
|
<tr><td class="paramname">name</td><td>cookie name </td></tr>
|
|
<tr><td class="paramname">value</td><td>cookie value </td></tr>
|
|
<tr><td class="paramname">expire</td><td>expire related time in seconds (0 means end of session) </td></tr>
|
|
<tr><td class="paramname">path</td><td>cookie path (NULL can current path) </td></tr>
|
|
<tr><td class="paramname">domain</td><td>cookie domain (NULL means current domain) </td></tr>
|
|
<tr><td class="paramname">secure</td><td>secure flag</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true in case of success, otherwise returns false</dd></dl>
|
|
<div class="fragment"><div class="line"><span class="comment">// Apply cookie in the current domain and directory for 1 day.</span></div>
|
|
<div class="line"><a class="code" href="qcgires_8c.html#a8792c1f4cbd158c5702d1dcef3a0e4f3" title="Set cookie.">qcgires_setcookie</a>(req, <span class="stringliteral">"NAME"</span>, <span class="stringliteral">"VALUE"</span>, 86400, NULL, NULL, <span class="keyword">false</span>);</div>
|
|
<div class="line"></div>
|
|
<div class="line"><span class="comment">// Apply cookie to the "/" directory of "*.qdecoder.org" until the</span></div>
|
|
<div class="line"><span class="comment">// browser is closed.</span></div>
|
|
<div class="line"><a class="code" href="qcgires_8c.html#a8792c1f4cbd158c5702d1dcef3a0e4f3" title="Set cookie.">qcgires_setcookie</a>(req, name, value, 0, <span class="stringliteral">"/"</span>, <span class="stringliteral">".qdecoder.org"</span>, <span class="keyword">false</span>);</div>
|
|
<div class="line"></div>
|
|
<div class="line"><span class="comment">// As for the followings, cookies will be set up only when security</span></div>
|
|
<div class="line"><span class="comment">// requirements are satisfied.</span></div>
|
|
<div class="line"><a class="code" href="qcgires_8c.html#a8792c1f4cbd158c5702d1dcef3a0e4f3" title="Set cookie.">qcgires_setcookie</a>(req, name, value, 0, NULL, NULL, <span class="keyword">true</span>);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a764444bd0fc4f92c7aa3339a7c878335"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgires_removecookie </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>name</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>path</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>domain</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">bool </td>
|
|
<td class="paramname"><em>secure</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Remove cookie. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure </td></tr>
|
|
<tr><td class="paramname">name</td><td>cookie name </td></tr>
|
|
<tr><td class="paramname">path</td><td>cookie path </td></tr>
|
|
<tr><td class="paramname">domain</td><td>cookie domain </td></tr>
|
|
<tr><td class="paramname">secure</td><td>secure flag</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true in case of success, otherwise returns false</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="qcgires_8c.html#a8792c1f4cbd158c5702d1dcef3a0e4f3" title="Set cookie.">qcgires_setcookie</a>(req, <span class="stringliteral">"NAME"</span>, <span class="stringliteral">"VALUE"</span>, 0, NULL, NULL, NULL);</div>
|
|
<div class="line"><a class="code" href="qcgires_8c.html#a764444bd0fc4f92c7aa3339a7c878335" title="Remove cookie.">qcgires_removecookie</a>(req, <span class="stringliteral">"NAME"</span>, NULL, NULL, NULL);</div>
|
|
<div class="line"></div>
|
|
<div class="line"><a class="code" href="qcgires_8c.html#a8792c1f4cbd158c5702d1dcef3a0e4f3" title="Set cookie.">qcgires_setcookie</a>(req, <span class="stringliteral">"NAME"</span>, <span class="stringliteral">"VALUE"</span>, 0, <span class="stringliteral">"/"</span>, <span class="stringliteral">"www.qdecoder.org"</span>, NULL);</div>
|
|
<div class="line"><a class="code" href="qcgires_8c.html#a764444bd0fc4f92c7aa3339a7c878335" title="Remove cookie.">qcgires_removecookie</a>(req, <span class="stringliteral">"NAME"</span>, <span class="stringliteral">"/"</span>, <span class="stringliteral">"www.qdecoder.org"</span>, NULL);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a5f6be1dd6d4ffb9be553339d95b1de2b"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgires_setcontenttype </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>mimetype</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set responding content-type. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure </td></tr>
|
|
<tr><td class="paramname">mimetype</td><td>mimetype</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true in case of success, otherwise returns false</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="qcgires_8c.html#a5f6be1dd6d4ffb9be553339d95b1de2b" title="Set responding content-type.">qcgires_setcontenttype</a>(req, <span class="stringliteral">"text/html"</span>);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0c6b578908f2a2ddc444a51a6479ed16"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const char* qcgires_getcontenttype </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get content-type. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>a pointer of mimetype string in case of success, otherwise returns NULL</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="qcgires_8c.html#a5f6be1dd6d4ffb9be553339d95b1de2b" title="Set responding content-type.">qcgires_setcontenttype</a>(req, <span class="stringliteral">"text/html"</span>);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="aef96feb8226dbbf7a13e4ff9887520eb"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgires_redirect </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>uri</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Send redirection header. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure </td></tr>
|
|
<tr><td class="paramname">uri</td><td>new URI</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true in case of success, otherwise returns false</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="qcgires_8c.html#aef96feb8226dbbf7a13e4ff9887520eb" title="Send redirection header.">qcgires_redirect</a>(req, <span class="stringliteral">"http://www.qdecoder.org/"</span>);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a72f8e712e6aec7c54a0c402f24f3a64f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">int qcgires_download </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>filepath</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>mimetype</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Force to send(download) file to client in accordance with given mime type. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure </td></tr>
|
|
<tr><td class="paramname">filepath</td><td>file to send </td></tr>
|
|
<tr><td class="paramname">mimetype</td><td>mimetype. NULL can be used for "application/octet-stream".</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>the number of bytes sent. otherwise(file not found) returns -1.</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Do not call <a class="el" href="qcgires_8c.html#a0c6b578908f2a2ddc444a51a6479ed16" title="Get content-type.">qcgires_getcontenttype()</a> before. The results of this function are the same as those acquired when the corresponding files are directly linked to the Web. But this is especially useful in preprocessing files to be downloaded only with user certification and in enabling downloading those files, which cannot be opend on the Web, only through specific programs. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="ab69965680bb7905482ae30d75b53b622"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">void qcgires_error </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">char * </td>
|
|
<td class="paramname"><em>format</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype"> </td>
|
|
<td class="paramname"><em>...</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Print out HTML error page and exit program. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure </td></tr>
|
|
<tr><td class="paramname">format</td><td>error message</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>none</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="qcgires_8c.html#ab69965680bb7905482ae30d75b53b622" title="Print out HTML error page and exit program.">qcgires_error</a>(req, <span class="stringliteral">"Error: can't find userid."</span>);</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a4337dd74e2b07f333f10ffc1189097fd"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structqentry__s.html">qentry_t</a>* qcgisess_init </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>request</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">const char * </td>
|
|
<td class="paramname"><em>dirpath</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Initialize session. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">request</td><td>a pointer of request structure returned by <a class="el" href="qcgireq_8c.html#aa6f632664932495df12271c427e83b3d" title="Parse one or more request(COOKIE/POST/GET) queries.">qcgireq_parse()</a> </td></tr>
|
|
<tr><td class="paramname">dirpath</td><td>directory path where session data will be kept</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced session data list (qentry_t type)</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>The returned qentry_t list must be de-allocated by calling qentry_t->free(). And if you want to append or remove some user session data, use qentry_t->*() functions then finally call <a class="el" href="qcgisess_8c.html#a2d796ad7b6b322e24f7c1858c8bbab4e" title="Update session data.">qcgisess_save()</a> to store updated session data. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a8a6384050e074ccffb2e5706d1a5f4af"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgisess_settimeout </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>session</em>, </td>
|
|
</tr>
|
|
<tr>
|
|
<td class="paramkey"></td>
|
|
<td></td>
|
|
<td class="paramtype">time_t </td>
|
|
<td class="paramname"><em>seconds</em> </td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td>)</td>
|
|
<td></td><td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Set the auto-expiration seconds about user session. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">session</td><td>a pointer of session structure </td></tr>
|
|
<tr><td class="paramname">seconds</td><td>expiration seconds</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Default timeout is defined as SESSION_DEFAULT_TIMEOUT_INTERVAL. 1800 seconds </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a098613dd87e9cb88ea5740294dd7064f"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">const char* qcgisess_getid </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>session</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get user session id. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">session</td><td>a pointer of session structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>a pointer of session identifier</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>Do not free manually </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a21b3fb59842a4a48d74665428a46eca6"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">time_t qcgisess_getcreated </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>session</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Get user session created time. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">session</td><td>a pointer of session structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>user session created time in UTC time seconds </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a2d796ad7b6b322e24f7c1858c8bbab4e"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgisess_save </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>session</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Update session data. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">session</td><td>a pointer of session structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a23439df038540b796d4f8adb6b420bc9"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname">bool qcgisess_destroy </td>
|
|
<td>(</td>
|
|
<td class="paramtype"><a class="el" href="structqentry__s.html">qentry_t</a> * </td>
|
|
<td class="paramname"><em>session</em></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Destroy user session. </p>
|
|
<dl class="params"><dt>Parameters</dt><dd>
|
|
<table class="params">
|
|
<tr><td class="paramname">session</td><td>a pointer of session structure</td></tr>
|
|
</table>
|
|
</dd>
|
|
</dl>
|
|
<dl class="section return"><dt>Returns</dt><dd>true if successful, otherwise returns false</dd></dl>
|
|
<dl class="section note"><dt>Note</dt><dd>If you only want to de-allocate session structure, just call qentry_t->free(). This will remove all user session data permanantely and also free the session structure. </dd></dl>
|
|
|
|
</div>
|
|
</div>
|
|
<a class="anchor" id="a0a3b500b61ebb492016def5f5c29ab6a"></a>
|
|
<div class="memitem">
|
|
<div class="memproto">
|
|
<table class="memname">
|
|
<tr>
|
|
<td class="memname"><a class="el" href="structqentry__s.html">qentry_t</a>* qEntry </td>
|
|
<td>(</td>
|
|
<td class="paramtype">void </td>
|
|
<td class="paramname"></td><td>)</td>
|
|
<td></td>
|
|
</tr>
|
|
</table>
|
|
</div><div class="memdoc">
|
|
|
|
<p>Create new qentry_t linked-list object. </p>
|
|
<dl class="section return"><dt>Returns</dt><dd>a pointer of malloced qentry_t structure in case of successful, otherwise returns NULL.</dd></dl>
|
|
<div class="fragment"><div class="line"><a class="code" href="structqentry__s.html">qentry_t</a> *entry = <a class="code" href="qdecoder_8h.html#a0a3b500b61ebb492016def5f5c29ab6a" title="Create new qentry_t linked-list object.">qEntry</a>();</div>
|
|
</div><!-- fragment -->
|
|
</div>
|
|
</div>
|
|
</div><!-- contents -->
|
|
<hr class="footer"/><address class="footer"><small>
|
|
<a href="http://www.qdecoder.org/">The qDecoder Project</a>.
|
|
Sat Mar 22 2014 07:44:36
|
|
</small></address>
|
|
</body>
|
|
</html>
|