1docs::api::Apache2::ReqUuseesrtUCtoinlt(r3i)buted Perl Ddooccusm:e:natpait:i:oAnpache2::RequestUtil(3)
2
3
4

NAME

6       Apache2::RequestUtil - Perl API for Apache request record utils
7

Synopsis

9         use Apache2::RequestUtil ();
10
11         # add httpd config dynamically
12         $r->add_config(['require valid-user']);
13
14         # dump the request object as a string
15         print $r->as_string();
16
17         # default content_type
18         $content_type = $r->default_type();
19
20         # get PerlSetVar/PerlAddVar values
21         @values = $r->dir_config->get($key);
22
23         # get server docroot
24         $docroot = $r->document_root();
25
26         # set server docroot
27         $r->document_root($new_root);
28
29         # what are the registered perl handlers for a given phase
30         my @handlers = @{ $r->get_handlers('PerlResponseHandler') || [] };
31
32         # push a new handler for a given phase
33         $r->push_handlers(PerlCleanupHandler => \&handler);
34
35         # set handlers for a given phase (resetting previous values)
36         $r->set_handlers(PerlCleanupHandler => []);
37
38         # what's the request body limit
39         $limit = $r->get_limit_req_body();
40
41         # server and port names
42         $server = $r->get_server_name();
43         $port   = $r->get_server_port();
44
45         # what string Apache is going to send for a given status code
46         $status_line = Apache2::RequestUtil::get_status_line(404);
47
48         # are we in the main request?
49         $is_initial = $r->is_initial_req();
50
51         # directory level PerlOptions flags lookup
52         $r->subprocess_env unless $r->is_perl_option_enabled('SetupEnv');
53
54         # current <Location> value
55         $location = $r->location();
56
57         # merge a <Location> container in a request object
58         $r->location_merge($location);
59
60         # create a new Apache2::RequestRec object
61         $r = Apache2::RequestRec->new($c);
62
63         # tell the client not to cache the response
64         $r->no_cache($boolean);
65
66         # share perl objects by reference like $r->notes
67         $r->pnotes($key => [$obj1, $obj2]);
68
69         # get HTML signature
70         $sig = $r->psignature($prefix);
71
72         # get the global request object (requires PerlOptions +GlobalRequest)
73         $r = Apache2::RequestUtil->request;
74
75         # insert auth credentials into the request as if the client did that
76         $r->set_basic_credentials($username, $password);
77
78         # slurp the contents of $r->filename
79         my $content = ${ $r->slurp_filename() };
80
81         # terminate the current child after this request
82         $r->child_terminate();
83

Description

85       "Apache2::RequestUtil" provides the Apache request object utilities
86       API.
87

API

