loads of changes and added things

made 1.2
This commit is contained in:
djk 1998-11-04 00:07:46 +00:00
parent 3f145290a9
commit 6a0068ec3d
29 changed files with 1479 additions and 33 deletions

View File

@ -86,10 +86,10 @@ the following modules:-
[ether]
NOCALL * * * * * * L
default * * * * * * - djk /spider/perl/client.pl client.pl %u ax25
default * * * * * * - jim /spider/perl/client.pl client.pl %u ax25
<bbs>
NOCALL * * * * * * L
default * * * * * * - djk /spider/perl/client.pl client.pl %u ax25
default * * * * * * - jim /spider/perl/client.pl client.pl %u ax25
where ether and bbs are appropriate KNOWN WORKING axport and nrport
names respectively.

96
cmd/Aliases Normal file
View File

@ -0,0 +1,96 @@
#!/usr/bin/perl
#
# provide some standard aliases for commands for terminally
# helpless ak1a user (helpless in the sense that they never
# read nor understand help files)
#
# This file is automagically reloaded if its modification time is
# later than the one stored in CmdAlias.pm
#
# PLEASE make this file consistant with reality! (the patterns MUST
# match the filenames!)
#
# Don't alter this file, copy it into the local_cmd tree and modify it.
# This file will be replaced everytime I issue a new release.
#
# You only need to put aliases in here for commands that don't work as
# you desire naturally, e.g sh/dx on its own just works as you expect
# so you need not add it as an alias.
#
package CmdAlias;
%alias = (
a => [
'^ann.*/full', 'announce full', 'announce',
'^ann.*/sysop', 'announce sysop', 'announce',
'^ann.*/(.*)$', 'announce $1', 'announce',
],
b => [
],
c => [
],
d => [
'^del', 'kill', 'kill',
'^di.*/all', 'directory all', 'directory',
'^di.*/b.*', 'directory bulletins', 'directory',
'^di.*/n.*', 'directory new', 'directory',
'^di.*/o.*', 'directory own', 'directory',
'^di.*/s.*', 'directory subject', 'directory',
'^di.*/(\d+)-(\d+)', 'directory $1-$2', 'directory',
'^di.*/(\d+)', 'directory $1', 'directory',
],
e => [
],
f => [
],
g => [
],
h => [
],
i => [
],
j => [
],
k => [
],
l => [
],
m => [
],
n => [
],
o => [
],
p => [
],
q => [
'^q', 'bye', 'bye',
],
r => [
],
s => [
'^sh/dx/(\d+)-(\d+)', 'show/dx $1-$2', 'show/dx',
'^sh/dx/(\d+)', 'show/dx $1', 'show/dx',
'^sh/dx/d(\d+)', 'show/dx from $1', 'show/dx',
'^sp$', 'send', 'send',
'^sb$', 'send noprivate', 'send',
],
t => [
],
u => [
],
v => [
],
w => [
'^wx/full', 'wx full', 'wx',
'^wx/sysop', 'wx sysop', 'wx',
],
x => [
],
y => [
],
z => [
],
)

View File

@ -8,15 +8,37 @@
my ($self, $line) = @_;
my @f = split /\s+/, $line;
my @ref = DXMsg::get_all();
my @ref;
my $ref;
my @out;
$f[0] = uc $f[0];
if ($f[0] eq 'ALL') {
foreach $ref (DXMsg::get_all()) {
next if $self->priv < 5 && $ref->private && $ref->to ne $self->call && $ref->from ne $self->call;
push @ref, $ref;
}
} elsif ($f[0] =~ /^O/o) { # dir/own
foreach $ref (DXMsg::get_all()) {
push @ref, $ref if $ref->private && ($ref->to eq $self->call || $ref->from eq $self->call);
}
} elsif ($f[0] =~ /^N/o) { # dir/new
foreach $ref (DXMsg::get_all()) {
push @ref, $ref if $ref->private && !$ref->read && $ref->to eq $self->call;
}
} else {
my @all = (DXMsg::get_all());
my ($i, $count);
for ($i = $#all; $i > 0; $i--) {
$ref = $all[$i];
next if $self->priv < 5 && $ref->private && $ref->to ne $self->call && $ref->from ne $self->call;
unshift @ref, $ref;
last if ++$count > 10;
}
}
foreach $ref (@ref) {
next if $self->priv < 5 && $ref->private && $ref->to ne $self->call;
push @out, sprintf "%6d %s%s%5d %8.8s %8.8s %-6.6s %5.5s %-30.30s",
$ref->msgno, $ref->private ? 'p' : ' ', $ref->read ? '-' : ' ', $ref->size,
$ref->to, $ref->from, cldate($ref->t), ztime($ref->t), $ref->subject;
push @out, $ref->dir;
}
return (1, @out);

View File

