matts 2003/07/16 01:52:00
Modified: lib AxKit.pm
lib/Apache/AxKit/Language XSP.pm
Log:
Create AxTraceIntermediate dirs
PR: https://rt.cpan.org/Ticket/Display.html?id=2093
Revision Changes Path
1.45 +10 -6 xml-axkit/lib/AxKit.pm
Index: AxKit.pm
===================================================================
RCS file: /home/cvs/xml-axkit/lib/AxKit.pm,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- AxKit.pm 18 Jun 2003 13:30:06 -0000 1.44
+++ AxKit.pm 16 Jul 2003 08:52:00 -0000 1.45
@@ -23,7 +23,7 @@
Apache::AxKit::CharsetConv::raise_error(1);
BEGIN {
- $VERSION = "1.6_02";
+ $VERSION = "1.61_90";
if ($ENV{MOD_PERL}) {
$AxKit::ServerString = "AxKit/$VERSION";
@AxKit::ISA = qw(DynaLoader);
@@ -489,11 +489,11 @@
my $apache = AxKit::Apache->request;
my $r;
- if ($uri =~ m|^axkit:(/.*)$|) {
+ if ($uri =~ /^axkit:(\/.*)$/) {
my $blurb = $1;
# got "axkit:/..."
# first check if it's actually "axkit://host[:port]/..."
- if ($blurb =~ m|^//(?:([\w\.-]+)(:\d+)?)?(/.*)$|) {
+ if ($blurb =~ /^\/\/(?:([\w\.-]+)(:\d+)?)?(\/.*)$/) {
my $host = $1;
my $port = $2;
my $abs_uri = $3;
@@ -687,12 +687,11 @@
my $interm_prefix;
my $interm_count = 0;
- if ($AxKit::Cfg->TraceIntermediate) {
+ if (my $ti = $AxKit::Cfg->TraceIntermediate) {
my $id = $r->notes('AxRequestID');
$interm_prefix = ($id?$id:$r->uri);
$interm_prefix =~ s{%}{%25}g;
$interm_prefix =~ s{/}{%2f}g;
- my $ti = $AxKit::Cfg->TraceIntermediate;
if (defined $id) {
$interm_prefix =
substr($interm_prefix,-1).'/'.substr($interm_prefix,-3,2).'/'.substr($interm_prefix,0,-3).'/';
mkdir($ti.'/'.substr($interm_prefix,0,1),0777);
@@ -705,6 +704,11 @@
$interm_prefix = $ti.'/'.$interm_prefix;
if ($interm_prefix) {
+ if (!-d $ti) {
+ if (!mkdir($ti, 0777)) {
+ AxKit::Debug(1, "Can't create AxTraceIntermediate
directory '$ti': $!");
+ }
+ }
my $fh = Apache->gensym();
if (open($fh, ">".$interm_prefix.$interm_count)) {
print $fh ${$provider->get_strref};
1.44 +8 -3 xml-axkit/lib/Apache/AxKit/Language/XSP.pm
Index: XSP.pm
===================================================================
RCS file: /home/cvs/xml-axkit/lib/Apache/AxKit/Language/XSP.pm,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -r1.43 -r1.44
--- XSP.pm 16 Jul 2003 08:33:14 -0000 1.43
+++ XSP.pm 16 Jul 2003 08:52:00 -0000 1.44
@@ -132,12 +132,17 @@
} if $AxKit::Cfg->DebugTidy;
AxKit::Debug(1,"AxDebugTidy unavailable for Perl code: $@") if $@;
- if ($AxKit::Cfg->TraceIntermediate) {
+ if (my $ti = $AxKit::Cfg->TraceIntermediate) {
my $interm_prefix = $r->uri;
$interm_prefix =~ s{%}{%25}g;
$interm_prefix =~ s{/}{%2f}g;
$interm_prefix =~ s/[^0-9a-zA-Z.,_|-]/_/g;
- $interm_prefix =
$AxKit::Cfg->TraceIntermediate.'/'.$interm_prefix;
+ $interm_prefix = $ti.'/'.$interm_prefix;
+ if (!-d $ti) {
+ if (!mkdir($ti, 0777)) {
+ AxKit::Debug(1, "Can't create AxTraceIntermediate
directory '$ti': $!");
+ }
+ }
my $fh = Apache->gensym();
# this is duplicated work: the cache has it as well, but with a
# different filename and hard to find.