X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2Fclient.pl;h=642f80c6e0bf6b54604dbdf2758820bc035fde53;hb=661d49731a7ac57ce2883ef5d757c7a8144fb6ff;hp=84ab5d530ee7e770636299302306469c2ad3dc18;hpb=ce93c2b985c3ac38b4909025de62c264423fce21;p=spider.git diff --git a/perl/client.pl b/perl/client.pl index 84ab5d53..642f80c6 100755 --- a/perl/client.pl +++ b/perl/client.pl @@ -304,6 +304,14 @@ sub timeout cease(0); } +# handle callsign and connection type firtling +sub doclient +{ + my $line = shift; + my @f = split /\s+/, $line; + $call = uc $f[0] if $f[0]; + $csort = $f[1] if $f[1]; +} # # initialisation @@ -358,7 +366,7 @@ $stdout->autoflush(1); $SIG{'INT'} = \&sig_term; $SIG{'TERM'} = \&sig_term; -$SIG{'HUP'} = 'IGNORE'; +$SIG{'HUP'} = \&sig_term; $SIG{'CHLD'} = \&sig_chld; $SIG{'ALRM'} = \&timeout; @@ -403,15 +411,6 @@ if ($loginreq) { alarm(0); } -# handle callsign and connection type firtling -sub doclient -{ - my $line = shift; - my @f = split /\s+/, $line; - $call = uc $f[0] if $f[0]; - $csort = $f[1] if $f[1]; -} - # is this an out going connection? if ($connsort eq "connect") { my $mcall = lc $call; @@ -467,6 +466,20 @@ if ($connsort eq "connect") { $mode = ($connsort eq 'ax25') ? 1 : 2; setmode(); +# adjust the callsign if it has an SSID, SSID <= 8 are legal > 8 are netrom connections +my ($scall, $ssid) = split /-/, $call; +$ssid = undef unless $ssid && $ssid =~ /^\d+$/; +if ($ssid) { + $ssid = 15 if $ssid > 15; + if ($connsort eq 'ax25') { + if ($ssid > 8) { + $ssid = 15 - $ssid; + } + } + $call = "$scall-$ssid"; +} + + $conn = Msg->connect("$clusteraddr", $clusterport, \&rec_socket); if (! $conn) { if (-r "$data/offline") {