@ -16,7 +16,7 @@ foreach $call (@calls) {
my $dxchan = DXChannel->get($call);
if ($dxchan) {
if ($dxchan->is_ak1a) {
$dxchan->send_now("D", DXProt::pc39($dxchan->call, 'Disconnected'));
$dxchan->send_now("D", DXProt::pc39($main::mycall, 'Disconnected'));
} else {
$dxchan->disconnect;
}

View File

@ -21,10 +21,12 @@ for $msgno (@f) {
push @out, "Msg $msgno not found";
next;
}
if ($ref->private && $self->priv < 9 && $ref->to ne $ref->call) {
if ($self->priv < 5 &&
(($ref->private && $ref->to ne $self->call && $ref->from ne $self->call) ||
($ref->private == 0 && $ref->from ne $self->call))) {
push @out, "Msg $msgno not available";
next;
}
}
$ref->del_msg;
push @out, "Message $msgno deleted";
}

View File

@ -13,13 +13,26 @@ my @out;
my @body;
my $ref;
# if there are no specified message numbers, try and find a private one
# that I haven't read yet
if (@f == 0) {
foreach $ref (DXMsg::get_all()) {
if ($ref->to eq $self->call && $ref->private && !$ref->read) {
push @f, $ref->msgno;
last;
}
}
}
return (1, "Sorry, no new messages for you") if @f == 0;
for $msgno (@f) {
$ref = DXMsg::get($msgno);
if (!$ref) {
push @out, "Msg $msgno not found";
next;
}
if ($ref->private && $self->priv < 9 && $ref->to ne $ref->call) {
if ($self->priv < 5 && $ref->private && $ref->to ne $self->call && $ref->from ne $self->call ) {
push @out, "Msg $msgno not available";
next;
}
@ -33,6 +46,9 @@ for $msgno (@f) {
$ref->read(1);
$ref->store(\@body); # note call by reference!
}
# remember this one as the last one read
$self->lastread($msgno);
}
return (1, @out);

View File

@ -1,7 +1,82 @@
#
# reply to a message
# send a message
#
# this should handle
#
# send <call> [<call> .. ]
# send private <call> [<call> .. ]
# send private rr <call> [<call> .. ]
# send rr <call> [<call> .. ]
# send noprivate <call> [<call> .. ]
# send b <call> [<call> .. ]
# send copy <call> [<call> .. ]
# send copy rr <call> [<call> .. ]
#
# Copyright (c) Dirk Koopman G1TLH
#
# $Id$
#
my ($self, $line) = @_;
my @out;
my $loc;
#$DB::single = 1;
if ($self->state eq "prompt") {
my @f = split /\s+/, $line;
# now deal with real message inputs
# parse out send line for various possibilities
$loc = $self->{loc} = {};
my $i = 0;
$f[0] = uc $f[0];
$loc->{private} = '1';
if ($f[0] eq 'B' || $f[0] =~ /^NOP/oi) {
$loc->{private} = '0';
$i += 1;
} elsif ($f[0] eq 'P' || $f[0] =~ /^PRI/oi) {
$i += 1;
}
$loc->{rrreq} = '0';
if (uc $f[$i] eq 'RR') {
$loc->{rrreq} = '1';
$i++;
}
my $oref;
# check we have a reply number
if ($i > @f) {
if (!($oref = DXMsg::get($self->lastread))) {
delete $self->{loc};
#return (0, $self->msg('esend2'));
return (0, "need a message number");
}
} else {
$oref = DXMsg::get($f[$i]);
if (!$oref) {
delete $self->{loc};
return (0, "can't access message $i");
}
}
# now save all the 'to' callsigns for later
my $to = $oref->from;
$loc->{to} = [ $to ]; # to is an array
$loc->{subject} = $oref->subject;
$loc->{subject} = "Re: " . $loc->{subject} if !($loc->{subject} =~ /^Re/io);
# find me and set the state and the function on my state variable to
# keep calling me for every line until I relinquish control
$self->func("DXMsg::do_send_stuff");
$self->state('sendbody');
#push @out, $self->msg('sendsubj');
push @out, "Reply to: $to";
push @out, "Subject : $loc->{subject}";
push @out, "Enter Message /EX (^Z) to send or /ABORT (^Y) to exit";
}
return (1, @out);

31
cmd/show/bands.pl Normal file
View File

@ -0,0 +1,31 @@
#
# display the band data
#
#$DB::single = 1;
my ($self, $line) = @_;
my @f = split /\s+/, $line;
my @bands;
my $band;
my @out;
if (!$line) {
@bands = sort { Bands::get($a)->band->[0] <=> Bands::get($b)->band->[0] } Bands::get_keys();
push @out, "Bands Available:-";
foreach $band (@bands) {
my $ref = Bands::get($band)->band;
my $from = $ref->[0];
my $to = $ref->[1];
push @out, sprintf "%10s: %d -> %d", $band, $from, $to;
}
push @out, "Regions Available:-";
@bands = Bands::get_region_keys();
foreach $band (@bands) {
my $ref = Bands::get_region($band);
my $s = sprintf("%10s: ", $band ) . join(' ', @{$ref});
push @out, $s;
}
}
return (1, @out);

View File

@ -19,6 +19,10 @@ if ($argv[1] eq '>') {
$line =~ s/^$argv[0]\s*//;
}
my $call = $via ? $via : $to;
my $ref = DXCluster->get($call);
return (1, "$call not visible on the cluster") if !$ref;
my $dxchan = DXCommandmode->get($to); # is it for us?
if ($dxchan && $dxchan->is_user) {
$dxchan->send("$to de $from $line");

View File

@ -7,7 +7,7 @@
# these pairs attach themselves to the labels you provide, they are
# independant of any other pair, they can overlap, cross etc.
#
# There MUST be at last a 'band' entry
# There MUST be at least a 'band' entry
#
# It is up to YOU to make sure that it makes sense!
#
@ -55,13 +55,15 @@
'15m' => bless( { band => [ 21000, 21450 ],
cw => [ 21000, 21150 ],
data => [ 21100, 21120 ],
beacon => [ 21149, 21151 ],
ssb => [ 21151, 21450]
}, 'Bands'),
'12m' => bless( { band => [ 21000, 21450 ],
cw => [ 21000, 21150 ],
data => [ 21100, 21120 ],
ssb => [ 21151, 21450]
'12m' => bless( { band => [ 24890, 24990 ],
cw => [ 24890, 24820 ],
data => [ 24920, 24929 ],
beacon => [ 24929, 24931 ],
ssb => [ 24931, 24990]
}, 'Bands'),
@ -143,3 +145,23 @@
uhf => [ '70cm', '23cm' ],
shf => [ '23cm', '13cm', '9cm', '6cm', '3cm' ],
);
%aliases = (
topband => '160m',
160 => '160m',
80 => '80m',
40 => '40m',
30 => '30m',
20 => '20m',
18 => '18m',
15 => '15m',
12 => '12m',
10 => '10m',
6 => '6m',
4 => '4m',
2 => '2m',
70 => '70cm',
23 => '23cm',
13 => '13cm',
3 => '3cm',
)

785
html/cpan.html Normal file
View File

@ -0,0 +1,785 @@
<html>
<head>
<title>CPAN and perl installation</title>
</head>
<body>
<h2>CPAN and perl installation</h2>
<pre>
[root@rufus djk]# perl -MCPAN -e shell
We have to reconfigure CPAN.pm due to following uninitialized parameters:
cpan_home, keep_source_where, build_dir, build_cache, index_expire, gzip, tar, unzip, make, pager, makepl_arg, make_arg, make_install_arg, urllist, inhibit_startup_message, ftp_proxy, http_proxy, no_proxy
/usr/lib/perl5/CPAN/Config.pm initialized.
The CPAN module needs a directory of its own to cache important
index files and maybe keep a temporary mirror of CPAN files. This may
be a site-wide directory or a personal directory.
First of all, I'd like to create this directory. Where?
CPAN build and cache directory? [/root/.cpan]
If you want, I can keep the source files after a build in the cpan
home directory. If you choose so then future builds will take the
files from there. If you don't want to keep them, answer 0 to the
next question.
How big should the disk cache be for keeping the build directories
with all the intermediate files?
Cache size for build directory (in MB)? [10]
The CPAN module will need a few external programs to work
properly. Please correct me, if I guess the wrong path for a program.
Don't panic if you do not have some of them, just press ENTER for
those.
Where is your gzip program? [/bin/gzip]
Where is your tar program? [/bin/tar]
Warning: unzip not found in PATH
Where is your unzip program? []
Where is your make program? [/usr/bin/make]
Warning: lynx not found in PATH
Where is your lynx program? []
Where is your ncftp program? [/usr/bin/ncftp]
Where is your ftp program? [/usr/bin/ftp]
What is your favorite pager program? [/usr/bin/less]
What is your favorite shell? [/bin/bash]
Every Makefile.PL is run by perl in a separate process. Likewise we
run 'make' and 'make install' in processes. If you have any parameters
(e.g. PREFIX, INSTALLPRIVLIB, UNINST or the like) you want to pass to
the calls, please specify them here.
If you don't understand this question, just press ENTER.
Parameters for the 'perl Makefile.PL' command? []
Parameters for the 'make' command? []
Parameters for the 'make install' command? []
Sometimes you may wish to leave the processes run by CPAN alone
without caring about them. As sometimes the Makefile.PL contains
question you're expected to answer, you can set a timer that will
kill a 'perl Makefile.PL' process after the specified time in seconds.
If you set this value to 0, these processes will wait forever. This is
the default and recommended setting.
Timeout for inacivity during Makefile.PL? [0]
We need to know the URL of your favorite CPAN site.
Please enter it here: ftp://sunsite.doc.ic.ac.uk/packages/CPAN
Testing "ftp://sunsite.doc.ic.ac.uk/packages/CPAN" ...
Please, install Net::FTP as soon as possible. CPAN.pm installs it for you
if you just type
install Bundle::libnet
Trying with "/usr/bin/ncftp -c" to get
ftp://sunsite.doc.ic.ac.uk/packages/CPAN/MIRRORED.BY
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources
GOT /root/.cpan/sources/MIRRORED.BY
"ftp://sunsite.doc.ic.ac.uk/packages/CPAN" seems to work
WAIT support is available as a Plugin. You need the CPAN::WAIT module
to actually use it. But we need to know your favorite WAIT server. If
you don't know a WAIT server near you, just press ENTER.
Your favorite WAIT server?
[wait://ls6.informatik.uni-dortmund.de:1404]
If you're accessing the net via proxies, you can specify them in the
CPAN configuration or via environment variables. The variable in
the $CPAN::Config takes precedence.
Your ftp_proxy?
Your http_proxy?
Your no_proxy?
commit: wrote /usr/lib/perl5/CPAN/Config.pm
cpan shell -- CPAN exploration and modules installation (v1.3102)
ReadLine support suppressed
cpan>
cpan> install Bundle::CPAN
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors
GOT /root/.cpan/sources/authors/01mailrc.txt.gz
Going to read /root/.cpan/sources/authors/01mailrc.txt.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/modules
GOT /root/.cpan/sources/modules/02packages.details.txt.gz
Going to read /root/.cpan/sources/modules/02packages.details.txt.gz
There's a new CPAN.pm version (v1.40) available!
You might want to try
install CPAN
reload cpan
without quitting the current session. It should be a seamless upgrade
while we are running...
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/modules
GOT /root/.cpan/sources/modules/03modlist.data.gz
Going to read /root/.cpan/sources/modules/03modlist.data.gz
Running make for NWINT/MD5-1.7.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/NWINT
GOT /root/.cpan/sources/authors/id/NWINT/MD5-1.7.tar.gz
MD5-1.7/
MD5-1.7/Changes
MD5-1.7/MANIFEST
MD5-1.7/MD5.pm
MD5-1.7/MD5.xs
MD5-1.7/Makefile.PL
MD5-1.7/README
MD5-1.7/global.h
MD5-1.7/md5.h
MD5-1.7/md5c.c
MD5-1.7/test.pl
MD5-1.7/typemap
MD5-1.7/examples/
MD5-1.7/examples/mddriver.pl
MD5-1.7/examples/twdigest.pl
CPAN.pm: Going to build NWINT/MD5-1.7.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for MD5
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/MD5
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/MD5
mkdir ./blib/man3
cp MD5.pm ./blib/lib/MD5.pm
AutoSplitting MD5 (./blib/lib/auto/MD5)
/usr/bin/perl -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 /usr/lib/perl5/ExtUtils/xsubpp -typemap /usr/lib/perl5/ExtUtils/typemap -typemap typemap MD5.xs >MD5.tc && mv MD5.tc MD5.c
cc -c -Dbool=char -DHAS_BOOL -I/usr/local/include -O2 -DVERSION=\"1.7\" -DXS_VERSION=\"1.7\" -fpic -I/usr/lib/perl5/i386-linux/5.00404/CORE -DPERL_BYTEORDER=1234 MD5.c
cc -c -Dbool=char -DHAS_BOOL -I/usr/local/include -O2 -DVERSION=\"1.7\" -DXS_VERSION=\"1.7\" -fpic -I/usr/lib/perl5/i386-linux/5.00404/CORE -DPERL_BYTEORDER=1234 md5c.c
Running Mkbootstrap for MD5 ()
chmod 644 MD5.bs
LD_RUN_PATH="" cc -o blib/arch/auto/MD5/MD5.so -shared -L/usr/local/lib MD5.o md5c.o
chmod 755 blib/arch/auto/MD5/MD5.so
cp MD5.bs ./blib/arch/auto/MD5/MD5.bs
chmod 644 blib/arch/auto/MD5/MD5.bs
Manifying ./blib/man3/MD5.3
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 test.pl
1..14
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
ok 9
ok 10
ok 11
ok 12
ok 13
ok 14
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/MD5/MD5.so
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/MD5/MD5.bs
Installing /usr/lib/perl5/site_perl/./auto/MD5/autosplit.ix
Installing /usr/lib/perl5/site_perl/./MD5.pm
Installing /usr/lib/perl5/man/man3/./MD5.3
Writing /usr/lib/perl5/site_perl/i386-linux/auto/MD5/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
Running make for GSAR/Data-Dumper-2.09.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/GSAR
GOT /root/.cpan/sources/authors/id/GSAR/Data-Dumper-2.09.tar.gz
Data-Dumper-2.09/
Data-Dumper-2.09/Dumper.html
Data-Dumper-2.09/t/
Data-Dumper-2.09/t/overload.t
Data-Dumper-2.09/t/dumper.t
Data-Dumper-2.09/MANIFEST.NOXSUB
Data-Dumper-2.09/Dumper.pm.NOXSUB
Data-Dumper-2.09/Dumper.xs
Data-Dumper-2.09/Todo
Data-Dumper-2.09/MANIFEST
Data-Dumper-2.09/Makefile.PL
Data-Dumper-2.09/Dumper.pm
Data-Dumper-2.09/Changes
Data-Dumper-2.09/README
CPAN.pm: Going to build GSAR/Data-Dumper-2.09.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Data::Dumper
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/lib/Data
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/Data
mkdir ./blib/arch/auto/Data/Dumper
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/Data
mkdir ./blib/lib/auto/Data/Dumper
cp Dumper.pm ./blib/lib/Data/Dumper.pm
/usr/bin/perl -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 /usr/lib/perl5/ExtUtils/xsubpp -typemap /usr/lib/perl5/ExtUtils/typemap Dumper.xs >Dumper.tc && mv Dumper.tc Dumper.c
cc -c -Dbool=char -DHAS_BOOL -I/usr/local/include -O2 -DVERSION=\"2.09\" -DXS_VERSION=\"2.09\" -fpic -I/usr/lib/perl5/i386-linux/5.00404/CORE Dumper.c
Running Mkbootstrap for Data::Dumper ()
chmod 644 Dumper.bs
LD_RUN_PATH="" cc -o blib/arch/auto/Data/Dumper/Dumper.so -shared -L/usr/local/lib Dumper.o
chmod 755 blib/arch/auto/Data/Dumper/Dumper.so
cp Dumper.bs ./blib/arch/auto/Data/Dumper/Dumper.bs
chmod 644 blib/arch/auto/Data/Dumper/Dumper.bs
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/dumper............ok
t/overload..........ok
All tests successful.
Files=2, Tests=139, 0 secs ( 0.55 cusr 0.05 csys = 0.60 cpu)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/Data/Dumper/Dumper.so
Installing /usr/lib/perl5/site_perl/i386-linux/./auto/Data/Dumper/Dumper.bs
Installing /usr/lib/perl5/site_perl/./Data/Dumper.pm
Writing /usr/lib/perl5/site_perl/i386-linux/auto/Data/Dumper/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/GBARR
GOT /root/.cpan/sources/authors/id/GBARR/Bundle-libnet-1.00.tar.gz
Bundle-libnet-1.00/
Bundle-libnet-1.00/Makefile.PL
Bundle-libnet-1.00/libnet.pm
Bundle-libnet-1.00/README
Bundle-libnet-1.00/MANIFEST
Data::Dumper is up to date.
Running make for JROGERS/Net-Telnet-3.01.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/JROGERS
GOT /root/.cpan/sources/authors/id/JROGERS/Net-Telnet-3.01.tar.gz
Net-Telnet-3.01/
Net-Telnet-3.01/Makefile.PL
Net-Telnet-3.01/ChangeLog
Net-Telnet-3.01/lib/
Net-Telnet-3.01/lib/Net/
Net-Telnet-3.01/lib/Net/Telnet.pm
Net-Telnet-3.01/t/
Net-Telnet-3.01/t/select.t
Net-Telnet-3.01/README
Net-Telnet-3.01/MANIFEST
CPAN.pm: Going to build JROGERS/Net-Telnet-3.01.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Net::Telnet
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/lib/Net
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/Net
mkdir ./blib/arch/auto/Net/Telnet
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/Net
mkdir ./blib/lib/auto/Net/Telnet
mkdir ./blib/man3
cp lib/Net/Telnet.pm ./blib/lib/Net/Telnet.pm
Manifying ./blib/man3/Net::Telnet.3
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/select............ok
All tests successful.
Files=1, Tests=1, 0 secs ( 0.38 cusr 0.02 csys = 0.40 cpu)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/./Net/Telnet.pm
Installing /usr/lib/perl5/man/man3/./Net::Telnet.3
Writing /usr/lib/perl5/site_perl/i386-linux/auto/Net/Telnet/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
Running make for GBARR/libnet-1.0605.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/GBARR
GOT /root/.cpan/sources/authors/id/GBARR/libnet-1.0605.tar.gz
libnet-1.0605/
libnet-1.0605/Net/
libnet-1.0605/Net/FTP/
libnet-1.0605/Net/FTP/dataconn.pm
libnet-1.0605/Net/FTP/L.pm
libnet-1.0605/Net/FTP/A.pm
libnet-1.0605/Net/FTP/E.pm
libnet-1.0605/Net/FTP/I.pm
libnet-1.0605/Net/POP3.pm
libnet-1.0605/Net/SMTP.pm
libnet-1.0605/Net/FTP.pm
libnet-1.0605/Net/Cmd.pm
libnet-1.0605/Net/DummyInetd.pm
libnet-1.0605/Net/NNTP.pm
libnet-1.0605/Net/SNPP.pm
libnet-1.0605/Net/Time.pm
libnet-1.0605/Net/Domain.pm
libnet-1.0605/Net/PH.pm
libnet-1.0605/Net/Netrc.pm
libnet-1.0605/demos/
libnet-1.0605/demos/smtp.self
libnet-1.0605/demos/nntp
libnet-1.0605/demos/pop3
libnet-1.0605/demos/time
libnet-1.0605/demos/snpp
libnet-1.0605/demos/nntp.mirror
libnet-1.0605/demos/ftp
libnet-1.0605/demos/inetd
libnet-1.0605/Hostname.pm.eg
libnet-1.0605/t/
libnet-1.0605/t/nntp.t
libnet-1.0605/t/ph.t
libnet-1.0605/t/require.t
libnet-1.0605/t/hostname.t
libnet-1.0605/t/smtp.t
libnet-1.0605/t/ftp.t
libnet-1.0605/FAQ.pod
libnet-1.0605/README.config
libnet-1.0605/MANIFEST
libnet-1.0605/Configure
libnet-1.0605/Makefile.PL
libnet-1.0605/ChangeLog
libnet-1.0605/README
CPAN.pm: Going to build GBARR/libnet-1.0605.tar.gz
Checking for Socket...ok
Checking for IO::Socket...ok
Checking for Data::Dumper...ok
Checking if your kit is complete...
Looks good
This script will prompt you to enter hostnames that can be used as
defaults for some of the modules in the libnet distribution.
To ensure that you do not enter an invalid hostname, I can perform a
lookup on each hostname you enter. If your internet connection is via
a dialup line then you may not want me to perform these lookups, as
it will require you to be on-line.
Do you want me to perform hostname lookups (y|n) ? [yes] no
*** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
OK I will not check if the hostnames you give are valid
so be very cafeful
*** WARNING *** WARNING *** WARNING *** WARNING *** WARNING ***
The following questions all require a list of host names, separated
with spaces. If you do not have a host available for any of the
services, then enter a single space, followed by <CR>. To accept the
default, hit <CR>
Enter a list of available NNTP hosts : [news]
Enter a list of available SMTP hosts : [mailhost]
Enter a list of available POP3 hosts : []
Enter a list of available SNPP hosts : []
Enter a list of available PH Hosts : [dirserv]
Enter a list of available TIME Hosts : []
Enter a list of available DAYTIME Hosts : []
Some companies access the internet via a firewall machine, and all
FTP access must be dove via this machine.
If to gain FTP access to a machine beyond a firewall, you have to use
a FTP proxy machine and login as username@remote.host then enter
the name of that gateway here.
FTP proxy hostname : []
Normally when FTP needs a data connection the client tells the server
a port to connect to, and the server initiates a connection to the client.
Some setups, in particular firewall setups, can/do not work using this
protocol. In these situations the client must make the connection to the
server, this is called a passive transfer.
Should all FTP connections via a firewall/proxy be passive (y|n) ? [no]
Should all other FTP connections be passive (y|n) ? [no]
What is your local internet domain name : [] tubby.org
If you specified some default hosts above, it is possible for me to
do some basic tests when you run `make test'
This will cause `make test' to be quite a bit slower and, if your
internet connection is via dialup, will require you to be on-line
unless the hosts are local.
Do you want me to run these tests (y|n) ? [yes]
To allow Net::FTP to be tested I will need a hostname. This host
should allow anonymous access and have a /pub directory
What host can I use : [] localhost
Writing libnet.cfg
Writing Makefile for Net
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/Net
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/Net
mkdir ./blib/man3
cp Net/DummyInetd.pm ./blib/lib/Net/DummyInetd.pm
cp Net/NNTP.pm ./blib/lib/Net/NNTP.pm
cp Net/FTP/dataconn.pm ./blib/lib/Net/FTP/dataconn.pm
cp Net/SNPP.pm ./blib/lib/Net/SNPP.pm
cp Net/FTP/I.pm ./blib/lib/Net/FTP/I.pm
cp Net/POP3.pm ./blib/lib/Net/POP3.pm
cp Net/SMTP.pm ./blib/lib/Net/SMTP.pm
cp Net/FTP/L.pm ./blib/lib/Net/FTP/L.pm
cp FAQ.pod ./blib/lib/FAQ.pod
cp Net/FTP.pm ./blib/lib/Net/FTP.pm
cp Net/Time.pm ./blib/lib/Net/Time.pm
cp Net/Cmd.pm ./blib/lib/Net/Cmd.pm
cp Net/Domain.pm ./blib/lib/Net/Domain.pm
cp Net/PH.pm ./blib/lib/Net/PH.pm
cp Net/FTP/A.pm ./blib/lib/Net/FTP/A.pm
cp libnet.cfg ./blib/arch/Net/Config.pm
cp Net/Netrc.pm ./blib/lib/Net/Netrc.pm
cp Net/FTP/E.pm ./blib/lib/Net/FTP/E.pm
Manifying ./blib/man3/Net::Time.3
Manifying ./blib/man3/FAQ.3
/usr/bin/pod2man: FAQ.pod is missing required section: DESCRIPTION
Manifying ./blib/man3/Net::Domain.3
Manifying ./blib/man3/Net::PH.3
Manifying ./blib/man3/Net::NNTP.3
Manifying ./blib/man3/Net::DummyInetd.3
Manifying ./blib/man3/Net::SNPP.3
Manifying ./blib/man3/Net::FTP.3
Manifying ./blib/man3/Net::POP3.3
Manifying ./blib/man3/Net::Netrc.3
Manifying ./blib/man3/Net::SMTP.3
Manifying ./blib/man3/Net::Cmd.3
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/ftp...............ok
t/hostname..........ok
t/nntp..............skipping test on this platform
t/ph................skipping test on this platform
t/require...........ok
t/smtp..............skipping test on this platform
All tests successful.
Files=6, Tests=16, 3 secs ( 2.12 cusr 0.23 csys = 2.35 cpu)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/i386-linux/./Net/Config.pm
Installing /usr/lib/perl5/site_perl/./Net/DummyInetd.pm
Installing /usr/lib/perl5/site_perl/./Net/NNTP.pm
Installing /usr/lib/perl5/site_perl/./Net/FTP/dataconn.pm
Installing /usr/lib/perl5/site_perl/./Net/FTP/I.pm
Installing /usr/lib/perl5/site_perl/./Net/FTP/L.pm
Installing /usr/lib/perl5/site_perl/./Net/FTP/A.pm
Installing /usr/lib/perl5/site_perl/./Net/FTP/E.pm
Installing /usr/lib/perl5/site_perl/./Net/SNPP.pm
Installing /usr/lib/perl5/site_perl/./Net/POP3.pm
Installing /usr/lib/perl5/site_perl/./Net/SMTP.pm
Installing /usr/lib/perl5/site_perl/./Net/FTP.pm
Installing /usr/lib/perl5/site_perl/./Net/Time.pm
Installing /usr/lib/perl5/site_perl/./Net/Cmd.pm
Installing /usr/lib/perl5/site_perl/./Net/Domain.pm
Installing /usr/lib/perl5/site_perl/./Net/PH.pm
Installing /usr/lib/perl5/site_perl/./Net/Netrc.pm
Installing /usr/lib/perl5/site_perl/./FAQ.pod
Installing /usr/lib/perl5/man/man3/./Net::Time.3
Installing /usr/lib/perl5/man/man3/./FAQ.3
Installing /usr/lib/perl5/man/man3/./Net::Domain.3
Installing /usr/lib/perl5/man/man3/./Net::PH.3
Installing /usr/lib/perl5/man/man3/./Net::NNTP.3
Installing /usr/lib/perl5/man/man3/./Net::DummyInetd.3
Installing /usr/lib/perl5/man/man3/./Net::SNPP.3
Installing /usr/lib/perl5/man/man3/./Net::FTP.3
Installing /usr/lib/perl5/man/man3/./Net::POP3.3
Installing /usr/lib/perl5/man/man3/./Net::Netrc.3
Installing /usr/lib/perl5/man/man3/./Net::SMTP.3
Installing /usr/lib/perl5/man/man3/./Net::Cmd.3
Writing /usr/lib/perl5/site_perl/i386-linux/auto/Net/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
Running make for KJALB/TermReadKey-2.12.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/KJALB
GOT /root/.cpan/sources/authors/id/KJALB/TermReadKey-2.12.tar.gz
TermReadKey-2.12/
TermReadKey-2.12/Makefile.PL
TermReadKey-2.12/ReadKey.pm
TermReadKey-2.12/test.pl
TermReadKey-2.12/Configure.pm
TermReadKey-2.12/genchars.pl
TermReadKey-2.12/README
TermReadKey-2.12/ReadKey.xs
TermReadKey-2.12/MANIFEST
CPAN.pm: Going to build KJALB/TermReadKey-2.12.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Term::ReadKey
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/lib/Term
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/Term
mkdir ./blib/arch/auto/Term/ReadKey
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/Term
mkdir ./blib/lib/auto/Term/ReadKey
mkdir ./blib/man3
cp ReadKey.pm ./blib/lib/Term/ReadKey.pm
AutoSplitting Term::ReadKey (./blib/lib/auto/Term/ReadKey)
/usr/bin/perl -I/usr/lib/perl5 genchars.pl
Writing termio/termios section of cchars.h... Done.
Checking for sgtty...
Sgtty NOT found.
Writing sgtty section of cchars.h... Done.
/usr/bin/perl -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 /usr/lib/perl5/ExtUtils/xsubpp -typemap /usr/lib/perl5/ExtUtils/typemap ReadKey.xs >ReadKey.tc && mv ReadKey.tc ReadKey.c
Please specify prototyping behavior for ReadKey.xs (see perlxs manual)
cc -c -Dbool=char -DHAS_BOOL -I/usr/local/include -O2 -DVERSION=\"2.12\" -DXS_VERSION=\"2.12\" -fpic -I/usr/lib/perl5/i386-linux/5.00404/CORE ReadKey.c
In file included from /usr/include/sys/select.h:31,
from ReadKey.xs:240:
/usr/include/selectbits.h:30: warning: `__FD_ZERO' redefined
/usr/include/asm/posix_types.h:65: warning: this is the location of the previous definition
/usr/include/selectbits.h:35: warning: `__FD_SET' redefined
/usr/include/asm/posix_types.h:45: warning: this is the location of the previous definition
/usr/include/selectbits.h:40: warning: `__FD_CLR' redefined
/usr/include/asm/posix_types.h:50: warning: this is the location of the previous definition
/usr/include/selectbits.h:49: warning: `__FD_ISSET' redefined
/usr/include/asm/posix_types.h:58: warning: this is the location of the previous definition
In file included from ReadKey.xs:240:
/usr/include/sys/select.h:60: warning: `FD_SET' redefined
/usr/include/linux/time.h:59: warning: this is the location of the previous definition
/usr/include/sys/select.h:61: warning: `FD_CLR' redefined
/usr/include/linux/time.h:60: warning: this is the location of the previous definition
/usr/include/sys/select.h:62: warning: `FD_ISSET' redefined
/usr/include/linux/time.h:61: warning: this is the location of the previous definition
/usr/include/sys/select.h:63: warning: `FD_ZERO' redefined
/usr/include/linux/time.h:62: warning: this is the location of the previous definition
In file included from ReadKey.xs:240:
/usr/include/sys/select.h:45: syntax error before `fd_mask'
/usr/include/sys/select.h:45: warning: empty declaration
/usr/include/sys/select.h:48: conflicting types for `fd_set'
/usr/include/linux/types.h:9: previous declaration of `fd_set'
/usr/include/sys/select.h:73: conflicting types for `__select'
/usr/include/sys/time.h:55: previous declaration of `__select'
/usr/include/sys/select.h:76: conflicting types for `select'
/usr/include/sys/time.h:58: previous declaration of `select'
ReadKey.xs: In function `selectfile':
ReadKey.xs:1441: `__fd_mask' undeclared (first use this function)
ReadKey.xs:1441: (Each undeclared identifier is reported only once
ReadKey.xs:1441: for each function it appears in.)
make: *** [ReadKey.o] Error 1
/usr/bin/make -- NOT OK
Running make test
Oops, make had returned bad status
Running make install
Oops, make had returned bad status
Running make for ILYAZ/modules/Term-ReadLine-Perl-0.9904.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/ILYAZ/modules
GOT /root/.cpan/sources/authors/id/ILYAZ/modules/Term-ReadLine-Perl-0.9904.tar.gz
Term-ReadLine-Perl-0.9904/
Term-ReadLine-Perl-0.9904/CHANGES
Term-ReadLine-Perl-0.9904/Makefile.PL
Term-ReadLine-Perl-0.9904/MANIFEST
Term-ReadLine-Perl-0.9904/ReadLine/
Term-ReadLine-Perl-0.9904/ReadLine/Perl.pm
Term-ReadLine-Perl-0.9904/ReadLine/readline.pm
Term-ReadLine-Perl-0.9904/README
Term-ReadLine-Perl-0.9904/test.pl
CPAN.pm: Going to build ILYAZ/modules/Term-ReadLine-Perl-0.9904.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for Term::ReadLine
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/lib/Term
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/Term
mkdir ./blib/arch/auto/Term/ReadLine
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/Term
mkdir ./blib/lib/auto/Term/ReadLine
cp ReadLine/Perl.pm ./blib/lib/Term/ReadLine/Perl.pm
cp ReadLine/readline.pm ./blib/lib/Term/ReadLine/readline.pm
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 test.pl
Features present: preput 1 tkRunning 1 appname 1 getHistory 1 ornaments 1 attribs 1 newTTY 1 autohistory 1 addHistory 1 minline 1 setHistory 1
Can't ioctl TIOCGETP: Invalid argument
Consider installing Term::ReadKey from CPAN site nearby
at http://www.perl.com/CPAN
Or use
perl -MCPAN -e shell
to reach CPAN. Falling back to 'stty'.
If you do not want to see this warning, set PERL_READLINE_NOWARN
in your environment.
Enter arithmetic or Perl expression: exit
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/./Term/ReadLine/Perl.pm
Installing /usr/lib/perl5/site_perl/./Term/ReadLine/readline.pm
Writing /usr/lib/perl5/site_perl/i386-linux/auto/Term/ReadLine/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
Running make for ULPFR/CPAN-WAIT-0.24.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/ULPFR
GOT /root/.cpan/sources/authors/id/ULPFR/CPAN-WAIT-0.24.tar.gz
CPAN-WAIT-0.24/
CPAN-WAIT-0.24/ChangeLog
CPAN-WAIT-0.24/Makefile.PL
CPAN-WAIT-0.24/lib/
CPAN-WAIT-0.24/lib/WAIT/
CPAN-WAIT-0.24/lib/WAIT/Client.pm
CPAN-WAIT-0.24/lib/CPAN/
CPAN-WAIT-0.24/lib/CPAN/WAIT.pm
CPAN-WAIT-0.24/README
CPAN-WAIT-0.24/t/
CPAN-WAIT-0.24/t/basic.t
CPAN-WAIT-0.24/MANIFEST
CPAN.pm: Going to build ULPFR/CPAN-WAIT-0.24.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for CPAN::WAIT
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/lib/CPAN
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/CPAN
mkdir ./blib/arch/auto/CPAN/WAIT
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/CPAN
mkdir ./blib/lib/auto/CPAN/WAIT
mkdir ./blib/man3
cp lib/WAIT/Client.pm ./blib/lib/WAIT/Client.pm
cp lib/CPAN/WAIT.pm ./blib/lib/CPAN/WAIT.pm
Manifying ./blib/man3/CPAN::WAIT.3
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/basic.............ok
All tests successful.
Files=1, Tests=5, 3 secs ( 0.90 cusr 0.08 csys = 0.98 cpu)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/site_perl/./CPAN/WAIT.pm
Installing /usr/lib/perl5/site_perl/./WAIT/Client.pm
Installing /usr/lib/perl5/man/man3/./CPAN::WAIT.3
Writing /usr/lib/perl5/site_perl/i386-linux/auto/CPAN/WAIT/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
Running make for ANDK/CPAN-1.40.tar.gz
Issuing "/usr/bin/ftp -n"
Local directory now /root/.cpan/sources/authors/id/ANDK
GOT /root/.cpan/sources/authors/id/ANDK/CPAN-1.40.tar.gz
CPAN-1.40/
CPAN-1.40/lib/
CPAN-1.40/lib/CPAN.pm
CPAN-1.40/lib/CPAN/
CPAN-1.40/lib/CPAN/Nox.pm
CPAN-1.40/lib/CPAN/FirstTime.pm
CPAN-1.40/lib/Bundle/
CPAN-1.40/lib/Bundle/CPAN.pm
CPAN-1.40/Todo
CPAN-1.40/t/
CPAN-1.40/t/loadme.t
CPAN-1.40/MANIFEST
CPAN-1.40/Makefile.PL
CPAN-1.40/Changes
CPAN-1.40/README
CPAN.pm: Going to build ANDK/CPAN-1.40.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for CPAN
mkdir ./blib
mkdir ./blib/lib
mkdir ./blib/arch
mkdir ./blib/arch/auto
mkdir ./blib/arch/auto/CPAN
mkdir ./blib/lib/auto
mkdir ./blib/lib/auto/CPAN
mkdir ./blib/man3
cp lib/CPAN/FirstTime.pm ./blib/lib/CPAN/FirstTime.pm
cp lib/CPAN.pm ./blib/lib/./CPAN.pm
cp lib/Bundle/CPAN.pm ./blib/lib/Bundle/CPAN.pm
cp lib/CPAN/Nox.pm ./blib/lib/CPAN/Nox.pm
Manifying ./blib/man3/CPAN::FirstTime.3
Manifying ./blib/man3/CPAN.3
Manifying ./blib/man3/Bundle::CPAN.3
Manifying ./blib/man3/CPAN::Nox.3
/usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl -I./blib/arch -I./blib/lib -I/usr/lib/perl5/i386-linux/5.00404 -I/usr/lib/perl5 -e 'use Test::Harness qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
t/loadme............ok
All tests successful.
Files=1, Tests=1, 0 secs ( 0.69 cusr 0.06 csys = 0.75 cpu)
/usr/bin/make test -- OK
Running make install
Installing /usr/lib/perl5/./CPAN/FirstTime.pm
Installing /usr/lib/perl5/./CPAN/Nox.pm
Installing /usr/lib/perl5/./CPAN.pm
Installing /usr/lib/perl5/./Bundle/CPAN.pm
Installing /usr/lib/perl5/man/man3/./CPAN::FirstTime.3
Installing /usr/lib/perl5/man/man3/./CPAN.3
Installing /usr/lib/perl5/man/man3/./Bundle::CPAN.3
Installing /usr/lib/perl5/man/man3/./CPAN::Nox.3
Writing /usr/lib/perl5/i386-linux/5.00404/auto/CPAN/.packlist
Appending installation info to /usr/lib/perl5/i386-linux/5.00404/perllocal.pod
/usr/bin/make install -- OK
cpan> q
Lockfile removed.
</pre>
<hr>
<h5>Version: $Id$</h5>
</body>
</html>

0
html/index.html Normal file
View File

0
html/install.html Normal file
View File

0
html/perl.html Normal file
View File

View File

@ -14,10 +14,11 @@ use DXVars;
use Carp;
use strict;
use vars qw(%bands %regions $bandsfn %valid);
use vars qw(%bands %regions %aliases $bandsfn %valid);
%bands = (); # the 'raw' band data
%regions = (); # list of regions for shortcuts eg vhf ssb
%aliases = (); # list of aliases
$bandsfn = "$main::data/bands.pl";
%valid = (
@ -47,6 +48,8 @@ sub load
sub get
{
my $call = shift;
my $ncall = $aliases{$call};
$call = $ncall if $ncall;
return $bands{$call};
}
@ -62,6 +65,25 @@ sub get_keys
return keys(%bands);
}
# get all the region keys
sub get_region_keys
{
return keys(%regions);
}
# get all the alias keys
sub get_alias_keys
{
return keys(%aliases);
}
# get a region
sub get_region
{
my $reg = shift;
return $regions{$reg};
}
# get all the frequency pairs associated with the band and sub-band offered
# the band can be a region, sub-band can be missing
#

128
perl/CmdAlias.pm Normal file
View File

@ -0,0 +1,128 @@
#
# This package simply takes a string, looks it up in a
# hash and returns the value.
#
# The hash is produced by reading the Alias file in both command directories
# which contain entries for the %cmd hash. This file is in different forms in
# the two directories:-
#
# in the main cmd directory it has entries like:-
#
# package CmdAlias;
#
# %alias = (
# sp => 'send private',
# s/p => 'send private',
# sb => 'send bulletin',
# );
#
# for the local cmd directory you should do it like this:-
#
# package CmdAlias;
#
# $alias{'s/p'} = 'send private';
# $alias{'s/b'} = 'send bulletin';
#
# This will allow you to override as well as add to the basic set of commands
#
# This system works in same way as the commands, if the modification times of
# the two files have changed then they are re-read.
#
# Copyright (c) 1998 Dirk Koopman G1TLH
#
# $Id$
#
package CmdAlias;
use DXVars;
use DXDebug;
use Carp;
use strict;
use vars qw(%alias $cmd_mtime $localcmd_mtime $fn $localfn);
%alias = ();
$cmd_mtime = 1;
$localcmd_mtime = 1;
$fn = "$main::cmd/Aliases";
$localfn = "$main::localcmd/Aliases";
sub checkfiles
{
my $m = -M $fn;
# print "m: $m oldmtime: $cmd_mtime\n";
if ($m < $cmd_mtime) {
do $fn;
confess $@ if $@;
$cmd_mtime = $m;
$localcmd_mtime = 0;
}
if (-e $localfn) {
$m = -M $localfn;
if ($m < $localcmd_mtime) {
do $localfn;
confess $@ if $@;
$localcmd_mtime = $m;
}
}
}
#
# called as CmdAlias::get_cmd("string");
#
sub get_cmd
{
my $s = shift;
my ($let) = unpack "A1", $s;
my ($i, $n, $ref);
$let = lc $let;
checkfiles();
$ref = $alias{$let};
return undef if !$ref;
$n = @{$ref};
for ($i = 0; $i < $n; $i += 3) {
if ($s =~ /$ref->[$i]/i) {
my $ri = qq{\$ro = "$ref->[$i+1]"};
my $ro;
eval $ri;
return $ro;
}
}
return undef;
}
#
# called as CmdAlias::get_hlp("string");
#
sub get_hlp
{
my $s = shift;
my ($let) = unpack "A1", $s;
my ($i, $n, $ref);
$let = lc $let;
checkfiles();
$ref = $alias{$let};
return undef if !$ref;
$n = @{$ref};
for ($i = 0; $i < $n; $i += 3) {
if ($s =~ /$ref->[$i]/i) {
my $ri = qq{$ref->[$i+2]};
return $ri;
}
}
return undef;
}

View File

@ -59,7 +59,8 @@ use vars qw(%channels %valid);
redirect => '0,Redirect messages to',
lang => '0,Language',
func => '9,Function',
loc => '9,Local Vars', # used by func to store local variables in
loc => '9,Local Vars', # used by func to store local variables in
lastread => '9,Last Msg Read',
);
# create a new channel object [$obj = DXChannel->new($call, $msg_conn_obj, $user_obj)]

View File

@ -17,15 +17,18 @@ use DXUser;
use DXVars;
use DXDebug;
use DXM;
use CmdAlias;
use FileHandle;
use Carp;
use strict;
use vars qw(%Cache %cmd_cache $errstr);
use vars qw(%Cache %cmd_cache $errstr %aliases);
%Cache = (); # cache of dynamically loaded routine's mod times
%cmd_cache = (); # cache of short names
$errstr = (); # error string from eval
%aliases = (); # aliases for (parts of) commands
#
# obtain a new connection this is derived from dxchannel
#
@ -109,6 +112,12 @@ sub normal
if ($cmd) {
my ($path, $fcmd);
# alias it if possible
my $acmd = CmdAlias::get_cmd($cmd);
if ($acmd) {
($cmd, $args) = "$acmd $args" =~ /^([\w\/]+)\s*(.*)/o;
}
# first expand out the entry to a command
($path, $fcmd) = search($main::localcmd, $cmd, "pl");
@ -386,9 +395,8 @@ sub find_cmd_name {
if (!open $fh, $filename) {
$errstr = "Syserr: can't open '$filename' $!";
};
my $old = $fh->input_record_separator(undef);
local $/ = undef;
my $sub = <$fh>;
$fh->input_record_separator($old);
close $fh;
#wrap the code into a subroutine inside our unique package

35
perl/DXLog.pm Normal file
View File

@ -0,0 +1,35 @@
#
# the general purpose logging machine
#
# This module is designed to allow you to log stuff in specific places
# and will rotate logs on a monthly, weekly or daily basis.
#
# The idea is that you give it a prefix which is a directory and then
# the system will log stuff to a directory structure which looks like:-
#
# daily:-
# spots/1998/<julian day no>[.<optional suffix>]
#
# weekly :-
# log/1998/<week no>[.<optional suffix>]
#
# monthly
# wwv/1998/<month>[.<optional suffix>]
#
# Routines are provided to read these files in and to append to them
#
# Copyright (c) - 1998 Dirk Koopman G1TLH
#
# $Id$
#
package DXLog;
use FileHandle;
use DXVars;
use DXDebug;
use DXUtil;
use Julian;
use Carp;
use strict;

View File

@ -167,6 +167,8 @@ sub process
push @{$ref->{gotit}}, $f[2]; # mark this up as being received
$ref->store($ref->{lines});
add_dir($ref);
my $dxchan = DXChannel->get($ref->{to});
$dxchan->send("New mail has arrived for you") if $dxchan;
}
$ref->stop_msg($self);
queue_msg();
@ -633,6 +635,8 @@ sub do_send_stuff
$ref->add_dir();
#push @out, $self->msg('sendsent', $to);
push @out, "msgno $ref->{msgno} sent to $to";
my $dxchan = DXChannel->get(uc $to);
$dxchan->send("New mail has arrived for you") if $dxchan;
}
}
delete $loc->{lines};
@ -658,6 +662,15 @@ sub do_send_stuff
return (1, @out);
}
# return the standard directory line for this ref
sub dir
{
my $ref = shift;
return sprintf "%6d%s%s%5d %8.8s %8.8s %-6.6s %5.5s %-30.30s",
$ref->msgno, $ref->read ? '-' : ' ', $ref->private ? 'p' : ' ', $ref->size,
$ref->to, $ref->from, cldate($ref->t), ztime($ref->t), $ref->subject;
}
no strict;
sub AUTOLOAD
{

View File

@ -262,6 +262,7 @@ sub normal
if ($pcno == 22) {last SWITCH;}
if ($pcno == 23 || $pcno == 27) { # WWV info
Geomag::update(@field[1..$#field]);
last SWITCH;
}
@ -301,6 +302,7 @@ sub normal
if ($pcno == 41) { # user info
# add this station to the user database, if required
$field[1] =~ s/-\d+$//o;
my $user = DXUser->get_current($field[1]);
$user = DXUser->new($field[1]) if !$user;

View File

@ -216,9 +216,9 @@ sub pc38
sub pc39
{
my ($call, $reason) = @_;
my $hops = get_hops(21);
my $hops = get_hops(39);
$reason = "Gone." if !$reason;
return "PC39^$call^$reason^";
return "PC39^$call^$reason^$hops^";
}
# cue up bulletin or file for transfer

View File

@ -45,6 +45,7 @@ $filename = undef;
annok => '9,Announces?,yesno', # accept his announces?
reg => '0,Registered?,yesno', # is this user registered?
lang => '0,Language',
hmsgno => '0,Highest Msgno',
);
no strict;
@ -71,8 +72,8 @@ sub init
{
my ($pkg, $fn) = @_;
die "need a filename in User" if !$fn;
$dbm = tie (%u, MLDBM, $fn, O_CREAT|O_RDWR, 0666) or die "can't open user file: $fn ($!)";
confess "need a filename in User" if !$fn;
$dbm = tie (%u, MLDBM, $fn, O_CREAT|O_RDWR, 0666) or confess "can't open user file: $fn ($!)";
$filename = $fn;
}
@ -94,8 +95,11 @@ sub finish
sub new
{
my ($pkg, $call) = @_;
die "can't create existing call $call in User\n!" if $u{$call};
my $pkg = shift;
my $call = uc shift;
$call =~ s/-\d+//o;
confess "can't create existing call $call in User\n!" if $u{$call};
my $self = {};
$self->{call} = $call;
@ -115,7 +119,7 @@ sub get
{
my $pkg = shift;
my $call = uc shift;
$call =~ s/-\d+//o; # strip ssid
$call =~ s/-\d+$//o; # strip ssid
return $u{$call};
}
@ -140,7 +144,7 @@ sub get_current
{
my $pkg = shift;
my $call = uc shift;
$call =~ s/-\d+//o; # strip ssid
$call =~ s/-\d+$//o; # strip ssid
my $dxchan = DXChannel->get($call);
return $dxchan->user if $dxchan;

124
perl/Geomag.pm Normal file
View File

@ -0,0 +1,124 @@
#!/usr/bin/perl
#
# The geomagnetic information and calculation module
#
# Copyright (c) 1998 - Dirk Koopman G1TLH
#
# $Id$
#
package Geomag;
use DXVars;
use DXUtil;
use FileHandle;
use Carp;
use strict;
use vars qw($date $sfi $k $a $forecast @allowed @denied);
$date = 0; # the unix time of the WWV (notional)
$sfi = 0; # the current SFI value
$k = 0; # the current K value
$a = 0; # the current A value
$forecast = ""; # the current geomagnetic forecast
@allowed = (); # if present only these callsigns are regarded as valid WWV updators
@denied = (); # if present ignore any wwv from these callsigns
my $dirprefix = "$main::data/wwv";
my $param = "$dirprefix/param";
sub init
{
mkdir $dirprefix, 0777 if !-e $dirprefix;
do "$param" if -e "$param";
confess $@ if $@;
}
# write the current data away
sub store
{
my $fh = new FileHandle;
open $fh, "> $param" or confess "can't open $param $!";
print $fh "# Geomagnetic data parameter file last mod:", scalar gmtime, "\n";
print $fh "\$date = $date;\n";
print $fh "\$sfi = $sfi;\n";
print $fh "\$a = $a;\n";
print $fh "\$k = $k;\n";
print $fh "\$forecast = '$forecast';\n";
print $fh "\@denied = qw(", join(' ', @denied), ");\n" if @denied > 0;
print $fh "\@allowed = qw(", join(' ', @allowed), ");\n" if @allowed > 0;
close $fh;
}
# update WWV info in one go (usually from a PC23)
sub update
{
my ($mydate, $mytime, $mysfi, $mya, $myk, $myforecast, $from, $node) = @_;
if ((@allowed && grep {$_ eq $from} @allowed) ||
(@denied && !grep {$_ eq $from} @denied) ||
(@allowed == 0 && @denied == 0)) {
my $trydate = cltounix($mydate, sprintf("%02d18Z", $mytime));
if ($trydate >= $date) {
$sfi = 0 + $mysfi;
$k = 0 + $myk;
$a = 0 + $mya;
$forecast = $myforecast;
store();
}
}
}
# add or substract an allowed callsign
sub allowed
{
my $flag = shift;
if ($flag eq '+') {
push @allowed, map {uc $_} @_;
} else {
my $c;
foreach $c (@_) {
@allowed = map {$_ ne uc $c} @allowed;
}
}
store();
}
# add or substract a denied callsign
sub denied
{
my $flag = shift;
if ($flag eq '+') {
push @denied, map {uc $_} @_;
} else {
my $c;
foreach $c (@_) {
@denied = map {$_ ne uc $c} @denied;
}
}
store();
}
# accessor routines (when I work how symbolic refs work I might use one of those!)
sub sfi
{
@_ ? $sfi = shift : $sfi ;
}
sub k
{
@_ ? $k = shift : $k ;
}
sub a
{
@_ ? $a = shift : $a ;
}
sub forecast
{
@_ ? $forecast = shift : $forecast ;
}
1;
__END__;

View File

@ -146,9 +146,9 @@ sub extract
# remove any /0-9 /P /A /M /MM /AM suffixes etc
if (@parts > 1) {
$p = $parts[$#parts];
pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX)$/o;
pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX|Q\w+)$/o;
$p = $parts[$#parts];
pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX)$/o;
pop @parts if $p =~ /^(\d+|[PABM]|AM|MM|BCN|SIX|Q\w+)$/o;
# can we resolve them by direct lookup
foreach $p (@parts) {

View File

@ -27,6 +27,11 @@ $defaultspots = 10; # normal number of spots to return
$maxdays = 35; # normal maximum no of days to go back
$dirprefix = "$main::data/spots";
sub init
{
mkdir "$dirprefix", 0777 if !-e "$dirprefix";
}
sub prefix
{
return $dirprefix;

View File

@ -59,6 +59,8 @@ sub cease
if (defined $conn && $sendz) {
$conn->send_now("Z$call|bye...\n");
}
STDOUT->flush;
sleep(2);
exit(0);
}
@ -201,6 +203,20 @@ $SIG{'HUP'} = \&sig_term;
$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);

View File

@ -35,13 +35,14 @@ use DXCron;
use DXConnect;
use Prefix;
use Bands;
use Geomag;
use Carp;
package main;
@inqueue = (); # the main input queue, an array of hashes
$systime = 0; # the time now (in seconds)
$version = 1.1; # the version no of the software
$version = 1.2; # the version no of the software
# handle disconnections
sub disconnect
@ -195,6 +196,12 @@ $SIG{'HUP'} = 'IGNORE';
# initialise the protocol engine
DXProt->init();
# initialise the Geomagnetic data engine
Geomag->init();
# initial the Spot stuff
Spot->init();
# put in a DXCluster node for us here so we can add users and take them away
DXNode->new(0, $mycall, 0, 1, $DXProt::myprot_version);

28
perl/talias.pl Executable file
View File

@ -0,0 +1,28 @@
#!/usr/bin/perl
#
# alias testing tool
#
# search local then perl directories
BEGIN {
# root of directory tree for this system
$root = "/spider";
$root = $ENV{'DXSPIDER_ROOT'} if $ENV{'DXSPIDER_ROOT'};
unshift @INC, "$root/perl"; # this IS the right way round!
unshift @INC, "$root/local";
}
use DXVars;
use CmdAlias;
use Carp;
while (<>) {
chomp;
last if /^q$/;
$o1 = CmdAlias::get_cmd($_);
$o2 = CmdAlias::get_hlp($_);
print "in: $_ cmd: $o1 hlp: $o2\n";
}