- if (!$t || $@) {
- push @out, $self->msg('e18', 'QRZ.com');
- } else {
- my $s = "GET /xml?callsign=$l;username=$Internet::qrz_uid;password=$Internet::qrz_pw;agent=dxspider HTTP/1.0\n\n";
- dbg($s) if isdbg('qrz');
- $t->print($s);
- Log('call', "$call: show/qrz \U$l");
- my $state = "blank";
- while (my $result = eval { $t->getline(Timeout => 30) } || $@) {
- dbg($result) if isdbg('qrz') && $result;
- if ($@) {
- push @out, $self->msg('e18', 'QRZ.com');
- last;
- }
- if ($state eq 'blank' && $result =~ /^<Callsign>/i) {
- $state = 'go';
- } elsif ($state eq 'go') {
- next if $result =~ m|<user>|;
- next if $result =~ m|<u_views>|;
- next if $result =~ m|<locref>|;
- next if $result =~ m|<ccode>|;
- next if $result =~ m|<dxcc>|;
- last if $result =~ m|</Callsign>|;
- my ($tag, $data) = $result =~ m|^\s*<(\w+)>(.*)</|;
- push @out, sprintf "%10s: $data", $tag;
- }
+ if ($state eq 'blank') {
+ if ($msg =~ /^\s*<Callsign>/) {
+ $conn->{state} = 'go';
+ } elsif ($msg =~ /^\s*<Error>/) {
+ _send($conn, $msg, $dxchan);