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();