@ISA = qw(DXChannel);
+require 5.10.1;
+
use POSIX qw(:math_h);
use DXUtil;
use DXChannel;
use AsyncMsg;
use JSON;
use Time::HiRes qw(gettimeofday tv_interval);
+use Regexp::IPv6 qw($IPv6_re);
use Mojo::IOLoop;
use Mojo::IOLoop::ForkCall;
$pagelth = $default_pagelth unless defined $pagelth;
$self->{pagelth} = $pagelth;
($self->{width}) = $line =~ /width=(\d+)/; $line =~ s/\s*width=\d+\s*//;
+ if ($line =~ /host=/) {
+ ($self->{hostname}) = $line =~ /host=(\d+\.\d+\.\d+\.\d+)/; $line =~ s/\s*host=\d+\.\d+\.\d+\.\d+//;
+ unless ($self->{hostname}) {
+ ($self->{hostname}) = $line =~ /host=($IPv6_re)/;
+ $line =~ s/\s*host=$IPv6_re//;
+ }
+ }
$self->{width} = 80 unless $self->{width} && $self->{width} > 80;
$self->{consort} = $line; # save the connection type
my $dxchan;
foreach $dxchan (@dxchan) {
- next unless $dxchan->{sort} eq 'U';
+ next unless $dxchan->is_user;
# send a outstanding message prompt if required
if ($t >= $dxchan->lastmsgpoll + $msgpolltime) {
my $s = shift; # the line to be rebroadcast
foreach my $dxchan (DXChannel::get_all()) {
- next unless $dxchan->{sort} eq 'U'; # only interested in user channels
+ next unless $dxchan->is_user; # only interested in user channels
next if grep $dxchan == $_, @_;
$dxchan->send($s); # send it
}
# gimme all the users
sub get_all
{
- return grep {$_->{sort} eq 'U'} DXChannel::get_all();
+ return grep {$_->is_user} DXChannel::get_all();
}
# run a script for this user