projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
made all protocol except PC29 reject %xx characters
[spider.git]
/
perl
/
client.pl
diff --git
a/perl/client.pl
b/perl/client.pl
index 8a19719ef54ec26333bc6f140d5af1fb3c11e1b2..2e6a4f1727452652d1b32f3ccf7353e2016cedd9 100755
(executable)
--- a/
perl/client.pl
+++ b/
perl/client.pl
@@
-98,7
+98,7
@@
sub rec_socket
cease(1);
}
if (defined $msg) {
cease(1);
}
if (defined $msg) {
- my ($sort, $call, $line) = $msg =~ /^(\w)(
\S
+)\|(.*)$/;
+ my ($sort, $call, $line) = $msg =~ /^(\w)(
[A-Z0-9\-]
+)\|(.*)$/;
if ($sort eq 'D') {
my $snl = $mynl;
if ($sort eq 'D') {
my $snl = $mynl;
@@
-225,6
+225,8
@@
sub doconnect
$rfh = new IO::File;
$wfh = new IO::File;
$pid = open2($rfh, $wfh, "$line") or die "can't do $line $!";
$rfh = new IO::File;
$wfh = new IO::File;
$pid = open2($rfh, $wfh, "$line") or die "can't do $line $!";
+ die "no receive channel $!" unless $rfh;
+ die "no transmit channel $!" unless $wfh;
dbg('connect', "got pid $pid");
$wfh->autoflush(1);
} else {
dbg('connect', "got pid $pid");
$wfh->autoflush(1);
} else {
@@
-259,6
+261,7
@@
sub dochat
for (;;) {
if ($csort eq 'telnet') {
$line = $sock->get();
for (;;) {
if ($csort eq 'telnet') {
$line = $sock->get();
+ cease(11) unless $line; # the socket has gone away?
$line =~ s/\r\n/\n/og;
chomp;
} elsif ($csort eq 'ax25' || $csort eq 'prog') {
$line =~ s/\r\n/\n/og;
chomp;
} elsif ($csort eq 'ax25' || $csort eq 'prog') {