6

June
2003

12:57 pm

Search solution?

I brought up an ssh window, thinking on a hunch to try running mt-search.cgi from the command line; a couple days ago I did that, piping the output to a file, to see how far it got. This time, I got real error messages from Search.pm, an uninitialized variable, and three line numbers where this occured.

There were several variables to choose from, and a bit of experimentation showed that $ip was the one with the problem. On a hunch, I commented out the entire if statement (it's the one that checks to see if there's already a search in progress from that ip address) and now Search appears to work just fine.

The entire statement is:

#    if (eval { require DB_File; 1 }) {
#        my $file = File::Spec->catfile($cfg->TempDir, 'mt-throttle.db');
#        my $DB = tie my %db, 'DB_File', $file;
#        if ($DB) {
#            my $ip = $app->remote_ip;
#            if (my $time = $db{$ip}) {
#                if ($time > time - 60) {   ## Within the last minute.
#                    return $app->error($app->translate(
#                        "You are currently performing a search. Please wait " .
#                        "until your search is completed."));
#                }
#            }      
#            $db{$ip} = time;
#            undef $DB;
#            untie %db;
#            $app->{__have_throttle} = 1;
#        }
#    }

and the trouble seems to be in the line:

my $ip = $app->remote_ip;

apparently, on this server, calling $app->remote_ip returns nada. Beyond that, I haven't a clue.

tagged: | 1 Comment
--

One Comment

  1. pericat
    posted June 7, 2003 at 12:49 pm

    Quickie followup: posted a rundown to the bug reports section of MT’s forum. I doubt it’s a real bug bug, but it’s certainly an oddity.