The point of this is to make it easier to maintain both branches.
DXProt (DXProtHandle has already been copied) route/* DXChannel
DXCommandmode and console.pl have been either copied wholesale,
where necessary, modified to use the old Msg based networking stack.
See help show/ddx for more information
A regex for alpha fields for filters, Regexes are indicated by surrounding
the pattern required with { and } e.g {\d+\s*db\s+\d+\s*wpm(?:\s+cq)?} But, in this case,
the 'set/badword' mechanism is probably more robust.
This is an experimental feature that may well not work...
This may have something to do with the new wpxloc.raw format that
I am now using (erm.. testing). But if I check for a a duplicate of
the prefix in the remarks, and that "prefix" (char string length <= 4)
contains a space, Spot::dup crashes. Intermittently.
Convert sh/wm7d command to AsyncMsg.
Modify all the HTTPMsg converted cmds to use AsyncMsg.
Add a 'raw' 'telnet' handler. This allows one to query things with command
prompts or stuff that isn't a HTTP server. But it ain't always easy. See the
messing around in sh/wm7d I had to do, to get something that is stable given
that the thing that I am looking doesn't have a \n at the end.
It's just a prompt.
Traditionally, a command is a piece of perl that is a simple
in line lump of code e.g (blank.pl):
my ($self, $line) = @_;
my $lines = 1;
my $data = ' ';
my @f = split /\s+/, $line;
if (@f && $f[0] !~ /^\d+$/) {
$data = shift @f;
$data = $data x int(($self->width-1) / length($data));
$data .= substr $data, 0, int(($self->width-1) % length($data))
}
if (@f && $f[0] =~ /^\d+$/) {
$lines = shift @f;
$lines = 9 if $lines > 9;
$lines = 1 if $lines < 1;
}
my @out;
push @out, $data for (1..$lines);
return (1, @out);
It is now possible to have a 'handler' and any other code you like in
a command file, for instance (again blank.pl):
sub this {}
sub that {}
sub another {}
sub handle
{
my ($self, $line) = @_;
my $lines = 1;
my $data = ' ';
my @f = split /\s+/, $line;
if (@f && $f[0] !~ /^\d+$/) {
$data = shift @f;
$data = $data x int(($self->width-1) / length($data));
$data .= substr $data, 0, int(($self->width-1) % length($data))
}
if (@f && $f[0] =~ /^\d+$/) {
$lines = shift @f;
$lines = 9 if $lines > 9;
$lines = 1 if $lines < 1;
}
my @out;
push @out, $data for (1..$lines);
return (1, @out);
}
The 'sub handle' being the cue that distiguishes one form from the other.
The first form has the 'sub handle { <code> }' wrapped around it so, internally
they are treated the same. Each command is placed in its own DXCommandmode sub
package with a standard set of packages "use"d in front of it.
For now (at least) any functions you declare are just that. "$self" is a DXCommandmode
not a blessed reference to this command's full package name, you cannot use things like
$self->this() or $self->that()
they must be called as local functions.
This may change in the future.
Conflicts:
perl/DXChannel.pm
perl/Version.pm
you will need a subscription to the xml service. See:
http://www.qrz.com/XML/index.html for more info.
Disable the incomplete Encoding of textual data. Work out what to do after
more agreement with people.
unfortunately this is http/1.1 only which causes problems with
detecting the EOF ('cos there ain't one). So it is slower than it was.
Add CTY-1814 prefixes 'Kingman Reef'
Add the ability to limit the no of connections an incoming user/node
has. If a node/user is already connected elsewhere more than the maximum
no of times then this incoming connection is refused.