Thread: [poe-commits] SF.net SVN: poe: [1941] trunk/poe/lib/POE/Component/Client/TCP.pm
Brought to you by:
rcaputo
From: <ap...@us...> - 2006-04-29 17:27:19
|
Revision: 1941 Author: apocal Date: 2006-04-29 10:27:08 -0700 (Sat, 29 Apr 2006) ViewCVS: http://svn.sourceforge.net/poe/?rev=1941&view=rev Log Message: ----------- #18665: PoCo::Client::TCP sometimes doesn't send Disconnected callback The reasoning is sane, and the code's updated to send it in the special case Modified Paths: -------------- trunk/poe/lib/POE/Component/Client/TCP.pm Modified: trunk/poe/lib/POE/Component/Client/TCP.pm =================================================================== --- trunk/poe/lib/POE/Component/Client/TCP.pm 2006-04-24 02:42:14 UTC (rev 1940) +++ trunk/poe/lib/POE/Component/Client/TCP.pm 2006-04-29 17:27:08 UTC (rev 1941) @@ -245,7 +245,10 @@ got_server_flush => sub { my $heap = $_[HEAP]; $flush_callback->(@_); - delete $heap->{server} if $heap->{shutdown}; + if ($heap->{shutdown}) { + delete $heap->{server}; + $disc_callback->(@_); + } }, shutdown => sub { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <im...@us...> - 2006-05-15 03:17:27
|
Revision: 1957 Author: immute Date: 2006-05-14 20:17:21 -0700 (Sun, 14 May 2006) ViewCVS: http://svn.sourceforge.net/poe/?rev=1957&view=rev Log Message: ----------- Updated the filter mechanism. This addresses rt19106. Modified Paths: -------------- trunk/poe/lib/POE/Component/Client/TCP.pm Modified: trunk/poe/lib/POE/Component/Client/TCP.pm =================================================================== --- trunk/poe/lib/POE/Component/Client/TCP.pm 2006-05-15 03:05:54 UTC (rev 1956) +++ trunk/poe/lib/POE/Component/Client/TCP.pm 2006-05-15 03:17:21 UTC (rev 1957) @@ -114,19 +114,6 @@ $address = '127.0.0.1' unless defined $address; - my @filter_args; - if (ref $filter eq 'ARRAY') { - @filter_args = @$filter; - $filter = shift @filter_args; - $filter = $filter->new(@filter_args); - } elsif (ref $filter) { - $filter = $filter->clone(); - } elsif (!defined($filter)) { - $filter = POE::Filter::Line->new(); - } else { - $filter = $filter->new(); - } - $conn_error_callback = \&_default_error unless defined $conn_error_callback; $error_callback = \&_default_io_error unless defined $error_callback; @@ -198,7 +185,7 @@ $_[HEAP]->{server} = POE::Wheel::ReadWrite->new ( Handle => $socket, Driver => POE::Driver::SysRW->new(), - Filter => $filter, + Filter => _get_filter($filter), InputEvent => 'got_server_input', ErrorEvent => 'got_server_error', FlushedEvent => 'got_server_flush', @@ -289,6 +276,21 @@ ); } +sub _get_filter { + my $filter = shift; + if (ref $filter eq 'ARRAY') { + my @filter_args = @$filter; + $filter = shift @filter_args; + return $filter->new(@filter_args); + } elsif (ref $filter) { + return $filter->clone(); + } elsif (!defined($filter)) { + return POE::Filter::Line->new(); + } else { + return $filter->new(); + } +} + # The default error handler logs to STDERR and shuts down the socket. sub _default_error { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bs...@us...> - 2006-08-21 09:44:04
|
Revision: 2060 Author: bsmith Date: 2006-08-21 02:43:46 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/poe/?rev=2060&view=rev Log Message: ----------- Fixed a typo in an error message and gave the $foo variable the name $using_watermarks. Modified Paths: -------------- trunk/poe/lib/POE/Component/Client/TCP.pm Modified: trunk/poe/lib/POE/Component/Client/TCP.pm =================================================================== --- trunk/poe/lib/POE/Component/Client/TCP.pm 2006-08-21 06:28:01 UTC (rev 2059) +++ trunk/poe/lib/POE/Component/Client/TCP.pm 2006-08-21 09:43:46 UTC (rev 2060) @@ -71,9 +71,10 @@ my $low_event = delete $param{ServerLow}; # this is ugly, but now its elegant :) grep++ - my $foo = grep { defined $_ } ($high_mark_level, $low_mark_level, $high_event, $low_event); - if ($foo > 0) { - croak "If you use the Mark settings, you must define all four" unless $foo == 4; + my $using_watermarks = grep { defined $_ } + ($high_mark_level, $low_mark_level, $high_event, $low_event); + if ($using_watermarks > 0 and $using_watermarks != 4) { + croak "If you use the Mark settings, you must define all four"; } $high_event = sub { } unless defined $high_event; @@ -105,7 +106,7 @@ croak "PackageStates must be a list or array reference" unless ref($package_states) eq 'ARRAY'; - croak "ObjectsStates must be a list or array reference" + croak "ObjectStates must be a list or array reference" unless ref($object_states) eq 'ARRAY'; # Errors. @@ -205,7 +206,7 @@ ErrorEvent => 'got_server_error', FlushedEvent => 'got_server_flush', do { - $foo ? return ( + $using_watermarks ? return ( HighMark => $high_mark_level, HighEvent => 'got_high', LowMark => $low_mark_level, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2006-09-06 17:35:27
|
Revision: 2110 http://svn.sourceforge.net/poe/?rev=2110&view=rev Author: rcaputo Date: 2006-09-06 10:35:20 -0700 (Wed, 06 Sep 2006) Log Message: ----------- Pedro Melo suggested on the mailing list that clearing the components alias be delayed until after the disconnect callback. This revision applies his patch. Modified Paths: -------------- trunk/poe/lib/POE/Component/Client/TCP.pm Modified: trunk/poe/lib/POE/Component/Client/TCP.pm =================================================================== --- trunk/poe/lib/POE/Component/Client/TCP.pm 2006-09-06 15:34:03 UTC (rev 2109) +++ trunk/poe/lib/POE/Component/Client/TCP.pm 2006-09-06 17:35:20 UTC (rev 2110) @@ -271,8 +271,6 @@ $kernel->alarm_remove( delete $heap->{ctimeout_id} ) if exists $heap->{ctimeout_id}; - $kernel->alias_remove($alias) if defined $alias; - if ($heap->{connected}) { if (defined $heap->{server}) { if ( @@ -287,6 +285,8 @@ else { delete $heap->{server}; } + + $kernel->alias_remove($alias) if defined $alias; }, # User supplied states. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rc...@us...> - 2007-01-01 08:38:54
|
Revision: 2162 http://svn.sourceforge.net/poe/?rev=2162&view=rev Author: rcaputo Date: 2007-01-01 00:38:53 -0800 (Mon, 01 Jan 2007) Log Message: ----------- Clear the $heap->{connected} flag on shutdown. Reported by Paul Evans in rt.cpan.org ticket 22832. Modified Paths: -------------- trunk/poe/lib/POE/Component/Client/TCP.pm Modified: trunk/poe/lib/POE/Component/Client/TCP.pm =================================================================== --- trunk/poe/lib/POE/Component/Client/TCP.pm 2006-12-31 23:25:59 UTC (rev 2161) +++ trunk/poe/lib/POE/Component/Client/TCP.pm 2007-01-01 08:38:53 UTC (rev 2162) @@ -272,6 +272,7 @@ if exists $heap->{ctimeout_id}; if ($heap->{connected}) { + $heap->{connected} = 0; if (defined $heap->{server}) { if ( $heap->{got_an_error} or This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |