diff options
Diffstat (limited to 'contrib/preauth-harness')
-rwxr-xr-x | contrib/preauth-harness | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/contrib/preauth-harness b/contrib/preauth-harness new file mode 100755 index 00000000..0bd0d842 --- /dev/null +++ b/contrib/preauth-harness @@ -0,0 +1,53 @@ +#!/usr/bin/perl + +BEGIN { $SIG{'__WARN__'} = sub {};}; + +$hostname = "criens.u-psud.fr"; +$username = "p99dreyf"; +$passwd = "xxxxxxxx"; +$command = "exec ~/bin/imapd"; + +use Net::Telnet (); +$host = new Net::Telnet (Timeout => 10, + Port => 23, + Prompt => '/p99dreyf>\s?$/', + Cmd_remove_mode => 1); + +$host->option_accept(Dont => &Net::Telnet::TELOPT_ECHO, + Wont => &Net::Telnet::TELOPT_ECHO); + open (FILE,">log"); +$host->dump_log("log2"); +$host->input_log("log3"); +## Issue some commands. +$host->open($hostname); +#$host->login($username, $passwd); +$host->waitfor('/login:\s?$/'); +$host->print("$username"); +$host->waitfor('/Password:\s?$/'); +$host->print("$passwd"); +$host->waitfor('/p99dreyf>\s?$/'); + +$host->print("$command"); +$strip=1; +while ($strip) { + $greeting=$host->getline(); + if ($greeting=~/^\* PREAUTH.*$/) { print "$greeting"; $strip=0;}; +} + do { + do { + $cmd=<STDIN>; + chop $cmd; + } while ($cmd !~/[A-Za-z0-9]/); + $host->print("$cmd"); + print FILE ">>$cmd<<\n"; + do { + $line=$host->getline(); + chop($line); + print "$line\n"; + print FILE "<<$line<<\n"; + } while (($line!~/^[A-Za-z0-9]+ (OK|BAD|Expunge).*$/) && + ($line!~/^\* BAD.*$/)); + print FILE "--next cmd\n"; + } while ($line!~/^[A-Za-z0-9]+ OK LOGOUT.*$/); + +exit; |