if ($buffered) {
if (length $outqueue >= $client_buffer_lth) {
print $stdout $outqueue;
+ pop @echo while (@echo > $maxecho);
+ push @echo, $outqueue;
$outqueue = "";
}
$outqueue .= "$savenl$line$snl";
} elsif ($sort eq 'B') {
if ($buffered && $outqueue) {
print $stdout $outqueue;
+ pop @echo while(@echo > $maxecho);
+ push @echo, $outqueue;
$outqueue = "";
}
$buffered = $line; # set buffered or unbuffered
unshift @lines, ($lastbit . $first) if ($first);
foreach $first (@lines) {
# print "send_now $call $first\n";
+ next if grep {$_ eq $first } @echo;
$conn->send_later("I$call|$first");
}
$lastbit = $buf;
$line =~ s/\r/\n/g;
chomp;
}
- dbg('connect', "received \"$line\"");
+ dbg('connect', map { "received \"$_\"" } split /\n/, $line);
if ($abort && $line =~ /$abort/i) {
dbg('connect', "aborted on /$abort/");
cease(11);
$timeout = 60; # default timeout for connects
$abort = ""; # the current abort string
$cpath = "$root/connect"; # the basic connect directory
+$maxecho = 5; # length of max echo queue
$pid = 0; # the pid of the child program
$csort = ""; # the connection type
$s =~ s/\s+//og;
$s =~ s/-\d+$//o; # no ssids!
cease(0) unless $s && $s gt ' ';
- unless (iscallsign($s)) {
+ unless (is_callsign($s)) {
$stdout->print("Sorry, $s is an invalid callsign");
cease(0);
}
setmode();
# adjust the callsign if it has an SSID, SSID <= 8 are legal > 8 are netrom connections
+$call =~ s/-0$//; # strip off -0 as this is equiv to just call on its own
my ($scall, $ssid) = split /-/, $call;
$ssid = undef unless $ssid && $ssid =~ /^\d+$/;
if ($ssid) {