]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Kernel.pl
take a few more things literally
[infobot.git] / src / Modules / Kernel.pl
index 34cca2fabb1cc4c38a1af87f1fe1686cb54a5d6a..2b0ba90fac227275f8e032829af47cae066c5751 100644 (file)
@@ -7,63 +7,34 @@
 
 package Kernel;
 
-use IO::Socket;
-use strict;
-
-### TODO: change this to http instead of finger?
-my $server     = "ftp.kernel.org";
-my $port       =  79;
-my $proto      = getprotobyname('tcp');
-
-###local $SIG{ALRM} = sub { die "alarm\n" };
-
 sub kernelGetInfo {
-###    return unless &::loadPerlModule("IO::Socket");
-
-    my $socket    = new IO::Socket;
-
-    socket($socket, PF_INET, SOCK_STREAM, $proto) or return "error: socket: $!";
-    eval {
-       alarm 15;
-       connect($socket, sockaddr_in($port, inet_aton($server))) or return "error: connect: $!";
-       alarm 0;
-    };
-
-    my @retval;
-
-    if ($@ && $@ ne "alarm\n") {               # failed.
-       return;
-    }
-
-    $socket->autoflush(1);     # required.
-
-    print $socket "\n";
-    while (<$socket>) {
-       chop;
-
-       s/\t//g;
-       s/\s$//;
-       s/\s+/ /g;
-
-       next if ($_ eq "");
-
-       push(@retval, $_);
-    }
-    close $socket;
-
-    @retval;
+    return &::getURL("http://www.kernel.org/kdist/finger_banner");
 }
 
 sub Kernel {
+    my $retval = 'Linux kernel versions';
     my @now = &kernelGetInfo();
     if (!scalar @now) {
        &::msg($::who, "failed.");
        return;
     }
 
-    foreach (@now) {
-       &::msg($::who, $_);
+    foreach $line (@now) {
+       $line =~ s/The latest //;
+       $line =~ s/version //;
+       $line =~ s/of //;
+       $line =~ s/the //;
+       $line =~ s/Linux //;
+       $line =~ s/kernel //;
+       $line =~ s/tree //;
+       $line =~ s/ for stable//;
+       $line =~ s/ to stable kernels//;
+       $line =~ s/ for 2.4//;
+       $line =~ s/ for 2.2//;
+       $line =~ s/ is: */: /;
+       $retval .= ', ' . $line;
     }
+    &::performStrictReply($retval);
 }
 
 sub kernelAnnounce {
@@ -72,7 +43,7 @@ sub kernelAnnounce {
     my @old;
 
     if (!scalar @now) {
-       &::DEBUG("kA: failure to retrieve.");
+       &::DEBUG('kA: failure to retrieve.');
        return;
     }