my $conn = shift;
my $dxchan = shift;
my @out;
+
+# $DB::single = 1;
- $conn->{sdxin} .= $conn->{msg}; # because there will be stuff left in the rx buffer because it isn't \n terminated
dbg("db0sdx in: $conn->{sdxin}") if isdbg('db0sdx');
my ($info) = $conn->{sdxin} =~ m|<qslinfoResult>([^<]*)</qslinfoResult>|;
- dbg("info: $info");
+# dbg("db0sdx info: $info");
my $prefix = $conn->{prefix} || '';
my @in = split /[\r\n]/, $info if $info;
if (@in && $in[0]) {
- dbg("in qsl");
+# dbg("db0sdx: in qsl");
push @out, map {"$prefix$_"} @in;
} else {
- dbg("in fault");
+# dbg("db0sdx: in fault");
($info) = $conn->{sdxin} =~ m|<faultstring>([^<]*)</faultstring>|;
push @out, "$prefix$info" if $info;
push @out, $dxchan->msg('e3', 'DB0SDX', $conn->{sdxline}) unless @out;
my $conn = shift;
my $msg = shift;
+# $DB::single = 1;
+
$conn->{sdxin} .= "$msg\n";
dbg("db0sdx in: $conn->{sdxin}") if isdbg('db0sdx');
</qslinfo>
</soap:Body>
</soap:Envelope>);
- my $lth = length($s)+1;
+# $s .= "\n";
+ my $lth = length($s);
Log('call', "$call: show/db0sdx $line");
my $conn = AsyncMsg->post($self, $target, "$path$suffix", prefix => 'sdx> ', filter => \&process,
on_disc => \&on_disc);
if ($conn) {
- $conn->{sdxcall} = $line;
+ $conn->{sdxline} = $line;
push @out, $self->msg('m21', "show/db0sdx");
} else {
push @out, $self->msg('e18', 'DB0SDX Database server');
# $tx->on(error => sub { $conn->_error(@_); });
# $tx->on(finish => sub { $conn->disconnect; });
+ $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);
+ }
+ if (defined $data) {
+ dbg("AsyncMsg: body ='$data'") if isdbg('async');
+ $tx->req->body($data);
+ }
+ });
+
+
$ua->start($tx => sub { $conn->handle_getpost(@_) });
my $dxchan = DXChannel::get($conn->{caller});
if ($dxchan) {
no strict 'refs';
- $ondisc->($conn, $dxchan)
+ $ondisc->($conn, $dxchan);
}
}
delete $conn->{mojo};