add an RBN line to progress
[spider.git] / perl / AsyncMsg.pm
index b1875d97bb8fa9d5698e30a1f5efcfa547cee159..cb1c2f2bdc64a228f6b5c76bd6d3fcc8c047b800 100644 (file)
@@ -118,6 +118,8 @@ sub _getpost
        $conn->{_assort} = $sort;
        $conn->{csort} = 'http';
 
+       my $data = delete $args{data};
+
        my $ua =  Mojo::UserAgent->new;
        my $s;
        $s .= $host;
@@ -132,7 +134,6 @@ sub _getpost
 
        $ua->on(start => sub {
                                my ($ua, $tx) = @_;
-                               my $data = delete $args{data};
                                while (my ($k, $v) = each %args) {
                                        dbg("AsyncMsg: attaching header $k: $v") if isdbg('async');
                                        $tx->req->headers->header($k => $v);
@@ -202,9 +203,11 @@ sub raw
        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;
 }
@@ -266,6 +269,7 @@ sub disconnect
                if ($dxchan) {
                        no strict 'refs';
                        $ondisc->($conn, $dxchan);
+                       delete $conn->{on_disconnect};
                }
        }
        delete $conn->{mojo};