my %args = @_;
my $handler = delete $args{handler} || \&handle_raw;
+
my $conn = $pkg->new($call, $handler);
$conn->{prefix} = delete $args{prefix} if exists $args{prefix};
$conn->{prefix} ||= '';
+ $conn->{on_disconnect} = delete $args{on_disc} || delete $args{on_disconnect};
$r = $conn->connect($host, $port, on_connect => &_on_raw_connect);
return $r ? $conn : undef;
}
if ($dxchan) {
no strict 'refs';
$ondisc->($conn, $dxchan);
+ delete $conn->{on_disconnect};
}
}
delete $conn->{mojo};
$conn->SUPER::disconnect;
}
+sub _send_later
+{
+ my $conn = shift;
+ my $m = shift;
+
+ if (isdbg('async')) {
+ my $s = $m;
+ $s =~ s/([\%\x00-\x1f\x7f-\xff])/sprintf("%%%02X", ord($1))/eg;
+ dbg("AsyncMsg: send $s");
+ }
+ $conn->send_later($m);
+}
+
sub DESTROY
{
my $conn = shift;