Author: dylan
Date: 2004-12-17 00:17:37 -0500 (Fri, 17 Dec 2004)
New Revision: 427

Added:
   trunk/main/server/lib/Haver/Server/Events.pm
   trunk/main/server/lib/Haver/Server/Events/
   trunk/main/server/lib/Haver/Server/Events/Login.pm
Removed:
   trunk/main/server/lib/Haver/Server/Event.pm
   trunk/main/server/lib/Haver/Server/Event/
   trunk/main/server/lib/Haver/Server/Events/Login.pm
Log:
There we go. Thank god svn has a rename command. :)


Deleted: trunk/main/server/lib/Haver/Server/Event.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Event.pm 2004-12-17 05:16:52 UTC (rev 
426)
+++ trunk/main/server/lib/Haver/Server/Event.pm 2004-12-17 05:17:37 UTC (rev 
427)
@@ -1,42 +0,0 @@
-# vim: set ft=perl ts=4 sw=4:
-# Haver::Server::Event - Base class for 
-# 
-# Copyright (C) 2004 Dylan William Hardison.
-# 
-# This module is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This module is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this module; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-package Haver::Server::Event;
-use strict;
-use warnings;
-
-our $VERSION = '0.01';
-
-sub new {
-    my $me = shift->SUPER::new(@_);
-
-       if (ref($me) eq __PACKAGE__) {
-               croak __PACKAGE__ . " is a virtual base class!";
-       }
-}
-
-sub setup {
-       my $me = shift;
-
-    $me->provide_prefix('on_', $me->states);
-       $me->provide_prefix_both('evt_', $me->events);
-}
-
-
-
-1;

Copied: trunk/main/server/lib/Haver/Server/Events (from rev 424, 
trunk/main/server/lib/Haver/Server/Event)

