<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> > <a href="http://httpd.apache.org">HTTP Server Project</a> >
<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&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> <span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <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> <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> <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> <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> <span class="comment">** (the "License"); you may not use this file except in compliance with</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <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> <span class="comment">**</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <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> <span class="comment">**</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <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> <span class="comment">** distributed under the License is distributed on an "AS IS" BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <span class="comment">** limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">*/</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>  </div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="preprocessor">#ifndef APREQ_UTIL_H</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="preprocessor">#define APREQ_UTIL_H</span></div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>  </div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#include "apr_file_io.h"</span></div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#include "apr_buckets.h"</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#include "<a class="code" href="apreq_8h.html">apreq.h</a>"</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>  </div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>  <span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>  </div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a1aa668dc806fce4bd0fef348d1601930"> 53</a></span> <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>  <span class="keyword">const</span> <span class="keywordtype">char</span> *sep,</div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>  <span class="keyword">const</span> apr_array_header_t *arr,</div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <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>  </div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ac72c51ffe478faa804eaea5f68276dd8"> 70</a></span> <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>  <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>  <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>  </div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ab4aa9bed839bb576444f464666e0bd85"> 86</a></span> <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>  <span class="keyword">const</span> apr_size_t slen);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#afef8b7af9d36b0f7ec24e9d0f64a29a7"> 102</a></span> <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>  <span class="keyword">const</span> apr_size_t slen);</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a034ccdfdcf751be6c0f8c2a1d30c2ae6"> 115</a></span> <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>  <span class="keyword">const</span> apr_size_t slen);</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a801aa204656988ff4aa32cec6dd80e5a"> 129</a></span> <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>  <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>  </div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#ae11e0b3e2304a2e8c30aaa464ea78037"> 143</a></span> <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>  apr_size_t slen);</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738"> 166</a></span> <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>  <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>  </div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a13a090a30a4d05353caabab92a67179d"> 189</a></span> <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>  <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>  </div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> <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> <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> {</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="keywordtype">char</span> *rv;</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  </div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (src == NULL)</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> NULL;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  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>  <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>  <span class="keywordflow">return</span> rv;</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span> }</div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a979c0af9322189581bde4644eec5fd41"> 224</a></span> <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> {</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  apr_size_t len;</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  apr_status_t rv = <a class="code" href="apreq__util_8h.html#a3c1d46b8c0e7991ae1ced0178c2f4738">apreq_decode</a>(str, &len, str, strlen(str));</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (rv == APR_SUCCESS)</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">return</span> (apr_ssize_t)len;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span> }</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a69acb9425572cb8f694d49277160b1f7"> 245</a></span> <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>  </div>
<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a4e838a92724aa7d9be0b978dc5c4e50c"> 258</a></span> <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>  </div>
<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a3bbe5ee2d1537c6a9f30d0fed9f5f1e1"> 277</a></span> <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>  apr_off_t *wlen,</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  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> <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>  apr_pool_t *pool,</div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *path);</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <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> 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> {</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  apr_bucket *e;</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <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>  e = APR_BUCKET_NEXT(e))</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  {</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  apr_status_t rv = apr_bucket_setaside(e, p);</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">if</span> (rv != APR_SUCCESS)</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> rv;</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  }</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="keywordflow">return</span> APR_SUCCESS;</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> }</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  </div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <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> 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>  apr_bucket *e;</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <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>  e = APR_BUCKET_NEXT(e))</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  {</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  apr_bucket *c;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  apr_status_t rv = apr_bucket_copy(e, &c);</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">if</span> (rv != APR_SUCCESS)</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">return</span> rv;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  APR_BRIGADE_INSERT_TAIL(d, c);</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  }</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">return</span> APR_SUCCESS;</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span> }</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  </div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <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> <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>  apr_bucket *e)</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> {</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  apr_bucket *f;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  </div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (e != APR_BRIGADE_SENTINEL(s)) {</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  f = APR_RING_FIRST(&s->list);</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <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>  <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  </div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="comment">/* obtain the last bucket to be moved */</span></div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  e = APR_RING_PREV(e, link);</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  </div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  APR_RING_UNSPLICE(f, e, link);</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  APR_RING_SPLICE_HEAD(&d->list, f, e, apr_bucket, link);</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  }</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  APR_BRIGADE_CONCAT(d, s);</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  }</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span> }</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  </div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  </div>
<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a8195b6a32954928a6088e7cea077dd75"> 399</a></span> <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>  <span class="keyword">const</span> <span class="keywordtype">char</span> *name,</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keyword">const</span> apr_size_t nlen,</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> **val,</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  apr_size_t *vlen);</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  </div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  </div>
<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#a4ddf563c9902474bdedbf014e24aafc8"> 423</a></span> <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>  <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>  apr_size_t brigade_limit,</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  apr_bucket_brigade *out,</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  apr_bucket_brigade *in);</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  </div>
<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="apreq__util_8h.html#aec0de2141b6b742a1468667eb8f8158e"> 437</a></span> <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>  </div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> <span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  }</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span> <span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  </div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span> <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 © 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>