<html>
<head>
  <link rel="stylesheet" type="text/css" href="dox.css" />
  <title>libapreq2-2.16: include/apreq_util.h Source File</title> 
</head>
<body>
<div id="page-header">
<p class="menu">
   <a href="http://www.apache.org/">Apache Software Foundation</a> &gt; <a href="http://httpd.apache.org">HTTP Server Project</a> &gt;
<a href="http://httpd.apache.org/apreq/">Request Library Subproject</a></p>
<p class="apache">Apache HTTP Server Request Library</p>
<img alt="" src="feather.gif" /></div>
<!-- Generated by Doxygen 1.8.20 -->
<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&amp;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="headertitle">
<div class="title">apreq_util.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="apreq__util_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment">**  Licensed to the Apache Software Foundation (ASF) under one or more</span></div>
<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment">** contributor license agreements.  See the NOTICE file distributed with</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment">** this work for additional information regarding copyright ownership.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">** The ASF licenses this file to You under the Apache License, Version 2.0</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">** (the &quot;License&quot;); you may not use this file except in compliance with</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">** the License.  You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">**</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">**      http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">**</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">**  Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">**  distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">**  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">**  See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">**  limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">*/</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160; </div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="preprocessor">#ifndef APREQ_UTIL_H</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#define APREQ_UTIL_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#include &quot;apr_file_io.h&quot;</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;apr_buckets.h&quot;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="apreq_8h.html">apreq.h</a>&quot;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160; </div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#ifdef  __cplusplus</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160; <span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a1aa668dc806fce4bd0fef348d1601930">   53</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(<span class="keywordtype">char</span> *) <a class="code" href="apreq__util_8h.html#a1aa668dc806fce4bd0fef348d1601930">apreq_join</a>(apr_pool_t *p,</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *sep,</div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                                 <span class="keyword">const</span> apr_array_header_t *arr,</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                                 <a class="code" href="apreq_8h.html#ac3784c04255e92629350505d35b0473e">apreq_join_t</a> mode);</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ac72c51ffe478faa804eaea5f68276dd8">   70</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_ssize_t) <a class="code" href="apreq__util_8h.html#ac72c51ffe478faa804eaea5f68276dd8">apreq_index</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* hay, apr_size_t hlen,</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;                                       <span class="keyword">const</span> <span class="keywordtype">char</span>* ndl, apr_size_t nlen,</div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;                                       <span class="keyword">const</span> <a class="code" href="apreq_8h.html#a590d7bfd9cd294f652d388c4f37fc8d5">apreq_match_t</a> type);</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ab4aa9bed839bb576444f464666e0bd85">   86</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_size_t) <a class="code" href="apreq__util_8h.html#ab4aa9bed839bb576444f464666e0bd85">apreq_quote</a>(<span class="keywordtype">char</span> *dest, <span class="keyword">const</span> <span class="keywordtype">char</span> *src,</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;                                      <span class="keyword">const</span> apr_size_t slen);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#afef8b7af9d36b0f7ec24e9d0f64a29a7">  102</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_size_t) <a class="code" href="apreq__util_8h.html#afef8b7af9d36b0f7ec24e9d0f64a29a7">apreq_quote_once</a>(<span class="keywordtype">char</span> *dest, <span class="keyword">const</span> <span class="keywordtype">char</span> *src,</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;                                           <span class="keyword">const</span> apr_size_t slen);</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a034ccdfdcf751be6c0f8c2a1d30c2ae6">  115</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_size_t) <a class="code" href="apreq__util_8h.html#a034ccdfdcf751be6c0f8c2a1d30c2ae6">apreq_encode</a>(<span class="keywordtype">char</span> *dest, <span class="keyword">const</span> <span class="keywordtype">char</span> *src,</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                                       <span class="keyword">const</span> apr_size_t slen);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a801aa204656988ff4aa32cec6dd80e5a">  129</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_size_t) <a class="code" href="apreq__util_8h.html#a801aa204656988ff4aa32cec6dd80e5a">apreq_cp1252_to_utf8</a>(<span class="keywordtype">char</span> *dest,</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                                               <span class="keyword">const</span> <span class="keywordtype">char</span> *src, apr_size_t slen);</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ae11e0b3e2304a2e8c30aaa464ea78037">  143</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(<a class="code" href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a>) <a class="code" href="apreq__util_8h.html#ae11e0b3e2304a2e8c30aaa464ea78037">apreq_charset_divine</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *src,</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;                                                    apr_size_t slen);</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738">  166</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738">apreq_decode</a>(<span class="keywordtype">char</span> *dest, apr_size_t *dlen,</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;                                         <span class="keyword">const</span> <span class="keywordtype">char</span> *src, apr_size_t slen);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a13a090a30a4d05353caabab92a67179d">  189</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__util_8h.html#a13a090a30a4d05353caabab92a67179d">apreq_decodev</a>(<span class="keywordtype">char</span> *dest, apr_size_t *dlen,</div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                                          <span class="keyword">struct</span> iovec *v, <span class="keywordtype">int</span> nelts);</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="keyword">static</span> APR_INLINE</div>
<div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a785be2ceae273b0a7b2ffda223b2ebae">  205</a></span>&#160;<span class="keywordtype">char</span> *<a class="code" href="apreq__util_8h.html#a785be2ceae273b0a7b2ffda223b2ebae">apreq_escape</a>(apr_pool_t *p, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, <span class="keyword">const</span> apr_size_t slen)</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;{</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordtype">char</span> *rv;</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">if</span> (src == NULL)</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    rv = (<span class="keywordtype">char</span> *)apr_palloc(p, 3 * slen + 1);</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    <a class="code" href="apreq__util_8h.html#a034ccdfdcf751be6c0f8c2a1d30c2ae6">apreq_encode</a>(rv, src, slen);</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordflow">return</span> rv;</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;}</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a979c0af9322189581bde4644eec5fd41">  224</a></span>&#160;<span class="keyword">static</span> APR_INLINE apr_ssize_t <a class="code" href="apreq__util_8h.html#a979c0af9322189581bde4644eec5fd41">apreq_unescape</a>(<span class="keywordtype">char</span> *str)</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;{</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    apr_size_t len;</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    apr_status_t rv = <a class="code" href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738">apreq_decode</a>(str, &amp;len, str, strlen(str));</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <span class="keywordflow">if</span> (rv == APR_SUCCESS)</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        <span class="keywordflow">return</span> (apr_ssize_t)len;</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;        <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;}</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a69acb9425572cb8f694d49277160b1f7">  245</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_int64_t) <a class="code" href="apreq__util_8h.html#a69acb9425572cb8f694d49277160b1f7">apreq_atoi64f</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s);</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a4e838a92724aa7d9be0b978dc5c4e50c">  258</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_int64_t) <a class="code" href="apreq__util_8h.html#a4e838a92724aa7d9be0b978dc5c4e50c">apreq_atoi64t</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s);</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1">  277</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__util_8h.html#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1">apreq_brigade_fwrite</a>(apr_file_t *f,</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;                                                 apr_off_t *wlen,</div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;                                                 apr_bucket_brigade *bb);</div>
<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ab266a81c528de92654eb37f9890c4a7d">  296</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__util_8h.html#ab266a81c528de92654eb37f9890c4a7d">apreq_file_mktemp</a>(apr_file_t **fp,</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                                              apr_pool_t *pool,</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                                              <span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="keyword">static</span> APR_INLINE</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a91f3144692934b2daf54fb3c9ca7b180">  310</a></span>&#160;apr_status_t <a class="code" href="apreq__util_8h.html#a91f3144692934b2daf54fb3c9ca7b180">apreq_brigade_setaside</a>(apr_bucket_brigade *bb, apr_pool_t *p)</div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;{</div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    apr_bucket *e;</div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;    <span class="keywordflow">for</span> (e = APR_BRIGADE_FIRST(bb); e != APR_BRIGADE_SENTINEL(bb);</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;         e = APR_BUCKET_NEXT(e))</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    {</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        apr_status_t rv = apr_bucket_setaside(e, p);</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;        <span class="keywordflow">if</span> (rv != APR_SUCCESS)</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;            <span class="keywordflow">return</span> rv;</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    }</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keywordflow">return</span> APR_SUCCESS;</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;}</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="keyword">static</span> APR_INLINE</div>
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ab4def9e77622cf22cfa427e7fbf2ac45">  337</a></span>&#160;apr_status_t <a class="code" href="apreq__util_8h.html#ab4def9e77622cf22cfa427e7fbf2ac45">apreq_brigade_copy</a>(apr_bucket_brigade *d, apr_bucket_brigade *s) {</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    apr_bucket *e;</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    <span class="keywordflow">for</span> (e = APR_BRIGADE_FIRST(s); e != APR_BRIGADE_SENTINEL(s);</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;         e = APR_BUCKET_NEXT(e))</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;    {</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        apr_bucket *c;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;        apr_status_t rv = apr_bucket_copy(e, &amp;c);</div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;        <span class="keywordflow">if</span> (rv != APR_SUCCESS)</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;            <span class="keywordflow">return</span> rv;</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160; </div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;        APR_BRIGADE_INSERT_TAIL(d, c);</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    }</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="keywordflow">return</span> APR_SUCCESS;</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;}</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="keyword">static</span> APR_INLINE</div>
<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#aa23561a0d169b50454a815926ccc0ba5">  364</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="apreq__util_8h.html#aa23561a0d169b50454a815926ccc0ba5">apreq_brigade_move</a>(apr_bucket_brigade *d, apr_bucket_brigade *s,</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;                        apr_bucket *e)</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;{</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;    apr_bucket *f;</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    <span class="keywordflow">if</span> (e != APR_BRIGADE_SENTINEL(s)) {</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;        f = APR_RING_FIRST(&amp;s-&gt;list);</div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="keywordflow">if</span> (f == e) <span class="comment">/* zero buckets to be moved */</span></div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;            <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <span class="comment">/* obtain the last bucket to be moved */</span></div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        e = APR_RING_PREV(e, link);</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160; </div>
<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        APR_RING_UNSPLICE(f, e, link);</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        APR_RING_SPLICE_HEAD(&amp;d-&gt;list, f, e, apr_bucket, link);</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;    }</div>
<div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;    <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;        APR_BRIGADE_CONCAT(d, s);</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    }</div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;}</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a8195b6a32954928a6088e7cea077dd75">  399</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__util_8h.html#a8195b6a32954928a6088e7cea077dd75">apreq_header_attribute</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *hdr,</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;                                                   <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;                                                   <span class="keyword">const</span> apr_size_t nlen,</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;                                                   <span class="keyword">const</span> <span class="keywordtype">char</span> **val,</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;                                                   apr_size_t *vlen);</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; </div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160; </div>
<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a4ddf563c9902474bdedbf014e24aafc8">  423</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_status_t) <a class="code" href="apreq__util_8h.html#a4ddf563c9902474bdedbf014e24aafc8">apreq_brigade_concat</a>(apr_pool_t *pool,</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;                                                 <span class="keyword">const</span> <span class="keywordtype">char</span> *temp_dir,</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;                                                 apr_size_t brigade_limit,</div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;                                                 apr_bucket_brigade *out,</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;                                                 apr_bucket_brigade *in);</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; </div>
<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#aec0de2141b6b742a1468667eb8f8158e">  437</a></span>&#160;<a class="code" href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a>(apr_file_t *)<a class="code" href="apreq__util_8h.html#aec0de2141b6b742a1468667eb8f8158e">apreq_brigade_spoolfile</a>(apr_bucket_brigade *bb);</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160; </div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; }</div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160; </div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* APREQ_UTIL_H */</span><span class="preprocessor"></span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aapreq__util_8h_html_a4ddf563c9902474bdedbf014e24aafc8"><div class="ttname"><a href="apreq__util_8h.html#a4ddf563c9902474bdedbf014e24aafc8">apreq_brigade_concat</a></div><div class="ttdeci">apr_status_t apreq_brigade_concat(apr_pool_t *pool, const char *temp_dir, apr_size_t brigade_limit, apr_bucket_brigade *out, apr_bucket_brigade *in)</div></div>
<div class="ttc" id="aapreq__util_8h_html_aa23561a0d169b50454a815926ccc0ba5"><div class="ttname"><a href="apreq__util_8h.html#aa23561a0d169b50454a815926ccc0ba5">apreq_brigade_move</a></div><div class="ttdeci">static APR_INLINE void apreq_brigade_move(apr_bucket_brigade *d, apr_bucket_brigade *s, apr_bucket *e)</div><div class="ttdef"><b>Definition:</b> apreq_util.h:364</div></div>
<div class="ttc" id="aapreq_8h_html_a02bf89714a74397155a11b9ccb942b0d"><div class="ttname"><a href="apreq_8h.html#a02bf89714a74397155a11b9ccb942b0d">APREQ_DECLARE</a></div><div class="ttdeci">#define APREQ_DECLARE(d)</div><div class="ttdef"><b>Definition:</b> apreq.h:50</div></div>
<div class="ttc" id="aapreq_8h_html_a590d7bfd9cd294f652d388c4f37fc8d5"><div class="ttname"><a href="apreq_8h.html#a590d7bfd9cd294f652d388c4f37fc8d5">apreq_match_t</a></div><div class="ttdeci">apreq_match_t</div><div class="ttdef"><b>Definition:</b> apreq.h:222</div></div>
<div class="ttc" id="aapreq__util_8h_html_a4e838a92724aa7d9be0b978dc5c4e50c"><div class="ttname"><a href="apreq__util_8h.html#a4e838a92724aa7d9be0b978dc5c4e50c">apreq_atoi64t</a></div><div class="ttdeci">apr_int64_t apreq_atoi64t(const char *s)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a785be2ceae273b0a7b2ffda223b2ebae"><div class="ttname"><a href="apreq__util_8h.html#a785be2ceae273b0a7b2ffda223b2ebae">apreq_escape</a></div><div class="ttdeci">static APR_INLINE char * apreq_escape(apr_pool_t *p, const char *src, const apr_size_t slen)</div><div class="ttdef"><b>Definition:</b> apreq_util.h:205</div></div>
<div class="ttc" id="aapreq__util_8h_html_a979c0af9322189581bde4644eec5fd41"><div class="ttname"><a href="apreq__util_8h.html#a979c0af9322189581bde4644eec5fd41">apreq_unescape</a></div><div class="ttdeci">static APR_INLINE apr_ssize_t apreq_unescape(char *str)</div><div class="ttdef"><b>Definition:</b> apreq_util.h:224</div></div>
<div class="ttc" id="aapreq__util_8h_html_ab266a81c528de92654eb37f9890c4a7d"><div class="ttname"><a href="apreq__util_8h.html#ab266a81c528de92654eb37f9890c4a7d">apreq_file_mktemp</a></div><div class="ttdeci">apr_status_t apreq_file_mktemp(apr_file_t **fp, apr_pool_t *pool, const char *path)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a8195b6a32954928a6088e7cea077dd75"><div class="ttname"><a href="apreq__util_8h.html#a8195b6a32954928a6088e7cea077dd75">apreq_header_attribute</a></div><div class="ttdeci">apr_status_t apreq_header_attribute(const char *hdr, const char *name, const apr_size_t nlen, const char **val, apr_size_t *vlen)</div></div>
<div class="ttc" id="aapreq__util_8h_html_afef8b7af9d36b0f7ec24e9d0f64a29a7"><div class="ttname"><a href="apreq__util_8h.html#afef8b7af9d36b0f7ec24e9d0f64a29a7">apreq_quote_once</a></div><div class="ttdeci">apr_size_t apreq_quote_once(char *dest, const char *src, const apr_size_t slen)</div></div>
<div class="ttc" id="aapreq_8h_html"><div class="ttname"><a href="apreq_8h.html">apreq.h</a></div><div class="ttdoc">Main header file...</div></div>
<div class="ttc" id="aapreq_8h_html_ac3784c04255e92629350505d35b0473e"><div class="ttname"><a href="apreq_8h.html#ac3784c04255e92629350505d35b0473e">apreq_join_t</a></div><div class="ttdeci">apreq_join_t</div><div class="ttdef"><b>Definition:</b> apreq.h:214</div></div>
<div class="ttc" id="aapreq_8h_html_a6607dfa756796989c15014870b48c8cd"><div class="ttname"><a href="apreq_8h.html#a6607dfa756796989c15014870b48c8cd">apreq_charset_t</a></div><div class="ttdeci">apreq_charset_t</div><div class="ttdef"><b>Definition:</b> apreq.h:205</div></div>
<div class="ttc" id="aapreq__util_8h_html_aec0de2141b6b742a1468667eb8f8158e"><div class="ttname"><a href="apreq__util_8h.html#aec0de2141b6b742a1468667eb8f8158e">apreq_brigade_spoolfile</a></div><div class="ttdeci">apr_file_t * apreq_brigade_spoolfile(apr_bucket_brigade *bb)</div></div>
<div class="ttc" id="aapreq__util_8h_html_ab4def9e77622cf22cfa427e7fbf2ac45"><div class="ttname"><a href="apreq__util_8h.html#ab4def9e77622cf22cfa427e7fbf2ac45">apreq_brigade_copy</a></div><div class="ttdeci">static APR_INLINE apr_status_t apreq_brigade_copy(apr_bucket_brigade *d, apr_bucket_brigade *s)</div><div class="ttdef"><b>Definition:</b> apreq_util.h:337</div></div>
<div class="ttc" id="aapreq__util_8h_html_a3c1d46b8c0e7991ae1ced0178c2f4738"><div class="ttname"><a href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738">apreq_decode</a></div><div class="ttdeci">apr_status_t apreq_decode(char *dest, apr_size_t *dlen, const char *src, apr_size_t slen)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a801aa204656988ff4aa32cec6dd80e5a"><div class="ttname"><a href="apreq__util_8h.html#a801aa204656988ff4aa32cec6dd80e5a">apreq_cp1252_to_utf8</a></div><div class="ttdeci">apr_size_t apreq_cp1252_to_utf8(char *dest, const char *src, apr_size_t slen)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a91f3144692934b2daf54fb3c9ca7b180"><div class="ttname"><a href="apreq__util_8h.html#a91f3144692934b2daf54fb3c9ca7b180">apreq_brigade_setaside</a></div><div class="ttdeci">static APR_INLINE apr_status_t apreq_brigade_setaside(apr_bucket_brigade *bb, apr_pool_t *p)</div><div class="ttdef"><b>Definition:</b> apreq_util.h:310</div></div>
<div class="ttc" id="aapreq__util_8h_html_a69acb9425572cb8f694d49277160b1f7"><div class="ttname"><a href="apreq__util_8h.html#a69acb9425572cb8f694d49277160b1f7">apreq_atoi64f</a></div><div class="ttdeci">apr_int64_t apreq_atoi64f(const char *s)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a034ccdfdcf751be6c0f8c2a1d30c2ae6"><div class="ttname"><a href="apreq__util_8h.html#a034ccdfdcf751be6c0f8c2a1d30c2ae6">apreq_encode</a></div><div class="ttdeci">apr_size_t apreq_encode(char *dest, const char *src, const apr_size_t slen)</div></div>
<div class="ttc" id="aapreq__util_8h_html_ac72c51ffe478faa804eaea5f68276dd8"><div class="ttname"><a href="apreq__util_8h.html#ac72c51ffe478faa804eaea5f68276dd8">apreq_index</a></div><div class="ttdeci">apr_ssize_t apreq_index(const char *hay, apr_size_t hlen, const char *ndl, apr_size_t nlen, const apreq_match_t type)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a3bbe5ee2d1537c6a9f30d0fed9f5f1e1"><div class="ttname"><a href="apreq__util_8h.html#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1">apreq_brigade_fwrite</a></div><div class="ttdeci">apr_status_t apreq_brigade_fwrite(apr_file_t *f, apr_off_t *wlen, apr_bucket_brigade *bb)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a1aa668dc806fce4bd0fef348d1601930"><div class="ttname"><a href="apreq__util_8h.html#a1aa668dc806fce4bd0fef348d1601930">apreq_join</a></div><div class="ttdeci">char * apreq_join(apr_pool_t *p, const char *sep, const apr_array_header_t *arr, apreq_join_t mode)</div></div>
<div class="ttc" id="aapreq__util_8h_html_ae11e0b3e2304a2e8c30aaa464ea78037"><div class="ttname"><a href="apreq__util_8h.html#ae11e0b3e2304a2e8c30aaa464ea78037">apreq_charset_divine</a></div><div class="ttdeci">apreq_charset_t apreq_charset_divine(const char *src, apr_size_t slen)</div></div>
<div class="ttc" id="aapreq__util_8h_html_ab4aa9bed839bb576444f464666e0bd85"><div class="ttname"><a href="apreq__util_8h.html#ab4aa9bed839bb576444f464666e0bd85">apreq_quote</a></div><div class="ttdeci">apr_size_t apreq_quote(char *dest, const char *src, const apr_size_t slen)</div></div>
<div class="ttc" id="aapreq__util_8h_html_a13a090a30a4d05353caabab92a67179d"><div class="ttname"><a href="apreq__util_8h.html#a13a090a30a4d05353caabab92a67179d">apreq_decodev</a></div><div class="ttdeci">apr_status_t apreq_decodev(char *dest, apr_size_t *dlen, struct iovec *v, int nelts)</div></div>
<div id="footer">
<p class="apache">
Copyright &copy; 2003-2006 <a href="http://www.apache.org">The Apache Software Foundation</a>.<br/>
See <a href="apreq_license.html">LICENSE</a>.</p>
<p class="menu">
<span style="color:#aaa">page generated by <a href="http://www.doxygen.org/"><code>doxygen</code></a>
version 1.8.20 on Wed Mar 10 2021</span>
</p>
</div>
</body>
</html>