[libanyevent-handle-udp-perl] 44/60: Fix error handling in a number of places

Jonas Smedegaard js at alioth.debian.org
Mon Sep 30 10:05:45 UTC 2013


This is an automated email from the git hooks/post-receive script.

js pushed a commit to branch master
in repository libanyevent-handle-udp-perl.

commit 0356e469ccedd52189b330b544dcf80b616ba975
Author: Leon Timmermans <fawaka at gmail.com>
Date:   Thu Aug 29 13:03:27 2013 +0200

    Fix error handling in a number of places
---
 Changes                    |    1 +
 lib/AnyEvent/Handle/UDP.pm |   12 ++++++------
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/Changes b/Changes
index ec60b3d..75375b5 100644
--- a/Changes
+++ b/Changes
@@ -1,6 +1,7 @@
 Revision history for AnyEvent-Handle-UDP
 
 {{$NEXT}}
+          Fix error handling in a number of places
 
 0.039     2013-01-17 16:04:04 Europe/Amsterdam
           Hopefully really fixed for old perl+old Socket.pm
diff --git a/lib/AnyEvent/Handle/UDP.pm b/lib/AnyEvent/Handle/UDP.pm
index 3bec99c..c617458 100644
--- a/lib/AnyEvent/Handle/UDP.pm
+++ b/lib/AnyEvent/Handle/UDP.pm
@@ -149,7 +149,8 @@ for my $dir ('', 'r', 'w') {
 		if ($after <= 0) {
 			$self->$activity($now);
 			my $time = $self->$on_timeout;
-			$time ? $time->($self) : $self->_error->(Errno::ETIMEDOUT, 0);
+			my $error = do { local $! = Errno::ETIMEDOUT; "$!" };
+			$time ? $time->($self) : $self->_error->(0, $error);
 			return if not $self->$has_timeout;
 		}
 		weaken $self;
@@ -210,7 +211,7 @@ sub _bind_to {
 			fh_nonblocking $fh, 1;
 		}
 		bind $fh, $sockaddr or $self->_error(1, "Could not bind: $!");
-		setsockopt $fh, SOL_SOCKET, SO_REUSEADDR, 1 or $self->_error($!, 1, "Couldn't set so_reuseaddr: $!");
+		setsockopt $fh, SOL_SOCKET, SO_REUSEADDR, 1 or $self->_error(1, "Couldn't set so_reuseaddr: $!");
 	};
 	if (ref $addr) {
 		my ($host, $port) = @{$addr};
@@ -260,7 +261,7 @@ sub _on_addr {
 	AnyEvent::Socket::resolve_sockaddr($host, $port, 'udp', _get_family($fh) || $self->family, SOCK_DGRAM, sub {
 		my @targets = @_;
 		while (1) {
-			my $target = shift @targets or $self->_error(1, "No such host '$host' or port '$port'");
+			my $target = shift @targets or $self->_error(1, "Could not resolve $host:$port");
 			$on_success->(@{$target});
 			last;
 		}
@@ -276,7 +277,7 @@ sub _error {
 		$self->destroy if $fatal;
 	} else {
 		$self->destroy;
-		croak "AnyEvent::Handle uncaught error: $message";
+		croak "AnyEvent::Handle::UDP uncaught error: $message";
 	}
 	return;
 }
@@ -301,7 +302,7 @@ sub push_send {
 sub _send {
 	my ($self, $message, $to, $cv) = @_;
 	my $ret = defined $to ? send $self->{fh}, $message, 0, $to : send $self->{fh}, $message, 0;
-	$self->_error(1, "$!") if not defined $ret and !$non_fatal{$! + 0};
+	$self->_error(1, "Could not send: $!") if not defined $ret and !$non_fatal{$! + 0};
 	if (defined $cv and defined $ret) {
 		$self->timeout_reset;
 		$self->wtimeout_reset;
@@ -320,7 +321,6 @@ sub _push_writer {
 				my $ret = $self->_send($msg, $to, $cv);
 				if (not defined $ret) {
 					unshift @{$self->_buffers}, $entry;
-					$self->_error->(1, "$!") if !$non_fatal{$! + 0};
 					last;
 				}
 			}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libanyevent-handle-udp-perl.git



More information about the Pkg-perl-cvs-commits mailing list