| <!-- HTML header for doxygen 1.9.1--> |
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> |
| <meta http-equiv="X-UA-Compatible" content="IE=9"/> |
| <meta name="generator" content="Doxygen 1.9.1"/> |
| <meta name="viewport" content="width=device-width, initial-scale=1"/> |
| <title>libapreq2-2.17: include/apreq_util.h File Reference</title> |
| <link href="tabs.css" rel="stylesheet" type="text/css"/> |
| <script type="text/javascript" src="jquery.js"></script> |
| <script type="text/javascript" src="dynsections.js"></script> |
| <link href="customdoxygen.css" rel="stylesheet" type="text/css" /> |
| </head> |
| <body> |
| <div id="top"><!-- do not remove this div, it is closed by doxygen! --> |
| <div id="titlearea"> |
| <table cellspacing="0" cellpadding="0" width="100%"> |
| <tbody> |
| <tr style="height: 56px;"> |
| <!-- |
| <td id="projectlogo"><img alt="Logo" src="feather.png"/></td> |
| --> |
| <!-- |
| <td id="projectalign" style="padding-left: 0.5em;"> |
| <div id="projectname">libapreq2 |
| < !--BEGIN PROJECT_NUMBER-- > <span id="projectnumber">2.17</span>< !--END PROJECT_NUMBER-- > |
| </div> |
| < !--BEGIN PROJECT_BRIEF-- ><div id="projectbrief"></div>< !--END PROJECT_BRIEF-- > |
| </td> |
| --> |
| <td> |
| <div id="page-header"> |
| <p class="menu"> |
| <a href="https://www.apache.org/">Apache Software Foundation</a> > |
| <a href="https://httpd.apache.org">HTTP Server Project</a> > |
| <a href="https://httpd.apache.org/apreq/">Request Library Subproject</a> |
| </p> |
| <p class="apache">Apache HTTP Server Request Library - 2.17</p> |
| <img alt="" src="feather.png" /> |
| </div> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| <!-- end header part --> |
| <!-- Generated by Doxygen 1.9.1 --> |
| <script type="text/javascript" src="menudata.js"></script> |
| <script type="text/javascript" src="menu.js"></script> |
| <script type="text/javascript"> |
| /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ |
| $(function() { |
| initMenu('',false,false,'search.php','Search'); |
| }); |
| /* @license-end */</script> |
| <div id="main-nav"></div> |
| <div id="nav-path" class="navpath"> |
| <ul> |
| <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul> |
| </div> |
| </div><!-- top --> |
| <div class="header"> |
| <div class="summary"> |
| <a href="#func-members">Functions</a> </div> |
| <div class="headertitle"> |
| <div class="title">apreq_util.h File Reference<div class="ingroups"><a class="el" href="group__libapreq2.html">Apache Request Library</a></div></div> </div> |
| </div><!--header--> |
| <div class="contents"> |
| |
| <p>Utility functions for apreq. |
| <a href="#details">More...</a></p> |
| <div class="textblock"><code>#include "<a class="elRef" href="http://apr.apache.org/docs/apr/1.7/apr__file__io_8h.html">apr_file_io.h</a>"</code><br /> |
| <code>#include "<a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/apr__buckets_8h.html">apr_buckets.h</a>"</code><br /> |
| <code>#include "<a class="el" href="apreq_8h_source.html">apreq.h</a>"</code><br /> |
| </div><div class="textblock"><div class="dynheader"> |
| Include dependency graph for apreq_util.h:</div> |
| <div class="dyncontent"> |
| <div class="center"><img src="apreq__util_8h__incl.png" border="0" usemap="#ainclude_2apreq__util_8h" alt=""/></div> |
| <map name="ainclude_2apreq__util_8h" id="ainclude_2apreq__util_8h"> |
| <area shape="rect" title="Utility functions for apreq." alt="" coords="111,5,262,32"/> |
| <area shape="rect" target="_parent" href="http://apr.apache.org/docs/apr/1.7/apr__file__io_8h.html.html" title=" " alt="" coords="5,80,107,107"/> |
| <area shape="rect" target="_parent" href="http://apr.apache.org/docs/apr-util/1.6/apr__buckets_8h.html.html" title=" " alt="" coords="131,80,243,107"/> |
| <area shape="rect" href="apreq_8h.html" title="Main header file..." alt="" coords="266,80,337,107"/> |
| <area shape="rect" target="_parent" href="http://apr.apache.org/docs/apr/1.7/apr__tables_8h.html.html" title=" " alt="" coords="193,155,295,181"/> |
| <area shape="rect" title=" " alt="" coords="320,155,395,181"/> |
| </map> |
| </div> |
| </div> |
| <p><a href="apreq__util_8h_source.html">Go to the source code of this file.</a></p> |
| <table class="memberdecls"> |
| <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> |
| Functions</h2></td></tr> |
| <tr class="memitem:a1aa668dc806fce4bd0fef348d1601930"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a1aa668dc806fce4bd0fef348d1601930">apreq_join</a> (<a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *sep, const <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/structapr__array__header__t.html">apr_array_header_t</a> *arr, <a class="el" href="apreq_8h.html#ac3784c04255e92629350505d35b0473e">apreq_join_t</a> mode)</td></tr> |
| <tr class="separator:a1aa668dc806fce4bd0fef348d1601930"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ac72c51ffe478faa804eaea5f68276dd8"><td class="memItemLeft" align="right" valign="top">apr_ssize_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#ac72c51ffe478faa804eaea5f68276dd8">apreq_index</a> (const char *hay, apr_size_t hlen, const char *ndl, apr_size_t nlen, const <a class="el" href="apreq_8h.html#a590d7bfd9cd294f652d388c4f37fc8d5">apreq_match_t</a> type)</td></tr> |
| <tr class="separator:ac72c51ffe478faa804eaea5f68276dd8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab4aa9bed839bb576444f464666e0bd85"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#ab4aa9bed839bb576444f464666e0bd85">apreq_quote</a> (char *dest, const char *src, const apr_size_t slen)</td></tr> |
| <tr class="separator:ab4aa9bed839bb576444f464666e0bd85"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:afef8b7af9d36b0f7ec24e9d0f64a29a7"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#afef8b7af9d36b0f7ec24e9d0f64a29a7">apreq_quote_once</a> (char *dest, const char *src, const apr_size_t slen)</td></tr> |
| <tr class="separator:afef8b7af9d36b0f7ec24e9d0f64a29a7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a034ccdfdcf751be6c0f8c2a1d30c2ae6"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a034ccdfdcf751be6c0f8c2a1d30c2ae6">apreq_encode</a> (char *dest, const char *src, const apr_size_t slen)</td></tr> |
| <tr class="separator:a034ccdfdcf751be6c0f8c2a1d30c2ae6"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a801aa204656988ff4aa32cec6dd80e5a"><td class="memItemLeft" align="right" valign="top">apr_size_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a801aa204656988ff4aa32cec6dd80e5a">apreq_cp1252_to_utf8</a> (char *dest, const char *src, apr_size_t slen)</td></tr> |
| <tr class="separator:a801aa204656988ff4aa32cec6dd80e5a"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ae11e0b3e2304a2e8c30aaa464ea78037"><td class="memItemLeft" align="right" valign="top"><a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#ae11e0b3e2304a2e8c30aaa464ea78037">apreq_charset_divine</a> (const char *src, apr_size_t slen)</td></tr> |
| <tr class="separator:ae11e0b3e2304a2e8c30aaa464ea78037"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3c1d46b8c0e7991ae1ced0178c2f4738"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738">apreq_decode</a> (char *dest, apr_size_t *dlen, const char *src, apr_size_t slen)</td></tr> |
| <tr class="separator:a3c1d46b8c0e7991ae1ced0178c2f4738"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a13a090a30a4d05353caabab92a67179d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a13a090a30a4d05353caabab92a67179d">apreq_decodev</a> (char *dest, apr_size_t *dlen, struct iovec *v, int nelts)</td></tr> |
| <tr class="separator:a13a090a30a4d05353caabab92a67179d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a785be2ceae273b0a7b2ffda223b2ebae"><td class="memItemLeft" align="right" valign="top">static APR_INLINE char * </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a785be2ceae273b0a7b2ffda223b2ebae">apreq_escape</a> (<a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *src, const apr_size_t slen)</td></tr> |
| <tr class="separator:a785be2ceae273b0a7b2ffda223b2ebae"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a979c0af9322189581bde4644eec5fd41"><td class="memItemLeft" align="right" valign="top">static APR_INLINE apr_ssize_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a979c0af9322189581bde4644eec5fd41">apreq_unescape</a> (char *str)</td></tr> |
| <tr class="separator:a979c0af9322189581bde4644eec5fd41"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a69acb9425572cb8f694d49277160b1f7"><td class="memItemLeft" align="right" valign="top">apr_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a69acb9425572cb8f694d49277160b1f7">apreq_atoi64f</a> (const char *s)</td></tr> |
| <tr class="separator:a69acb9425572cb8f694d49277160b1f7"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4e838a92724aa7d9be0b978dc5c4e50c"><td class="memItemLeft" align="right" valign="top">apr_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a4e838a92724aa7d9be0b978dc5c4e50c">apreq_atoi64t</a> (const char *s)</td></tr> |
| <tr class="separator:a4e838a92724aa7d9be0b978dc5c4e50c"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a3bbe5ee2d1537c6a9f30d0fed9f5f1e1"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1">apreq_brigade_fwrite</a> (<a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> *f, apr_off_t *wlen, <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb)</td></tr> |
| <tr class="separator:a3bbe5ee2d1537c6a9f30d0fed9f5f1e1"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab266a81c528de92654eb37f9890c4a7d"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#ab266a81c528de92654eb37f9890c4a7d">apreq_file_mktemp</a> (<a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> **fp, <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *pool, const char *path)</td></tr> |
| <tr class="separator:ab266a81c528de92654eb37f9890c4a7d"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a91f3144692934b2daf54fb3c9ca7b180"><td class="memItemLeft" align="right" valign="top">static APR_INLINE <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a91f3144692934b2daf54fb3c9ca7b180">apreq_brigade_setaside</a> (<a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb, <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p)</td></tr> |
| <tr class="separator:a91f3144692934b2daf54fb3c9ca7b180"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:ab4def9e77622cf22cfa427e7fbf2ac45"><td class="memItemLeft" align="right" valign="top">static APR_INLINE <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#ab4def9e77622cf22cfa427e7fbf2ac45">apreq_brigade_copy</a> (<a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *d, <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *s)</td></tr> |
| <tr class="separator:ab4def9e77622cf22cfa427e7fbf2ac45"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aa23561a0d169b50454a815926ccc0ba5"><td class="memItemLeft" align="right" valign="top">static APR_INLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#aa23561a0d169b50454a815926ccc0ba5">apreq_brigade_move</a> (<a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *d, <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *s, <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket.html">apr_bucket</a> *e)</td></tr> |
| <tr class="separator:aa23561a0d169b50454a815926ccc0ba5"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a8195b6a32954928a6088e7cea077dd75"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a8195b6a32954928a6088e7cea077dd75">apreq_header_attribute</a> (const char *hdr, const char *name, const apr_size_t nlen, const char **val, apr_size_t *vlen)</td></tr> |
| <tr class="separator:a8195b6a32954928a6088e7cea077dd75"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:a4ddf563c9902474bdedbf014e24aafc8"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#a4ddf563c9902474bdedbf014e24aafc8">apreq_brigade_concat</a> (<a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *pool, const char *temp_dir, apr_size_t brigade_limit, <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *out, <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *in)</td></tr> |
| <tr class="separator:a4ddf563c9902474bdedbf014e24aafc8"><td class="memSeparator" colspan="2"> </td></tr> |
| <tr class="memitem:aec0de2141b6b742a1468667eb8f8158e"><td class="memItemLeft" align="right" valign="top"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="apreq__util_8h.html#aec0de2141b6b742a1468667eb8f8158e">apreq_brigade_spoolfile</a> (<a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> *bb)</td></tr> |
| <tr class="separator:aec0de2141b6b742a1468667eb8f8158e"><td class="memSeparator" colspan="2"> </td></tr> |
| </table> |
| <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> |
| <div class="textblock"><p>Utility functions for apreq. </p> |
| <p>This header contains useful functions for creating new parsers, hooks or modules. It includes</p> |
| <ul> |
| <li>string <-> array converters</li> |
| <li>substring search functions</li> |
| <li>simple encoders & decoders for urlencoded strings</li> |
| <li>simple time, date, & file-size converters </li> |
| </ul> |
| </div><h2 class="groupheader">Function Documentation</h2> |
| <a id="a69acb9425572cb8f694d49277160b1f7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a69acb9425572cb8f694d49277160b1f7">◆ </a></span>apreq_atoi64f()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_int64_t apreq_atoi64f </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>s</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Converts file sizes (KMG) to bytes</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">s</td><td>file size matching m/^\d+[KMG]b?$/i</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>64-bit integer representation of s.</dd></dl> |
| <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>What happens when s is malformed? Should this return an unsigned value instead? </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a4e838a92724aa7d9be0b978dc5c4e50c"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a4e838a92724aa7d9be0b978dc5c4e50c">◆ </a></span>apreq_atoi64t()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_int64_t apreq_atoi64t </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>s</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Converts time strings (YMDhms) to seconds</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">s</td><td>time string matching m/^\+?\d+[YMDhms]$/</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>64-bit integer representation of s as seconds.</dd></dl> |
| <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000002">Todo:</a></b></dt><dd>What happens when s is malformed? Should this return an unsigned value instead? </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a4ddf563c9902474bdedbf014e24aafc8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a4ddf563c9902474bdedbf014e24aafc8">◆ </a></span>apreq_brigade_concat()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_brigade_concat </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> |
| <td class="paramname"><em>pool</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>temp_dir</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t </td> |
| <td class="paramname"><em>brigade_limit</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>out</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>in</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Concatenates the brigades, spooling large brigades into a tempfile (APREQ_SPOOL) bucket.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">pool</td><td>Pool for creating a tempfile bucket. </td></tr> |
| <tr><td class="paramname">temp_dir</td><td>Directory for tempfile creation. </td></tr> |
| <tr><td class="paramname">brigade_limit</td><td>If out's length would exceed this value, the appended buckets get written to a tempfile. </td></tr> |
| <tr><td class="paramname">out</td><td>Resulting brigade. </td></tr> |
| <tr><td class="paramname">in</td><td>Brigade to append.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| Error status code resulting from either <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/group___a_p_r___util___bucket___brigades.html#ga65075839e31fd85e2c80717f4e9e0461">apr_brigade_length()</a>, <a class="el" href="apreq__util_8h.html#ab266a81c528de92654eb37f9890c4a7d">apreq_file_mktemp()</a>, <a class="el" href="apreq__util_8h.html#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1">apreq_brigade_fwrite()</a>, or <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#ga9db84bec24db97a53890df1a6aff63a1">apr_file_seek()</a>.</dd></dl> |
| <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Flesh out these error codes, making them as explicit as possible. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ab4def9e77622cf22cfa427e7fbf2ac45"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ab4def9e77622cf22cfa427e7fbf2ac45">◆ </a></span>apreq_brigade_copy()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">static APR_INLINE <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_brigade_copy </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>d</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>s</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">static</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Copy a brigade.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">d</td><td>(destination) Copied buckets are appended to this brigade. </td></tr> |
| <tr><td class="paramname">s</td><td>(source) Brigade to copy from.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| Error status code from an unsuccessful <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/group___a_p_r___util___bucket___brigades.html#gab33cc08b7f064d06397f312e427279c3">apr_bucket_copy()</a>.</dd></dl> |
| <dl class="section remark"><dt>Remarks</dt><dd>s == d produces Undefined Behavior. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a3bbe5ee2d1537c6a9f30d0fed9f5f1e1"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1">◆ </a></span>apreq_brigade_fwrite()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_brigade_fwrite </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> * </td> |
| <td class="paramname"><em>f</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_off_t * </td> |
| <td class="paramname"><em>wlen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>bb</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Writes brigade to a file.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">f</td><td>File that gets the brigade. </td></tr> |
| <tr><td class="paramname">wlen</td><td>On a successful return, wlen holds the length of the brigade, which is the amount of data written to the file. </td></tr> |
| <tr><td class="paramname">bb</td><td>Bucket brigade.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| Error status code from either an unsuccessful <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/group___a_p_r___util___bucket___brigades.html#gae44ae938c6c60e148430fdb098dcf28f">apr_bucket_read()</a>, or a failed <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gacc7924dd7af1c2948b5b2ea6e5f77984">apr_file_writev()</a>.</dd></dl> |
| <dl class="section remark"><dt>Remarks</dt><dd>This function leaks a bucket brigade into bb->p whenever the final bucket in bb is a spool bucket. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="aa23561a0d169b50454a815926ccc0ba5"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aa23561a0d169b50454a815926ccc0ba5">◆ </a></span>apreq_brigade_move()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">static APR_INLINE void apreq_brigade_move </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>d</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>s</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket.html">apr_bucket</a> * </td> |
| <td class="paramname"><em>e</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">static</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Move the front of a brigade.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">d</td><td>(destination) Append buckets to this brigade. </td></tr> |
| <tr><td class="paramname">s</td><td>(source) Brigade to take buckets from. </td></tr> |
| <tr><td class="paramname">e</td><td>First bucket of s after the move. All buckets before e are appended to d.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section remark"><dt>Remarks</dt><dd>This moves all buckets when e == <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/group___a_p_r___util___bucket___brigades.html#ga858da66dccab1e063415678bb115788a">APR_BRIGADE_SENTINEL(s)</a>. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a91f3144692934b2daf54fb3c9ca7b180"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a91f3144692934b2daf54fb3c9ca7b180">◆ </a></span>apreq_brigade_setaside()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">static APR_INLINE <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_brigade_setaside </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>bb</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> |
| <td class="paramname"><em>p</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">static</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Set aside all buckets in the brigade.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">bb</td><td>Brigade. </td></tr> |
| <tr><td class="paramname">p</td><td>Setaside buckets into this pool. </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| Error status code from an unsuccessful <a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/group___a_p_r___util___bucket___brigades.html#gab00941ffd472982693eb415a964de7af">apr_bucket_setaside()</a>. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="aec0de2141b6b742a1468667eb8f8158e"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#aec0de2141b6b742a1468667eb8f8158e">◆ </a></span>apreq_brigade_spoolfile()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a>* apreq_brigade_spoolfile </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr-util/1.6/structapr__bucket__brigade.html">apr_bucket_brigade</a> * </td> |
| <td class="paramname"><em>bb</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Determines the spool file used by the brigade. Returns NULL if the brigade is not spooled in a file (does not use an APREQ_SPOOL bucket).</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">bb</td><td>the bucket brigade </td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>the spool file, or NULL. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ae11e0b3e2304a2e8c30aaa464ea78037"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ae11e0b3e2304a2e8c30aaa464ea78037">◆ </a></span>apreq_charset_divine()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="el" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a> apreq_charset_divine </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Heuristically determine the charset of a string.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">src</td><td>String to scan. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APREQ_CHARSET_ASCII if the string contains only 7-bit chars; </dd> |
| <dd> |
| APREQ_CHARSET_UTF8 if the string is a valid utf8 byte sequence; </dd> |
| <dd> |
| APREQ_CHARSET_LATIN1 if the string has no control chars; </dd> |
| <dd> |
| APREQ_CHARSET_CP1252 if the string has control chars. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a801aa204656988ff4aa32cec6dd80e5a"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a801aa204656988ff4aa32cec6dd80e5a">◆ </a></span>apreq_cp1252_to_utf8()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_size_t apreq_cp1252_to_utf8 </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Convert a string from cp1252 to utf8. Caller must ensure it is large enough to hold the encoded string and trailing '\0'.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dest</td><td>Location of utf8-encoded result string. Caller must ensure it is large enough to hold the encoded string and trailing '\0'. </td></tr> |
| <tr><td class="paramname">src</td><td>Original string. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of original string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>length of utf8-encoded string in dest; does not exceed 3 * slen. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a3c1d46b8c0e7991ae1ced0178c2f4738"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a3c1d46b8c0e7991ae1ced0178c2f4738">◆ </a></span>apreq_decode()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_decode </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t * </td> |
| <td class="paramname"><em>dlen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Url-decodes a string.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dest</td><td>Location of url-encoded result string. Caller must ensure dest is large enough to hold the encoded string and trailing null character. </td></tr> |
| <tr><td class="paramname">dlen</td><td>points to resultant length of url-decoded string in dest </td></tr> |
| <tr><td class="paramname">src</td><td>Original string. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of original string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| APR_INCOMPLETE if the string ends in the middle of an escape sequence. </dd> |
| <dd> |
| <a class="el" href="apreq__error_8h.html#a73a69e21acc2cf849310a421ab43d2ba">APREQ_ERROR_BADSEQ</a> or <a class="el" href="apreq__error_8h.html#a04b6a01738a1ee7fd1ecc79d256e721f">APREQ_ERROR_BADCHAR</a> on malformed input.</dd></dl> |
| <dl class="section remark"><dt>Remarks</dt><dd>In the non-success case, dlen will be set to include the last successfully decoded value. This function decodes %uXXXX into a utf8 (wide) character, following ECMA-262 (the Javascript spec) Section B.2.1. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a13a090a30a4d05353caabab92a67179d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a13a090a30a4d05353caabab92a67179d">◆ </a></span>apreq_decodev()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_decodev </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t * </td> |
| <td class="paramname"><em>dlen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">struct iovec * </td> |
| <td class="paramname"><em>v</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">int </td> |
| <td class="paramname"><em>nelts</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Url-decodes an iovec array.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dest</td><td>Location of url-encoded result string. Caller must ensure dest is large enough to hold the encoded string and trailing null character. </td></tr> |
| <tr><td class="paramname">dlen</td><td>Resultant length of dest. </td></tr> |
| <tr><td class="paramname">v</td><td>Array of iovecs that represent the source string </td></tr> |
| <tr><td class="paramname">nelts</td><td>Number of iovecs in the array.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| APR_INCOMPLETE if the iovec ends in the middle of an escape sequence. </dd> |
| <dd> |
| <a class="el" href="apreq__error_8h.html#a73a69e21acc2cf849310a421ab43d2ba">APREQ_ERROR_BADSEQ</a> or <a class="el" href="apreq__error_8h.html#a04b6a01738a1ee7fd1ecc79d256e721f">APREQ_ERROR_BADCHAR</a> on malformed input.</dd></dl> |
| <dl class="section remark"><dt>Remarks</dt><dd>In the non-APR_SUCCESS case, dlen will be set to include the last successfully decoded value. This function decodes %uXXXX into a utf8 (wide) character, following ECMA-262 (the Javascript spec) Section B.2.1. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a034ccdfdcf751be6c0f8c2a1d30c2ae6"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a034ccdfdcf751be6c0f8c2a1d30c2ae6">◆ </a></span>apreq_encode()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_size_t apreq_encode </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Url-encodes a string.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dest</td><td>Location of url-encoded result string. Caller must ensure it is large enough to hold the encoded string and trailing '\0'. </td></tr> |
| <tr><td class="paramname">src</td><td>Original string. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of original string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>length of url-encoded string in dest; does not exceed 3 * slen. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a785be2ceae273b0a7b2ffda223b2ebae"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a785be2ceae273b0a7b2ffda223b2ebae">◆ </a></span>apreq_escape()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">static APR_INLINE char* apreq_escape </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> |
| <td class="paramname"><em>p</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">static</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Returns an url-encoded copy of a string.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">p</td><td>Pool used to allocate the return value. </td></tr> |
| <tr><td class="paramname">src</td><td>Original string. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of original string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>The url-encoded string.</dd></dl> |
| <dl class="section remark"><dt>Remarks</dt><dd>Use this function insead of apreq_encode if its caller might otherwise overflow dest. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ab266a81c528de92654eb37f9890c4a7d"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ab266a81c528de92654eb37f9890c4a7d">◆ </a></span>apreq_file_mktemp()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_file_mktemp </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gaa46e4763ac375ea3c7a43ba6f6099e22">apr_file_t</a> ** </td> |
| <td class="paramname"><em>fp</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> |
| <td class="paramname"><em>pool</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></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Makes a temporary file.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">fp</td><td>Points to the temporary apr_file_t on success. </td></tr> |
| <tr><td class="paramname">pool</td><td>Pool to associate with the temp file. When the pool is destroyed, the temp file will be closed and deleted. </td></tr> |
| <tr><td class="paramname">path</td><td>The base directory which will contain the temp file. If param == NULL, the directory will be selected via tempnam(). See the tempnam manpage for details.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| Error status code from unsuccessful <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__filepath.html#gae89fd67108f10dc5044b6d062dde0138">apr_filepath_merge()</a>, or a failed <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__file__io.html#gac34981f9ff41f85e4377a6dde185fe52">apr_file_mktemp()</a>. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a8195b6a32954928a6088e7cea077dd75"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a8195b6a32954928a6088e7cea077dd75">◆ </a></span>apreq_header_attribute()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apreq_header_attribute </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>hdr</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 apr_size_t </td> |
| <td class="paramname"><em>nlen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char ** </td> |
| <td class="paramname"><em>val</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t * </td> |
| <td class="paramname"><em>vlen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Search a header string for the value of a particular named attribute.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">hdr</td><td>Header string to scan. </td></tr> |
| <tr><td class="paramname">name</td><td>Name of attribute to search for. </td></tr> |
| <tr><td class="paramname">nlen</td><td>Length of name. </td></tr> |
| <tr><td class="paramname">val</td><td>Location of (first) matching value. </td></tr> |
| <tr><td class="paramname">vlen</td><td>Length of matching value.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>APR_SUCCESS. </dd> |
| <dd> |
| <a class="el" href="apreq__error_8h.html#affdf9393e5c9277aeae3ea8d2ecf55fa">APREQ_ERROR_NOATTR</a> if the attribute is not found. </dd> |
| <dd> |
| <a class="el" href="apreq__error_8h.html#a73a69e21acc2cf849310a421ab43d2ba">APREQ_ERROR_BADSEQ</a> if an unpaired quote mark was detected. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ac72c51ffe478faa804eaea5f68276dd8"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ac72c51ffe478faa804eaea5f68276dd8">◆ </a></span>apreq_index()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_ssize_t apreq_index </td> |
| <td>(</td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>hay</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t </td> |
| <td class="paramname"><em>hlen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>ndl</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">apr_size_t </td> |
| <td class="paramname"><em>nlen</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="el" href="apreq_8h.html#a590d7bfd9cd294f652d388c4f37fc8d5">apreq_match_t</a> </td> |
| <td class="paramname"><em>type</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Returns offset of match string's location, or -1 if no match is found.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">hay</td><td>Location of bytes to scan. </td></tr> |
| <tr><td class="paramname">hlen</td><td>Number of bytes available for scanning. </td></tr> |
| <tr><td class="paramname">ndl</td><td>Search string </td></tr> |
| <tr><td class="paramname">nlen</td><td>Length of search string. </td></tr> |
| <tr><td class="paramname">type</td><td>Match type.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Offset of match string, or -1 if no match is found. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a1aa668dc806fce4bd0fef348d1601930"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a1aa668dc806fce4bd0fef348d1601930">◆ </a></span>apreq_join()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">char* apreq_join </td> |
| <td>(</td> |
| <td class="paramtype"><a class="elRef" href="http://apr.apache.org/docs/apr/1.7/group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> |
| <td class="paramname"><em>p</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>sep</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const <a class="elRef" href="http://apr.apache.org/docs/apr/1.7/structapr__array__header__t.html">apr_array_header_t</a> * </td> |
| <td class="paramname"><em>arr</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype"><a class="el" href="apreq_8h.html#ac3784c04255e92629350505d35b0473e">apreq_join_t</a> </td> |
| <td class="paramname"><em>mode</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Join an array of values. The result is an empty string if there are no values.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">p</td><td>Pool to allocate return value. </td></tr> |
| <tr><td class="paramname">sep</td><td>String that is inserted between the joined values. </td></tr> |
| <tr><td class="paramname">arr</td><td>Array of <a class="el" href="structapreq__value__t.html" title="libapreq's pre-extensible string type">apreq_value_t</a> entries. </td></tr> |
| <tr><td class="paramname">mode</td><td>Join type- see apreq_join_t.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Joined string, or NULL on error </dd></dl> |
| |
| </div> |
| </div> |
| <a id="ab4aa9bed839bb576444f464666e0bd85"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#ab4aa9bed839bb576444f464666e0bd85">◆ </a></span>apreq_quote()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_size_t apreq_quote </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Places a quoted copy of src into dest. Embedded quotes are escaped with a backslash ('\').</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dest</td><td>Location of quoted copy. Must be large enough to hold the copy and trailing null byte. </td></tr> |
| <tr><td class="paramname">src</td><td>Original string. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of original string. </td></tr> |
| <tr><td class="paramname">dest</td><td>Destination string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>length of quoted copy in dest. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="afef8b7af9d36b0f7ec24e9d0f64a29a7"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#afef8b7af9d36b0f7ec24e9d0f64a29a7">◆ </a></span>apreq_quote_once()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">apr_size_t apreq_quote_once </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>dest</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const char * </td> |
| <td class="paramname"><em>src</em>, </td> |
| </tr> |
| <tr> |
| <td class="paramkey"></td> |
| <td></td> |
| <td class="paramtype">const apr_size_t </td> |
| <td class="paramname"><em>slen</em> </td> |
| </tr> |
| <tr> |
| <td></td> |
| <td>)</td> |
| <td></td><td></td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>Same as <a class="el" href="apreq__util_8h.html#ab4aa9bed839bb576444f464666e0bd85">apreq_quote()</a> except when src begins and ends in quote marks. In that case it assumes src is quoted correctly, and just copies src to dest.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">dest</td><td>Location of quoted copy. Must be large enough to hold the copy and trailing null byte. </td></tr> |
| <tr><td class="paramname">src</td><td>Original string. </td></tr> |
| <tr><td class="paramname">slen</td><td>Length of original string. </td></tr> |
| <tr><td class="paramname">dest</td><td>Destination string.</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>length of quoted copy in dest. </dd></dl> |
| |
| </div> |
| </div> |
| <a id="a979c0af9322189581bde4644eec5fd41"></a> |
| <h2 class="memtitle"><span class="permalink"><a href="#a979c0af9322189581bde4644eec5fd41">◆ </a></span>apreq_unescape()</h2> |
| |
| <div class="memitem"> |
| <div class="memproto"> |
| <table class="mlabels"> |
| <tr> |
| <td class="mlabels-left"> |
| <table class="memname"> |
| <tr> |
| <td class="memname">static APR_INLINE apr_ssize_t apreq_unescape </td> |
| <td>(</td> |
| <td class="paramtype">char * </td> |
| <td class="paramname"><em>str</em></td><td>)</td> |
| <td></td> |
| </tr> |
| </table> |
| </td> |
| <td class="mlabels-right"> |
| <span class="mlabels"><span class="mlabel">static</span></span> </td> |
| </tr> |
| </table> |
| </div><div class="memdoc"> |
| <p>An <em>in-situ</em> url-decoder.</p> |
| <dl class="params"><dt>Parameters</dt><dd> |
| <table class="params"> |
| <tr><td class="paramname">str</td><td>The string to decode</td></tr> |
| </table> |
| </dd> |
| </dl> |
| <dl class="section return"><dt>Returns</dt><dd>Length of decoded string, or < 0 on error. </dd></dl> |
| |
| </div> |
| </div> |
| </div><!-- contents --> |
| <!-- HTML footer for doxygen 1.9.1--> |
| <!-- start footer part --> |
| <hr class="footer"/> |
| <table class="footer"> |
| <td> |
| <address class="footer_left"><small> |
| Copyright © 2003-2022 <a href="https://www.apache.org">The Apache Software Foundation</a>.<br/> |
| See <a href="apreq_license.html">LICENSE</a>. |
| </small></address> |
| </td> |
| <td> |
| <address class="footer"><small> |
| Generated on Sat Sep 3 2022 17:23:06 for libapreq2 by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 |
| </small></address> |
| </td> |
| </table> |
| </body> |
| </html> |