aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/preauth-harness
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/preauth-harness')
-rwxr-xr-xcontrib/preauth-harness53
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;