Stoppt die Vorratsdatenspeicherung! Jetzt klicken & handeln!Willst du auch bei der Aktion teilnehmen? Hier findest du alle relevanten Infos und Materialien:

srvDDate - Was ist das?



srvDDate ist nur ein gaaanz kleiner Socket::IO-Dienst, der bei einem telnet auf den angegebenen Port das aktuelle Datum, hübsch formatiert, ausgibt. Das ganze ist in perl geschrieben und absolut Alpha.

ToDo



  • Besser Code / Code-ReView
  • Feiertage
  • Bunt

Quellcode



#!/usr/bin/env perl


# a small service for providing the correct date

use IO::Socket; #we need it for the socket of course
use Date::Discordian; #Discordian date

my $name = "ddatesrv";
my $ver = "0.01";
my $port = 2323;

my $listen = IO::Socket::INET->new(
        Proto   => 'tcp',
        LocalPort => $port,
        Listen    => SOMAXCONN
        );

while (1) {
    $ddate = discordian(time);
    $ddate =~ s/\,//;
    @disco = split(/ /, $ddate);
    next unless my $conn = $listen->accept();
    my $child =fork;
    if ($child == 0) {
        handle_conn($conn);
    }
}

sub handle_conn {
    my $sock = shift;
    $wday = sprintf('%-40s', "Weekday: @disco[0]");
    $day = sprintf('%-40s', "Day: @disco[2] in epoch of @disco[1]");
    $year =  sprintf('%-40s', "In the year @disco[4] @disco[3]");
    binmode $sock;
    $sock->send("\n  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  | $wday |\n  | $day |\n  | $year |\n  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n         Hail Eris! All Hail Discordia\n\n" );
    close($sock);
    exit(0);
}