I've finally solved a problem which I've had for a long time which may
be of interest.

I know some people looked at it for me at the time, including Randy
Kobes.

The problem was that the following script did not correctly execute it's
system() call. The ip.txt file was never written and the status was set
to 256. Running under CGI the file was written and the status was 0.
(The problem never occurred if STDOUT from the ipconfig program is not
re-directed to a file.)

    $| = 1;
    $pg  = "Content-Type: text/plain\n\n";
    $status = system "D:\\WINNT\\system32\\ipconfig.exe >
D:\\Temp\\ip.txt";
    $pg .= "The system call exited with status $status.\n";
    print $pg;

I've found that since re-building everything with the inclusion of
mod_ssl (2.6.5) the problem goes away!  I kept everything else the same
(Perl 5.6.0, Apache 1.3.12, mod_perl 1.24 on NT4 SP6).

I wonder if this is anything to do with the EAPI (extended API) which
mod_ssl patches the Apache core code with, since I don't actually need
to *use* mod_ssl, just build with it - i.e. I don't even need to have a
"LoadModule ssl_module modules/ApacheModuleSSL.dll" line in my
httpd.conf file!

It could also explain why other people were unable to re-produce my
problem.

Randy:  I think you looked at this for me around the beginning of April
and couldn't re-produce it.  Do you think you had mod_ssl included in
your build?

Does this have any other implications for mod_perl???  Does mod_perl
need the EAPI like mod_ssl does (at least on Win32)???

Steve Hay


Reply via email to