X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FAsyncMsg.pm;h=7a62bbcc7481fed02bd9e26815e6ccda183dd01d;hb=abc381a196bb683f51f875de04d1ec35008e72ab;hp=c2eeaadcaf453c587da1278d9165b46542f7296f;hpb=7312707b4a2412cb690a351dfc07dc144f0937e4;p=spider.git diff --git a/perl/AsyncMsg.pm b/perl/AsyncMsg.pm index c2eeaadc..7a62bbcc 100644 --- a/perl/AsyncMsg.pm +++ b/perl/AsyncMsg.pm @@ -180,26 +180,29 @@ sub _getpost $conn->{_assort} = $sort; $r = $conn->connect($host, $port); - if ($r) { - dbg("Sending '$sort $path HTTP/1.0'") if isdbg('async'); - $conn->send_later("$sort $path HTTP/1.0\n"); - - my $h = delete $args{Host} || $host; - my $u = delete $args{'User-Agent'} || "DxSpider;$main::version;$main::build;$^O;$main::mycall"; - my $d = delete $args{data}; - - $conn->send_later("Host: $h\n"); - $conn->send_later("User-Agent: $u\n"); - while (my ($k,$v) = each %args) { - $conn->send_later("$k: $v\n"); - } - $conn->send_later("\n$d") if defined $d; - $conn->send_later("\n"); - } return $r ? $conn : undef; } +sub _getpost_onconnect +{ + + dbg("Sending '$sort $path HTTP/1.0'") if isdbg('async'); + $conn->send_later("$sort $path HTTP/1.0\n"); + + my $h = delete $args{Host} || $host; + my $u = delete $args{'User-Agent'} || "DxSpider;$main::version;$main::build;$^O;$main::mycall"; + my $d = delete $args{data}; + + $conn->send_later("Host: $h\n"); + $conn->send_later("User-Agent: $u\n"); + while (my ($k,$v) = each %args) { + $conn->send_later("$k: $v\n"); + } + $conn->send_later("\n$d") if defined $d; + $conn->send_later("\n"); +} + sub get { my $pkg = shift; @@ -215,6 +218,7 @@ sub post # do a raw connection # # Async->raw($self, , , [handler => CODE ref], [prefix => ]); +b390vpw # # With no handler defined, everything sent by the connection will be sent to # the caller. @@ -238,6 +242,20 @@ sub raw return $r ? $conn : undef; } +sub _on_connect +{ + my $conn = shift; + my $handle = shift; + dbg("AsyncMsg: Connected $conn->{cnum} to $host $port") if isdbg('async'); +} + +sub _on_error +{ + my $conn = shift; + my $msg = shift; + dbg("AsyncMsg: ***Connect $conn->{cnum} Failed to $host $port $!") if isdbg('async'); +} + sub connect { my $conn = shift; @@ -245,13 +263,8 @@ sub connect my $port = shift; # start a connection - my $r = $conn->SUPER::connect($host, $port); - if ($r) { - dbg("AsyncMsg: Connected $conn->{cnum} to $host $port") if isdbg('async'); - } else { - dbg("AsyncMsg: ***Connect $conn->{cnum} Failed to $host $port $!") if isdbg('async'); - } - + my $r = $conn->SUPER::connect($host, $port, on_connect => &\_on_connect); + return $r; }