]> gb7djk.dxcluster.net Git - spider.git/blobdiff - perl/AsyncMsg.pm
fix various cmds using AsyncMsg
[spider.git] / perl / AsyncMsg.pm
index cb0878762f1ba7f3d60dd5c4b8cd43bf2366100d..95c5e8f67c974d8eace5f0e5ba9b7fbf69ef42f1 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;
@@ -130,6 +132,19 @@ sub _getpost
 #      $tx->on(error => sub { $conn->_error(@_); });
 #      $tx->on(finish => sub { $conn->disconnect; });
 
+       $ua->on(start => sub {
+                               my ($ua, $tx) = @_;
+                               while (my ($k, $v) = each %args) {
+                                       dbg("AsyncMsg: attaching header $k: $v") if isdbg('async');
+                                       $tx->req->headers->header($k => $v);
+                               }
+                               if (defined $data) {
+                                       dbg("AsyncMsg: body ='$data'") if isdbg('async'); 
+                                       $tx->req->body($data);
+                               }
+                       });
+       
+
        $ua->start($tx => sub { $conn->handle_getpost(@_) }); 
 
        
@@ -251,7 +266,7 @@ sub disconnect
                my $dxchan = DXChannel::get($conn->{caller});
                if ($dxchan) {
                        no strict 'refs';
-                       $ondisc->($conn, $dxchan)
+                       $ondisc->($conn, $dxchan);
                }
        }
        delete $conn->{mojo};