Author: dylan
Date: 2005-05-10 04:17:09 -0400 (Tue, 10 May 2005)
New Revision: 682

Modified:
   trunk/
   trunk/main/server/lib/Haver/Server/Listener.pm
   trunk/main/server/lib/Haver/Server/Talker.pm
Log:
 [EMAIL PROTECTED]:  dylan | 2005-05-10 04:16:17 -0400
 More fixes to the new name. Logging improved.
 BYE works. Nothing else does. :-D



Property changes on: trunk
___________________________________________________________________
Name: svk:merge
   - 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:955
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238
   + 1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk:11166
1f59643a-e6e5-0310-bc24-f7d4c744f460:/haver/local/trunk-merge-10131:11178
27e50396-46e3-0310-8b22-ae223a1f35ce:/local:212
e9404bb1-7af0-0310-a7ff-e22194cd388b:/haver/local:956
edfcd8bd-4ce7-0310-a97e-bb1efd40edf3:/local:238

Modified: trunk/main/server/lib/Haver/Server/Listener.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Listener.pm      2005-05-10 08:17:06 UTC 
(rev 681)
+++ trunk/main/server/lib/Haver/Server/Listener.pm      2005-05-10 08:17:09 UTC 
(rev 682)
@@ -3,7 +3,7 @@
 use warnings;
 
 use Haver::Base::Session -base;
-use Haver::Server::Speaker;
+use Haver::Server::Talker;
 use POE::Wheel::SocketFactory;
 
 our $VERSION = '0.02';
@@ -43,10 +43,8 @@
 
        if ($type eq 'create' or $type eq 'gain') {
                $heap->{children}{$kid->ID} = 1;
-               Log('debug', "New speaker session: ", $kid->ID);
        } elsif ($type eq 'lose') {
                delete $heap->{children}{$kid->ID};
-               Log('debug', "Lost speaker session: ", $kid->ID);
        } else {
                die "I don't know how I got here!\n";
        }
@@ -72,7 +70,7 @@
        @_[KERNEL, HEAP, ARG0, ARG1, ARG2, ARG3];
        
        Log('Socket birth.');
-       create Haver::Server::Speaker (
+       create Haver::Server::Talker (
                sock    => $socket,
                address => Socket::inet_ntoa($address),
                port    => $port,

Modified: trunk/main/server/lib/Haver/Server/Talker.pm
===================================================================
--- trunk/main/server/lib/Haver/Server/Talker.pm        2005-05-10 08:17:06 UTC 
(rev 681)
+++ trunk/main/server/lib/Haver/Server/Talker.pm        2005-05-10 08:17:09 UTC 
(rev 682)
@@ -1,4 +1,4 @@
-package Haver::Server::Speaker;
+package Haver::Server::Talker;
 use Haver::Base::Session -base;
 use strict;
 use warnings;
@@ -12,13 +12,15 @@
        _start _stop
        input error flush
        shutdown
+
+       msg_BYE
 );
 
 sub _start {
        my ($heap, $session, $kernel, $opt) = @_[ HEAP,  SESSION,  KERNEL, 
ARG0];
        my ($address, $socket, $port) = ($opt->{address}, delete $opt->{sock}, 
$opt->{port});
        
-       Log('notice', "Connection from $address:$port");
+       Log('notice', "Talker for $address:$port starts");
        binmode $socket, ":utf8";
        my $client = new POE::Wheel::ReadWrite(
                Handle       => $socket,
@@ -40,7 +42,7 @@
        my ($kernel, $heap, $session) = @_[KERNEL, HEAP, SESSION];
 
        my ($address, $port) = @$heap{qw(address port)};
-       $kernel->call('Logger', 'note', "Lost connection from 
${address}:$port");
+       Log('notice', "Talker for ${address}:$port stops");
 }
 
 
@@ -59,6 +61,10 @@
        $kernel->yield($event, $args, $cmd);
 }
 
+sub msg_BYE {
+       $_[KERNEL]->yield('shutdown', 'bye');
+}
+
 sub flush {
        my ($kernel, $heap) = @_[KERNEL, HEAP];
 
@@ -71,10 +77,14 @@
 sub error {
        my ($kernel, $heap, $operation, $errnum, $errstr) = @_[KERNEL, HEAP, 
ARG0..ARG3];
        
-       Log('error',
-               "Socket generated $operation error ${errnum}: $errstr");
-
-       $kernel->yield('shutdown', 'DISCON');
+       if ($errnum == 0) {
+               $kernel->yield('shutdown', 'closed');
+       } else {
+               Log('error',
+                       "Talker for $heap->{address}:$heap->{port}: ",
+                       "Socket generated $operation error ${errnum}: $errstr");
+               $kernel->yield('shutdown', 'error');
+       }
 }
 
 
@@ -82,7 +92,7 @@
        my ($kernel, $heap, $session, @args) = @_[KERNEL, HEAP, SESSION, ARG0 
.. $#_];
        return if $heap->{shutdown};
 
-       Log('info', 'Shutting down client session');
+       Log('info', "Shutting down talker for $heap->{address}:$heap->{port} 
(@args)");
        eval { $heap->{client}->put(['BYE', @args]) };
        $heap->{shutdown} = 1;
        $kernel->alarm_remove_all();


Reply via email to