Hi Everyone,

I've been bashing my head over this problems for the last couple of
days, so I thought I'd post and see if anybody has experienced something
similiar, and what they've done to solve it.

Basically, I have an Apache::Registry script that creates an expect
script, then executes it and reads its output.  This script works just
fine from the command line.  The CGI runs fine when called from Netscape
(Linux or Windows).  However... when the CGI is called by Internet
Explorer, it hangs the CGI.  I've tried lots of different things, but
I'm still not sure whether mod_perl, the expect script, or my code is to
blame.  I have pored through the guide, the mailing list archives, man
pages, and google, but didn't find anything related to this problem.

The relevant part of the process list when the expect/cgi script hangs:

14597 ?        S      0:32 /usr/local/apache/bin/httpd -DSSL
26476 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26499 ?        S      0:00  |   \_ /usr/bin/expect
/tmp/file6rqoCY.expect
26500 ttyp9    S      0:00  |       \_ /usr/bin/expect
/tmp/file6rqoCY.expect
26501 ttyp9    S      0:00  |           \_ sh -c /bin/stty sane <
/dev/ttyp9
26502 ttyp9    S      0:00  |               \_ /bin/stty sane
26478 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26479 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26482 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26483 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26484 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26485 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26521 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26529 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26531 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL
26584 ?        S      0:00  \_ /usr/local/apache/bin/httpd -DSSL

The expect script: (called with /usr/bin/expect /tmp/file6rqoCY.expect)

spawn /usr/bin/openssl smime -sign -in /tmp/fileicFBlw -signer
verisign.pem -to [EMAIL PROTECTED] -from [EMAIL PROTECTED] -subject "Testing
openssl"
expect "phrase:"
send "thepassphrase\r\n"
expect


to get the output of this, I have code that looks like this:

open (EXPECT, "/usr/bin/expect /tmp/file6rqoCY.expect < /dev/null |")
|| die $!;
while (my ($line) = (<EXPECT>)) {
    print "got: $line";
}
close (EXPECT);

As far as I can tell, the CGI (when called by IE) hangs when getting
input.  It appears to be trying to get input from /dev/ttypX, which of
course won't work because it is running in an Apache environment.

Is there a way to force the TTY to /dev/null?

Thanks,

Wim Kerkhoff, Software Engineer
Merilus Technologies, Inc.
[EMAIL PROTECTED]

Reply via email to