X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fclient.pl;h=5e975c157bf18d903e8a11b3acdef0838cc6340a;hb=4a653ce0cd9140d4a7878cdf8ee835841ca039eb;hp=7a539cf2259202d8cf4bb3b4cb3ec01b60a50f08;hpb=840ace66681d2d615ff412e1197fa613f262c1f2;p=spider.git diff --git a/perl/client.pl b/perl/client.pl index 7a539cf2..5e975c15 100755 --- a/perl/client.pl +++ b/perl/client.pl @@ -119,6 +119,8 @@ sub rec_socket if ($buffered) { if (length $outqueue >= $client_buffer_lth) { print $stdout $outqueue; + pop @echo while (@echo > $maxecho); + push @echo, $outqueue; $outqueue = ""; } $outqueue .= "$savenl$line$snl"; @@ -144,6 +146,8 @@ sub rec_socket } 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 @@ -199,6 +203,7 @@ sub rec_stdin 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; @@ -289,7 +294,7 @@ sub dochat $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); @@ -340,6 +345,7 @@ $savenl = ""; # an NL that has been saved from last time $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 @@ -413,7 +419,7 @@ if ($loginreq) { $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); } @@ -477,6 +483,7 @@ if ($connsort eq "connect") { 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) {