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.