@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
-$version = "1.41"; # the version no of the software
+$version = "1.43"; # the version no of the software
$starttime = 0; # the starting time of the cluster
$lockfn = "cluster.lock"; # lock file name
@outstanding_connects = (); # list of outstanding connects
# set up the basic channel info - this needs a bit more thought - there is duplication here
if (!defined $dxchan) {
- my ($sort, $call, $line) = $msg =~ /^(\w)(\S+)\|(.*)$/;
+ my ($sort, $call, $line) = DXChannel::decode_input(0, $msg);
+ return unless defined $sort;
# is there one already connected to me - locally?
my $user = DXUser->get($call);
$SIG{'TERM'} = 'IGNORE';
$SIG{'INT'} = 'IGNORE';
+ DXUser::sync;
+
eval {
Local::finish(); # end local processing
};
my $data = $self->{data};
my $dxchan = $self->{dxchan};
- my ($sort, $call, $line) = $data =~ /^(\w)([^\|]+)\|(.*)$/;
my $error;
-
- # the above regexp must work
- return unless ($sort && $call && $line);
+ my ($sort, $call, $line) = DXChannel::decode_input($dxchan, $data);
+ return unless defined $sort;
# translate any crappy characters into hex characters
if ($line =~ /[\x00-\x06\x08\x0a-\x1f\x7f-\xff]/o) {
$line =~ s/([\x00-\x1f\x7f-\xff])/uc sprintf("%%%02x",ord($1))/eg;
}
-
+
# do the really sexy console interface bit! (Who is going to do the TK interface then?)
dbg('chan', "<- $sort $call $line\n") unless $sort eq 'D';
DXConnect::process();
DXMsg::process();
DXDb::process();
+ DXUser::process();
eval {
Local::process(); # do any localised processing
};