Deleted: trunk/main/server/lib/Haver/Server/Events/Login.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Event/Login.pm   2004-12-17 05:06:23 UTC 
(rev 424)
+++ trunk/main/server/lib/Haver/Server/Events/Login.pm  2004-12-17 05:17:37 UTC 
(rev 427)
@@ -1,214 +0,0 @@
-# vim: set ft=perl ts=4 sw=4:
-# Commands::Basic - description
-# 
-# Copyright (C) 2004 Dylan William Hardison.
-# 
-# This module is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This module is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this module; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-package Haver::Server::Commands::Connection;
-use strict;
-use warnings;
-
-use Haver::Formats qw( :duration   );
-use Digest::SHA1   qw( sha1_base64 );
-use Haver::Server::Registry qw( $Registry );
-use base 'Haver::Server::Commands';
-
-our $VERSION = '0.01';
-
-sub states {
-       qw(
-               want
-               accept
-               auth
-               unknown_cmd
-               init
-               timeout
-       );
-}
-
-sub commands {
-       qw(
-               HAVER
-               IDENT
-               CANT
-               AUTH
-               AUTH:PASS
-       );
-}
-
-sub cmd_HAVER {
-       my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
-       my $client = $args->[0];
-       
-       if (exists $me->{version}) {
-               $kernel->yield('oops', 'repeat', ['HAVER']);
-               return;
-       }
-       
-       eval {
-               $heap->{client}->put(['HAVER', 
"Haver::Server/$Haver::Server::VERSION"]);
-       };
-       $me->{version} = $client;
-       $kernel->yield('want', 'IDENT');
-}
-
-sub cmd_IDENT {
-       my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
-       my ($id, $ns) = @$args;
-
-       $ns ||= 'user';
-
-       # This may only be called once.
-       if ($me->{did}{IDENT}++) {
-               $kernel->yield('oops', "repeat", ['IDENT']);
-               return;
-       }
-       
-       # We don't support other types of clients right now.
-       if ($ns ne 'user') {
-               $kernel->yield('fail', 'IDENT', 'unsupported.ns', [$ns]);
-               $kernel->yield('want', 'IDENT');
-               return;
-       }
-       
-       # Make sure it's a valid id.
-       if (not Haver::Server::Object->is_valid_id($id)) {
-               $kernel->yield('fail', 'IDENT', 'syntax.id', [$id]);
-               $kernel->yield('want', 'IDENT');
-               return;         
-       }
-
-       # users arn't allowed to have names that begin with
-       # & or @ in them.
-       if ($ns eq 'user' and ($id =~ /^&/ or $id =~ /@/)) {
-               $kernel->yield('fail', 'IDENT', 'reserved.id', [$id]);
-               $kernel->yield('want', 'IDENT');
-               return;
-       }
-
-       # Check if we already have a user by that name.
-       if ($Registry->contains('user', $id)) {
-               $kernel->yield('fail', 'IDENT', 'used.id', [$id]);
-               $kernel->yield('want', 'IDENT');
-               return;
-       }
-       
-       my $user = new Haver::Server::Object::User (
-               id    => $id,
-               wheel => $heap->{client},
-               sid   => $_[SESSION]->ID,
-       );
-       $user->set (
-               Client => $heap->{version},
-               Rank   => 0,
-               Role   => 'User',
-               _info  => [qw( Rank Role Client IP Login Idle )],
-       );
-
-       $kernel->yield('accept', $id, $user);
-}
-
-sub cmd_AUTH {
-       my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
-       my $method = $args->[0];
-
-       if ($me->{did}{AUTH}++) {
-               $kernel->yield('oops', 'repeat', ['AUTH']);
-               return;
-       }
-       
-       if ($method eq 'PASS') {
-               $kernel->yield('want', 'AUTH:PASS');
-       } else {
-               $kernel->yield('fail', 'AUTH', 'unknown.method', [$method]);
-               $kernel->yield('want', 'IDENT');
-       }       
-}
-
-sub cmd_AUTH_PASS {
-       my ($me, $kernel, $heap, $args) = @_[OBJECT, KERNEL, HEAP, ARG0];
-       my ($pass) = @$args;
-       my $user   = delete $heap->{user};
-       my $id     = delete $heap->{uid};
-
-       if ($heap->{did}{'AUTH:PASS'}++) {
-               $kernel->yield('oops', 'repeat', ['AUTH:PASS']);
-               return;
-       }
-       
-       if ($pass eq $user->get('.password')) {
-               $kernel->yield('accept');
-       } else {
-               $kernel->yield('fail', 'AUTH:PASS', 'nomatch.passhash', []);
-               $kernel->yield('bye', 'monkeys');
-       }
-}
-
-#-------------------------------- Events 
--------------------------------------#
-
-sub on_init {
-       my ($me, $kernel, $heap) = @_[OBJECT, KERNEL, HEAP];
-
-       $me->{timeout} = $kernel->alarm_set('timeout', time + (60 * 3));
-}
-
-sub on_timeout {
-       my ($kernel, $heap) = @_[KERNEL, HEAP];
-
-       delete $heap->{client};
-       $kernel->yield('shutdown');
-}
-
-sub on_want {
-       my ($kernel, $heap, $want) = @_[KERNEL, HEAP, ARG0];
-
-       delete $me->{did}{$want};
-       $heap->{client}->put(['WANT', $want]);  
-}
-
-sub since {
-       my ($then, $now) = @_;
-       
-       $now ||= time;
-       format_duration($now - $then);
-}
-
-sub on_accept {
-       my ($me, $kernel, $heap, $uid, $user) = @_[OBJECT, KERNEL, HEAP, ARG0, 
ARG1];
-
-       $kernel->alarm_remove(delete $me->{timeout});
-
-       $Registry->add($user);
-       my $addr       = join('.', (split(/\./, $heap->{address}))[0,1,2]) . 
'.*';
-       my $login_time = time;
-       
-       $user->set(
-               IP        => $addr,
-               Login     => sub {
-                       since($login_time);
-               },
-               _lastmsg => $login_time,
-               Idle      => sub {
-                       my ($u) = @_;
-                       since($u->get('_lastmsg'));
-               },
-               '.IP'     => $heap->{address},
-       );
-
-       $kernel->call($_[SESSION], 'ready', $uid, $user);
-       $heap->{client}->put(['ACCEPT', $uid]);
-}
-
-1;

Copied: trunk/main/server/lib/Haver/Server/Events/Login.pm (from rev 426, 
trunk/main/server/lib/Haver/Server/Event/Login.pm)

Copied: trunk/main/server/lib/Haver/Server/Events.pm (from rev 426, 
trunk/main/server/lib/Haver/Server/Event.pm)
===================================================================
--- trunk/main/server/lib/Haver/Server/Event.pm 2004-12-17 05:16:52 UTC (rev 
426)
+++ trunk/main/server/lib/Haver/Server/Events.pm        2004-12-17 05:17:37 UTC 
(rev 427)
@@ -0,0 +1,42 @@
+# vim: set ft=perl ts=4 sw=4:
+# Haver::Server::Event - Base class for 
+# 
+# Copyright (C) 2004 Dylan William Hardison.
+# 
+# This module is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This module is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this module; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+package Haver::Server::Events;
+use strict;
+use warnings;
+
+our $VERSION = '0.01';
+
+sub new {
+    my $me = shift->SUPER::new(@_);
+
+       if (ref($me) eq __PACKAGE__) {
+               croak __PACKAGE__ . " is a virtual base class!";
+       }
+}
+
+sub setup {
+       my $me = shift;
+
+    $me->provide_prefix('on_', $me->states);
+       $me->provide_prefix_both('evt_', $me->events);
+}
+
+
+
+1;


Reply via email to