Ben Boulanger wrote:
A little more on this.. The error message in the apache error_log is:
        Bad method or uri at /var/www/html/drivetool/index.cgi line 81

Line 80-82 in my script is:
$mdclstr->write_request(
       GET => "/MediaCtrl/cgi-bin/Shell.pl\?Command=seamfg\%20-dk$drive",
              'User-Agent' => "Mozilla/4.0",
);

Have you determined the source of your problem?

A good first step in debugging something like this is to determine where
the error message is coming from. It appears to be from this code in
Net::HTTP::Methods:

sub format_request {
    my $self = shift;
    my $method = shift;
    my $uri = shift;

    my $content = (@_ % 2) ? pop : "";

    for ($method, $uri) {
        require Carp;
        Carp::croak("Bad method or uri") if /\s/ || !length;
    }
[...]

(write_request() is a wrapper around format_request().)


Initially I thought "GET" might be getting confused with GET() from HTTP::Request::Common, but that shouldn't happen. (The "fat comma" (=>) forces the left argument to be treated as a quoted string.)


Take a look at the validation test format_request() is doing. The author used /\s/ rather than /^\s*$/, which is perhaps a mistake. (Although not recommended, a space can be valid in a URL.)

How is $drive being set? Could it be set to something containing a space under certain circumstances? Is it derived from an HTML form parameter that you are getting from the browser? That might explain the correlation you are seeing with this bug and IE.

 -Tom
_______________________________________________
Boston-pm mailing list
[EMAIL PROTECTED]
http://mail.pm.org/mailman/listinfo/boston-pm

Reply via email to