aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/preauth-harness
blob: 0bd0d842079c2fb4c0fca494cfd018a71802df6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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;
er of participants. There is one data point for each release; therefore, the changes in density of marks indicate release frequency.</p> <p>The peak in the earliest part of the graph (before the note "Bad addresses dropped") seems to be an artifact; I was not regularly dropping addresses that became invalid at the time. Turnover on the list seems to be about 5% per month (but that's just my estimate, I don't have numbers on this).</p> <p>The <span class="c3">blue scatter of squares</span> is total participants. The <span class="c4">green scatter of crosses</span> is the count of people on fetchmail-friends after I split the list. The <span class="c5">cyan scatter of diamonds</span> is the population of fetchmail-announce after the split.</p> <p>The <span class="c6">brown scatter of diamonds</span> tracks project size in lines of code (right vertical axis). The scale relationship between this scatter and the other three is arbitrary.</p> <p>This graph is quite revealing. Several trends stand out:</p> <ul> <li> <p>Over time, the project population displays rather consistent linear growth.</p> </li> <li> <p>The key event in the project's lifetime was release 4.3.0 in October 1997, when I declared the code to be out of development and in maintainance mode, and split the fetchmail list.</p> </li> <li> <p>The run-up to 4.3.0 saw the most intensive spate of releases in the project's history (the gap in that run happened when I took a two-week vacation). It was followed by a significant slowdown.</p> </li> <li> <p>After 4.3.0, the developer population remained fairly stable around an average of about 250 participants.</p> </li> <li> <p>Essentially all population growth after 4.3.0 happened on the announce list, among people using fetchmail but not active co-developers.</p> </li> <li> <p>The growth trend in code size looks sublinear, perhaps logarithmic.</p> </li> </ul> <p>The linear growth trend in population is particularly interesting; a priori we might expect geometric or logistic growth, given that the project spreads by word of mouth.</p> <p>It has been suggested that the linear growth rate is the result of a situation in which both number of projects and the population of eligible programmers are rising on trend curves of the same (probably exponential) rate.</p> <hr /> <table width="100%" cellpadding="0" summary="Canned page header"> <tr> <td width="30%" align="right">$Date$</td> </tr> </table> <br clear="left" /> <address>Eric S. Raymond <a href="mailto:esr@thyrsus.com">&lt;esr@thyrsus.com&gt;</a></address> </body> </html>