projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added the hooks for internationalisation
[spider.git]
/
perl
/
client.pl
diff --git
a/perl/client.pl
b/perl/client.pl
index 2a41c221320fbef8120d2af0598a69f6da5be6be..b8129cbb384cd0d7c8d8ea7872460586b9e3f627 100755
(executable)
--- a/
perl/client.pl
+++ b/
perl/client.pl
@@
-39,6
+39,7
@@
BEGIN {
use Msg;
use DXVars;
use Msg;
use DXVars;
+use Carp;
$mode = 2; # 1 - \n = \r as EOL, 2 - \n = \n, 0 - transparent
$call = ""; # the callsign being used
$mode = 2; # 1 - \n = \r as EOL, 2 - \n = \n, 0 - transparent
$call = ""; # the callsign being used
@@
-58,6
+59,8
@@
sub cease
if (defined $conn && $sendz) {
$conn->send_now("Z$call|bye...\n");
}
if (defined $conn && $sendz) {
$conn->send_now("Z$call|bye...\n");
}
+ STDOUT->flush;
+ sleep(2);
exit(0);
}
exit(0);
}
@@
-147,7
+150,11
@@
sub rec_stdin
if ($mode) {
$buf =~ s/\r/\n/og if $mode == 1;
$dangle = !($buf =~ /\n$/);
if ($mode) {
$buf =~ s/\r/\n/og if $mode == 1;
$dangle = !($buf =~ /\n$/);
- @lines = split /\n/, $buf;
+ if ($buf eq "\n") {
+ @lines = (" ");
+ } else {
+ @lines = split /\n/, $buf;
+ }
if ($dangle) { # pull off any dangly bits
$buf = pop @lines;
} else {
if ($dangle) { # pull off any dangly bits
$buf = pop @lines;
} else {
@@
-196,6
+203,20
@@
$SIG{'HUP'} = \&sig_term;
$SIG{'CHLD'} = \&sig_chld;
$conn = Msg->connect("$clusteraddr", $clusterport, \&rec_socket);
$SIG{'CHLD'} = \&sig_chld;
$conn = Msg->connect("$clusteraddr", $clusterport, \&rec_socket);
+if (! $conn) {
+ if (-r "$data/offline") {
+ open IN, "$data/offline" or die;
+ while (<IN>) {
+ s/\n/\r/og if $mode == 1;
+ print;
+ }
+ close IN;
+ } else {
+ print "Sorry, the cluster $mycall is currently off-line", $mynl;
+ }
+ cease(0);
+}
+
$conn->send_now("A$call|$connsort");
Msg->set_event_handler(\*STDIN, "read" => \&rec_stdin);
$conn->send_now("A$call|$connsort");
Msg->set_event_handler(\*STDIN, "read" => \&rec_stdin);