89   "add_config"
90       Dynamically add Apache configuration at request processing runtime:
91
92         $r->add_config($lines);
93         $r->add_config($lines, $override);
94         $r->add_config($lines, $override, $path);
95         $r->add_config($lines, $override, $path, $override_opts);
96
97       Configuration directives are processed as if given in a "<Location>"
98       block.
99
100       obj: $r ( "Apache2::RequestRec object" )
101       arg1: $lines (ARRAY ref)
102           An ARRAY reference containing configuration lines per element,
103           without the new line terminators.
104
105       opt arg2: $override ( "Apache2::Const override constant" )
106           Which allow-override bits are set
107
108           Default value is: "Apache2::Const::OR_AUTHCFG"
109
110       opt arg3: $path ( string )
111           Set the "Apache2::CmdParms object" "path" component.  This is the
112           path of the "<Location>" block. Some directives need this, for
113           example "ProxyPassReverse".
114
115           If an empty string is passed a "NULL" pointer is passed further at
116           C-level.  This is necessary to make something like this work:
117
118             $r->add_config( [
119                              '<Directory />',
120                              'AllowOverride Options AuthConfig',
121                              '</Directory>',
122                             ], ~0, '' );
123
124           Note: "AllowOverride" is valid only in directory context.
125
126           Caution: Some directives need a non-empty path otherwise they cause
127           segfaults. Thus, use the empty path with caution.
128
129           Default value is: "/"
130
131       opt arg4: $override_opts ( "Apache2::Const options constant" )
132           Apache limits the applicable directives in certain situations with
133           "AllowOverride". With Apache 2.2 comes the possibility to enable or
134           disable single options, for example
135
136             AllowOverride AuthConfig Options=ExecCGI,Indexes
137
138           Internally, this directive is parsed into 2 bit fields that are
139           represented by the $override and $override_opts parameters to
140           "add_config".  The above example is parsed into an $override with 2
141           bits set, one for "AuthConfig" the other for "Options" and an
142           $override_opts with 2 bits set for ExecCGI and Indexes.
143
144           When applying other directives, for example "AuthType" or "Options"
145           the appropriate bits in $override must be set. For the "Options"
146           directive additionally $override_opts bits must be set.
147
148           The $override and $override_opts parameters to "add_config" are
149           valid while applying $lines.
150
151           $override_opts is new in Apache 2.2. The mod_perl implementation
152           for Apache 2.0 lets you pass the parameter but ignores it.
153
154           Default for $override_opts is: "Apache2::Const::OPT_UNSET" |
155           "Apache2::Const::OPT_ALL" | "Apache2::Const::OPT_INCNOEXEC" |
156           "Apache2::Const::OPT_SYM_OWNER" | "Apache2::Const::OPT_MULTI"
157
158           That means, all options are allowed.
159
160       ret: no return value
161       since: 2.0.00, $path and $override_opts since 2.0.3
162
163       See also: "$s->add_config"
164
165       For example:
166
167         use Apache2::RequestUtil ();
168         use Apache2::Access ();
169
170         $r->add_config(['require valid-user']);
171
172         # this regards the current AllowOverride setting
173         $r->add_config(['AuthName secret',
174                         'AuthType Basic',
175                         'Options ExecCGI'],
176                        $r->allow_override, $path, $r->allow_override_opts);
177
178   "as_string"
179       Dump the request object as a string
180
181         $dump = $r->as_string();
182
183       obj: $r ( "Apache2::RequestRec object" )
184       ret: $dump ( string )
185       since: 2.0.00
186
187       Dumps various request and response headers (mainly useful for
188       debugging)
189
190   "child_terminate"
191       Terminate the current worker process as soon as the current request is
192       over
193
194         $r->child_terminate();
195
196       obj: $r ( "Apache2::RequestRec object" )
197       ret: no return value
198       since: 2.0.00
199
200       This method is not supported in threaded MPMs
201
202   "default_type"
203       Retrieve the value of the DefaultType directive for the current
204       request. If not set "text/plain" is returned.
205
206         $content_type = $r->default_type();
207
208       obj: $r ( "Apache2::RequestRec object" )
209           The current request
210
211       ret: $content_type ( string )
212           The default type
213
214       since: 2.0.00
215       removed from the "httpd" API in version 2.3.2
216
217   "dir_config"
218       "$r->dir_config()" provides an interface for the per-directory variable
219       specified by the "PerlSetVar" and "PerlAddVar" directives, and also can
220       be manipulated via the "APR::Table" methods.
221
222         $table  = $r->dir_config();
223         $value  = $r->dir_config($key);
224         @values = $r->dir_config->get($key);
225         $r->dir_config($key, $val);
226
227       obj: $r ( "Apache2::RequestRec object" )
228       opt arg2: $key ( string )
229           Key string
230
231       opt arg3: $val ( string )
232           Value string
233
234       ret: ...
235           Depends on the passed arguments, see further discussion
236
237       since: 2.0.00
238
239       The keys are case-insensitive.
240
241         $apr_table = $r->dir_config();
242
243       dir_config() called in a scalar context without the $key argument
244       returns a HASH reference blessed into the "APR::Table" class. This
245       object can be manipulated via the "APR::Table" methods. For available
246       methods see the "APR::Table" manpage.
247
248         $value = $r->dir_config($key);
249
250       If the $key argument is passed in the scalar context only a single
251       value will be returned. Since the table preserves the insertion order,
252       if there is more than one value for the same key, the oldest value
253       assosiated with the desired key is returned. Calling in the scalar
254       context is also much faster, as it'll stop searching the table as soon
255       as the first match happens.
256
257         @values = $r->dir_config->get($key);
258
259       To receive a list of values you must use "get()" method from the
260       "APR::Table" class.
261
262         $r->dir_config($key => $val);
263
264       If the $key and the $val arguments are used, the set() operation will
265       happen: all existing values associated with the key $key (and the key
266       itself) will be deleted and $value will be placed instead.
267
268         $r->dir_config($key => undef);
269
270       If $val is undef the unset() operation will happen: all existing values
271       associated with the key $key (and the key itself) will be deleted.
272
273   "document_root"
274       Retrieve the document root for this server
275
276         $docroot = $r->document_root();
277         $docroot = $r->document_root($new_root);
278
279       obj: $r ( "Apache2::RequestRec object" )
280           The current request
281
282       opt arg1: $new_root
283           Sets the document root to a new value only for the duration of the
284           current request.
285
286           Note the limited functionality under threaded MPMs.
287
288       ret: $docroot ( string )
289           The document root
290
291       since: 2.0.00
292
293   "get_handlers"
294       Returns a reference to a list of handlers enabled for a given phase.
295
296         $handlers_list = $r->get_handlers($hook_name);
297
298       obj: $r ( "Apache2::RequestRec object" )
299       arg1: $hook_name ( string )
300           a string representing the phase to handle (e.g. "PerlLogHandler")
301
302       ret: $handlers_list (ref to an ARRAY of CODE refs)
303           a list of handler subroutines CODE references
304
305       since: 2.0.00
306
307       See also: "$s->add_config"
308
309       For example:
310
311       A list of handlers configured to run at the response phase:
312
313         my @handlers = @{ $r->get_handlers('PerlResponseHandler') || [] };
314
315   "get_limit_req_body"
316       Return the limit on bytes in request msg body
317
318         $limit = $r->get_limit_req_body();
319
320       obj: $r ( "Apache2::RequestRec object" )
321           The current request
322
323       ret: $limit (integer)
324           the maximum number of bytes in the request msg body
325
326       since: 2.0.00
327
328   "get_server_name"
329       Get the current request's server name
330
331         $server = $r->get_server_name();
332
333       obj: $r ( "Apache2::RequestRec object" )
334           The current request
335
336       ret: $server ( string )
337           the server name
338
339       since: 2.0.00
340
341       For example, consruct a hostport string:
342
343         use Apache2::RequestUtil ();
344         my $hostport = join ':', $r->get_server_name, $r->get_server_port;
345
346   "get_server_port"
347       Get the current server port
348
349         $port = $r->get_server_port();
350
351       obj: $r ( "Apache2::RequestRec object" )
352           The current request
353
354       ret: $port ( integer )
355           The server's port number
356
357       since: 2.0.00
358
359       For example, consruct a hostport string:
360
361         use Apache2::RequestUtil ();
362         my $hostport = join ':', $r->get_server_name, $r->get_server_port;
363
364   "get_status_line"
365       Return the "Status-Line" for a given status code (excluding the HTTP-
366       Version field).
367
368         $status_line = Apache2::RequestUtil::get_status_line($status);
369
370       arg1: $status (integer)
371           The HTTP status code
372
373       ret: $status_line ( string )
374           The Status-Line
375
376           If an invalid or unknown status code is passed, "500 Internal
377           Server Error" will be returned.
378
379       since: 2.0.00
380
381       For example:
382
383         use Apache2::RequestUtil ();
384         print Apache2::RequestUtil::get_status_line(400);
385
386       will print:
387
388         400 Bad Request
389
390   "is_initial_req"
391       Determine whether the current request is the main request or a sub-
392       request
393
394         $is_initial = $r->is_initial_req();
395
396       obj: $r ( "Apache2::RequestRec object" )
397           A request or a sub-request object
398
399       ret: $is_initial ( boolean )
400           If true -- it's the main request, otherwise it's a sub-request
401
402       since: 2.0.00
403
404   "is_perl_option_enabled"
405       check whether a directory level "PerlOptions" flag is enabled or not.
406
407         $result = $r->is_perl_option_enabled($flag);
408
409       obj: $r ( "Apache2::RequestRec object" )
410       arg1: $flag ( string )
411       ret: $result ( boolean )
412       since: 2.0.00
413
414       For example to check whether the "SetupEnv" option is enabled for the
415       current request (which can be disabled with "PerlOptions -SetupEnv")
416       and populate the environment variables table if disabled:
417
418         $r->subprocess_env unless $r->is_perl_option_enabled('SetupEnv');
419
420       See also: PerlOptions and the equivalent function for server level
421       PerlOptions flags.
422
423   "location"
424       Get the path of the <Location> section from which the current
425       "Perl*Handler" is being called.
426
427         $location = $r->location();
428
429       obj: $r ( "Apache2::RequestRec object" )
430       ret: $location ( string )
431       since: 2.0.00
432
433   "location_merge"
434       Merge a given "<Location>" container into the current request object:
435
436         $ret = $r->location_merge($location);
437
438       obj: $r ( "Apache2::RequestRec object" )
439       arg1: $location ( string )
440           The argument in a "<Location>" section. For example to merge a
441           container:
442
443             <Location /foo>
444                 ...
445             </Location>
446
447           that argument will be /foo
448
449       ret: $ret ( boolean )
450           a true value if the merge was successful (i.e. the request
451           $location match was found), otherwise false.
452
453       since: 2.0.00
454
455       Useful for insertion of a configuration section into a custom
456       "Apache2::RequestRec" object, created via the
457       "Apache2::RequestRec->new()" method. See for example the Command Server
458       protocol example.
459
460   "new"
461       Create a new "Apache2::RequestRec" object.
462
463         $r = Apache2::RequestRec->new($c);
464         $r = Apache2::RequestRec->new($c, $pool);
465
466       obj: "Apache2::RequestRec" ( "Apache2::RequestRec class name" )
467       arg1: $c ("Apache2::Connection object")
468       opt arg2: $pool
469           If no $pool argument is passed, "$c->pool" is used. That means that
470           the created "Apache2::RequestRec" object will be valid as long as
471           the connection object is valid.
472
473       ret: $r ( "Apache2::RequestRec object" )
474       since: 2.0.00
475
476       It's possible to reuse the HTTP framework features outside the familiar
477       HTTP request cycle. It's possible to write your own full or partial
478       HTTP implementation without needing a running Apache server. You will
479       need the "Apache2::RequestRec" object in order to be able to reuse the
480       rich functionality supplied via this object.
481
482       See for example the Command Server protocol example which reuses HTTP
483       AAA model under non-HTTP protocol.
484
485   "no_cache"
486       Add/remove cache control headers:
487
488         $prev_no_cache = $r->no_cache($boolean);
489
490       obj: $r ( "Apache2::RequestRec object" )
491       arg1: $boolean ( boolean )
492           A true value sets the "no_cache" request record member to a true
493           value and inserts:
494
495             Pragma: no-cache
496             Cache-control: no-cache
497
498           into the response headers, indicating that the data being returned
499           is volatile and the client should not cache it.
500
501           A false value unsets the "no_cache" request record member and the
502           mentioned headers if they were previously set.
503
504       ret: $prev_no_cache ( boolean )
505           Should you care, the "no_cache" request record member value prior
506           to the change is returned.
507
508       since: 2.0.00
509
510       This method should be invoked before any response data has been sent
511       out.
512
513   "pnotes"
514       Share Perl variables between Perl HTTP handlers
515
516         # to share variables by value and not reference, $val should be a lexical.
517         $old_val  = $r->pnotes($key => $val);
518         $val      = $r->pnotes($key);
519         $hash_ref = $r->pnotes();
520
521       Note: sharing variables really means it. The variable is not copied.
522       Only its reference count is incremented. If it is changed after being
523       put in pnotes that change also affects the stored value. The following
524       example illustrates the effect:
525
526         my $v=1;                     my $v=1;
527         $r->pnotes( 'v'=>$v );       $r->pnotes->{v}=$v;
528         $v++;                        $v++;
529         my $x=$r->pnotes('v');       my $x=$r->pnotes->{v};
530
531       In both cases $x is 2 not 1. See also "Apache2::SafePnotes" on CPAN.
532
533       There has been a lot of discussion advocating for pnotes sharing
534       variables by value and not reference.  Sharing by reference can create
535       'spooky action at a distance' effects when the sharing is assumed to
536       share a copy of the value.  Tim Bunce offers the following summary and
537       suggestion for sharing by value.
538
539       What's wrong with this code:
540
541         sub foo {
542             my ($r, $status, $why) = @_;
543             $r->pnotes('foo', ($why) ? "$status:$why" : $status);
544             return;
545         }
546
547       Nothing, except it doesn't work as expected due to this pnotes bug: If
548       the same code is called in a sub-request then the pnote of $r->prev is
549       magically updated at a distance to the same value!
550
551       Try explain why that is to anyone not deeply familar with perl
552       internals!
553
554       The fix is to avoid pnotes taking a ref to the invisible op_targ
555       embededed in the code by passing a simple lexical variable as the
556       actual argument. That can be done in-line like this:
557
558         sub mark_as_internally_redirected {
559             my ($r, $status, $why) = @_;
560             $r->pnotes('foo', my $tmp = (($why) ? "$status:$why" : $status));
561             return;
562         }
563
564       obj: $r ( "Apache2::RequestRec object" )
565       opt arg1: $key ( string )
566           A key value
567
568       opt arg2: $val ( SCALAR )
569           Any scalar value (e.g. a reference to an array)
570
571       ret: (3 different possible values)
572           if both, $key and $val are passed the previous value for $key is
573           returned if such existed, otherwise "undef" is returned.
574
575           if only $key is passed, the current value for the given key is
576           returned.
577
578           if no arguments are passed, a hash reference is returned, which can
579           then be directly accessed without going through the "pnotes()"
580           interface.
581
582       since: 2.0.00
583
584       This method provides functionality similar to
585       ("Apache2::RequestRec::notes"), but values can be any Perl variables.
586       That also means that it can be used only between Perl modules.
587
588       The values get reset automatically at the end of each HTTP request.
589
590       Examples:
591
592       Set a key/value pair:
593
594         $r->pnotes(foo => [1..5]);
595
596       Get the value:
597
598         $val = $r->pnotes("foo");
599
600       $val now contains an array ref containing 5 elements (1..5).
601
602       Now change the existing value:
603
604         $old_val = $r->pnotes(foo => ['a'..'c']);
605         $val = $r->pnotes("foo");
606
607       $old_val now contains an array ref with 5 elements (1..5) and $val
608       contains an array ref with 3 elements 'a', 'b', 'c'.
609
610       Alternatively you can access the hash reference with all pnotes values:
611
612         $pnotes = $r->pnotes;
613
614       Now we can read what's in there for the key foo:
615
616         $val = $pnotes->{foo};
617
618       and as before $val still gives us an array ref with 3 elements 'a',
619       'b', 'c'.
620
621       Now we can add elements to it:
622
623         push @{ $pnotes{foo} }, 'd'..'f';
624
625       and we can try to retrieve them using the hash and non-hash API:
626
627         $val1 = $pnotes{foo};
628         $val2 = $r->pnotes("foo");
629
630       Both $val1 and $val2 contain an array ref with 6 elements (letters 'a'
631       to 'f').
632
633       Finally to reset an entry you could just assign "undef" as a value:
634
635         $r->pnotes(foo => undef);
636
637       but the entry for the key foo still remains with the value "undef". If
638       you really want to completely remove it, use the hash interface:
639
640         delete $r->pnotes->{foo};
641
642   "psignature"
643       Get HTML describing the address and (optionally) admin of the server.
644
645         $sig = $r->psignature($prefix);
646
647       obj: $r ( "Apache2::RequestRec" )
648       arg1: $prefix ( string )
649           Text which is prepended to the return value
650
651       ret: $sig ( string )
652           HTML text describing the server. Note that depending on the value
653           of the "ServerSignature" directive, the function may return the
654           address, including the admin information or nothing at all.
655
656       since: 2.0.00
657
658   "request"
659       Get/set the ( "Apache2::RequestRec object" ) object for the current
660       request.
661
662         $r = Apache2::RequestUtil->request;
663              Apache2::RequestUtil->request($new_r);
664
665       obj: "Apache2" (class name)
666           The Apache class name
667
668       opt arg1: $new_r ( "Apache2::RequestRec object" )
669       ret: $r ( "Apache2::RequestRec object" )
670       since: 2.0.00
671
672       The get-able part of this method is only available if "PerlOptions
673       +GlobalRequest" is in effect or if "Apache2->request($new_r)" was
674       called earlier. So instead of setting "PerlOptions +GlobalRequest", one
675       can set the global request from within the handler.
676
677   "push_handlers"
678       Add one or more handlers to a list of handlers to be called for a given
679       phase.
680
681         $ok = $r->push_handlers($hook_name => \&handler);
682         $ok = $r->push_handlers($hook_name => ['Foo::Bar::handler', \&handler2]);
683
684       obj: $r ( "Apache2::RequestRec object" )
685       arg1: $hook_name ( string )
686           the phase to add the handlers to
687
688       arg2: $handlers ( CODE ref or SUB name or an ARRAY ref )
689           a single handler CODE reference or just a name of the subroutine
690           (fully qualified unless defined in the current package).
691
692           if more than one passed, use a reference to an array of CODE refs
693           and/or subroutine names.
694
695       ret: $ok ( boolean )
696           returns a true value on success, otherwise a false value
697
698       since: 2.0.00
699           See also: "$s->add_config"
700
701           Note that to push input/output filters you have to use
702           "Apache2::Filter" methods: "add_input_filter" and
703           "add_output_filter".
704
705       Examples:
706
707       A single handler:
708
709         $r->push_handlers(PerlResponseHandler => \&handler);
710
711       Multiple handlers:
712
713         $r->push_handlers(PerlFixupHandler => ['Foo::Bar::handler', \&handler2]);
714
715       Anonymous functions:
716
717         $r->push_handlers(PerlLogHandler => sub { return Apache2::Const::OK });
718
719   "set_basic_credentials"
720       Populate the incoming request headers table ("headers_in") with
721       authentication headers for Basic Authorization as if the client has
722       submitted those in first place:
723
724         $r->set_basic_credentials($username, $password);
725
726       obj: $r ( "Apache2::RequestRec object" )
727       arg1: $username ( string )
728       arg2: $password ( string )
729       ret: no return value
730       since: 2.0.00
731
732       See for example the Command Server protocol example which reuses HTTP
733       AAA model under non-HTTP protocol.
734
735   "set_handlers"
736       Set a list of handlers to be called for a given phase. Any previously
737       set handlers are forgotten.
738
739         $ok = $r->set_handlers($hook_name => \&handler);
740         $ok = $r->set_handlers($hook_name => ['Foo::Bar::handler', \&handler2]);
741         $ok = $r->set_handlers($hook_name => []);
742         $ok = $r->set_handlers($hook_name => undef);
743
744       obj: $r ( "Apache2::RequestRec object" )
745       arg1: $hook_name ( string )
746           the phase to set the handlers in
747
748       arg2: $handlers (CODE ref or SUB name or an ARRAY ref)
749           a reference to a single handler CODE reference or just a name of
750           the subroutine (fully qualified unless defined in the current
751           package).
752
753           if more than one passed, use a reference to an array of CODE refs
754           and/or subroutine names.
755
756           if the argument is "undef" or "[]" the list of handlers is reset to
757           zero.
758
759       ret: $ok ( boolean )
760           returns a true value on success, otherwise a false value
761
762       since: 2.0.00
763
764       See also: "$s->add_config"
765
766       Examples:
767
768       A single handler:
769
770         $r->set_handlers(PerlResponseHandler => \&handler);
771
772       Multiple handlers:
773
774         $r->set_handlers(PerlFixupHandler => ['Foo::Bar::handler', \&handler2]);
775
776       Anonymous functions:
777
778         $r->set_handlers(PerlLogHandler => sub { return Apache2::Const::OK });
779
780       Reset any previously set handlers:
781
782         $r->set_handlers(PerlCleanupHandler => []);
783
784       or
785
786         $r->set_handlers(PerlCleanupHandler => undef);
787
788   "slurp_filename"
789       Slurp the contents of "$r->filename":
790
791         $content_ref = $r->slurp_filename($tainted);
792
793       obj: $r ( "Apache2::RequestRec object" )
794       arg1: $tainted (number)
795           If the server is run under the tainting mode ("-T") which we hope
796           you do, by default the returned data is tainted. If an optional
797           $tainted flag is set to zero, the data will be marked as non-
798           tainted.
799
800           Do not set this flag to zero unless you know what you are doing,
801           you may create a security hole in your program if you do. For more
802           information see the perlsec manpage.
803
804           If you wonder why this option is available, it is used internally
805           by the "ModPerl::Registry" handler and friends, because the CGI
806           scripts that it reads are considered safe (you could just as well
807           "require()" them).
808
809       ret: $content_ref ( SCALAR ref )
810           A reference to a string with the contents
811
812       excpt: "APR::Error"
813           Possible error codes could be: "APR::Const::EACCES" (permission
814           problems), "APR::Const::ENOENT" (file not found), and others. For
815           checking such error codes, see the documentation for, for example,
816           "APR::Status::is_EACCES" and "APR::Status::is_ENOENT".
817
818       since: 2.0.00
819
820       Note that if you assign to "$r->filename" you need to update its stat
821       record.
822

See Also

824       mod_perl 2.0 documentation.
825
827       mod_perl 2.0 and its core modules are copyrighted under The Apache
828       Software License, Version 2.0.
829

Authors

831       The mod_perl development team and numerous contributors.
832
833
834
835perl v5.32.0                      2020-07-28docs::api::Apache2::RequestUtil(3)
Impressum