1. ignore \n in ax25 mode for C client.
2. remove extra space at the end of a DX spot announce when no grid square
is output.
+3. added new admin manual from Ian G0VGS
20Jul00=======================================================================
1. Finally managed to update my source with the sourceforge one
2. added user->qra cleaning in various places
<HR>
<H2><A NAME="s1">1. Installation (Original version by Iain Phillips, G0RDI)</A></H2>
-<P>Last modified: 18 June 2000 by Ian Maude, G0VGS
+<P>Last modified: 25 July 2000 by Ian Maude, G0VGS
<P>
<H2><A NAME="ss1.1">1.1 Introduction</A>
</H2>
<LI> MD5-1.7.tar.gz</LI>
<LI> Data-Dumper-2.10.tar.gz</LI>
<LI> FreezeThaw-0.3.tar.gz</LI>
-<LI> MLDBM-2.00.ar.gz</LI>
+<LI> MLDBM-2.00.tar.gz</LI>
<LI> TimeDate-1.8.tar.gz</LI>
-<LI> IO-1.20.tar.tgz</LI>
-<LI> Net-Telnet-3.01.tar.gz</LI>
+<LI> IO-1.20.tar.gz</LI>
+<LI> Net-Telnet-3.02.tar.gz</LI>
<LI> Curses-1.02.tar.gz
</LI>
</UL>
$ cd /spider
$ mkdir local
$ mkdir local_cmd
-$ cp perl/DXVars.pm local
+$ cp perl/DXVars.pm.issue local/DXVars.pm
$ cd local
$ vi DXVars.pm (or your favourite editor)
</PRE>
<P>
<P><B>PLEASE USE CAPITAL LETTERS FOR CALLSIGNS</B>
<P>
-<P>DON'T alter the DXVars.pm (or any other file) in /spider/perl, they are overwritten with every release. Any files or commands you place in /spider/local or /spider/local_cmd will automagically be used in preference to the ones in /spider/perl EVEN whilst the cluster is running!
+<P>DON'T alter the DXVars.pm (or any other file) in /spider/perl, they are overwritten with every release. Any files or commands you place in /spider/local or /spider/local_cmd will automagically be used in preference to the ones in /spider/perl EVEN while the cluster is running!
<P>
<P>Save the new file and change directory to ../perl ....
<P>
<P>
<PRE>
-# All lines starting with a # are ignored, as are wholly blank lines.
+# All lines starting with a # are ignored, as are completely blank lines.
timeout timeout followed by a number is the number of seconds to wait for a
command to complete. If there is no timeout specified in the script
<HR>
<H2><A NAME="s5">5. Filtering</A></H2>
-<P>Filters can be set for spots, announcements and WWV. You will find the directories for these under /spider/filter. You will find some example in the directories with the suffix <EM>.issue</EM>. There are two types of filter, one for incoming information and one for outgoing information. Outgoing filters are in the form <EM>CALLSIGN.pl</EM> and incoming filters are in the form <EM>in_CALLSIGN.pl</EM>. Filters can be set for both nodes and users.
+<P>Filters can be set for spots, announcements and WWV. You will find the directories for these under /spider/filter. You will find some examples in the directories with the suffix <EM>.issue</EM>. There are two types of filter, one for incoming information and one for outgoing information. Outgoing filters are in the form <EM>CALLSIGN.pl</EM> and incoming filters are in the form <EM>in_CALLSIGN.pl</EM>. Filters can be set for both nodes and users.
+<P>
+<P>All filters work in basically the same way. There are several elements delimited by commas.
+There can be many lines in the filter and they are read from the top by the program.
+When writing a filter you need to think carefully about just what you want to achieve. You
+are either going to write a filter to <EM>accept</EM> or to <EM>reject</EM>.
+Think of a filter as having 2 main elements. For a reject filter, you would have a line
+or multiple lines rejecting the things you do not wish to receive and then a default
+line accepting everything else that is not included in the filter. Likewise, for an
+accept filter, you would have a line or multiple lines accepting the things you wish
+to receive and a default line rejecting everthing else.
+<P>
+<P>In the example below, a user requires a filter that would only return SSB spots
+posted in Europe on the HF bands. This is achieved by first rejecting the CW section
+of each HF band and rejecting all of VHF, UHF etc based on frequency.
+Secondly, a filter rule is set based on CQ zones to only accept spots posted in
+Europe. Lastly, a default filter rule is set to reject anything outside the filter.
+<P>
+<BLOCKQUOTE><CODE>
+<PRE>
+$in = [
+ [ 0, 0, 'r', # reject all CW spots
+ [
+ 1800.0, 1850.0,
+ 3500.0, 3600.0,
+ 7000.0, 7040.0,
+ 14000.0, 14100.0,
+ 18068.0, 18110.0,
+ 21000.0, 21150.0,
+ 24890.0, 24930.0,
+ 28000.0, 28180.0,
+ 30000.0, 49000000000.0,
+ ] ,1 ],
+ [ 1, 11, 'n', [ 14, 15, 16, 20, 33, ], 15 ], #accept EU
+ [ 0, 0, 'd', 0, 1 ], # 1 = want, 'd' = everything else
+];
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>
+<P>The actual elements of each filter are described more fully in the following sections.
<P>
<H2><A NAME="ss5.1">5.1 Spots</A>
</H2>
-<P>All filters work in basically the same way. There are several elements delimited by commas. I will use the spot filter as an example ....
-<P>
<P>The elements of the Spot filter are ....
<P>
<BLOCKQUOTE><CODE>
<P>
<BLOCKQUOTE><CODE>
<PRE>
+ [ 0, 0, 'r',
[
1800.0, 2000.0, # top band
10100.0, 10150.0, # WARC
</CODE></BLOCKQUOTE>
<P>You can create aliases for commands at will. Beware though, these may not always turn out as you think. Care is needed and you need to test the results once you have set an alias.
<P>
-<H2><A NAME="ss6.5">6.5 Console.pl</A>
+<H2><A NAME="ss6.5">6.5 Forward.pl</A>
+</H2>
+
+<P>DXSpider receives all and any mail sent to it without any alterations needed
+in files. Because personal and bulletin mail are treated differently, there
+is no need for a list of accepted bulletin addresses. It is necessary, however,
+to tell the program which links accept which bulletins. For example, it is
+pointless sending bulletins addresses to "UK" to any links other than UK
+ones. The file that does this is called forward.pl and lives in /spider/msg.
+At default, like other spider files it is named forward.pl.issue. Rename it
+to forward.pl and edit the file to match your requirements.
+The format is below ...
+<P>
+<BLOCKQUOTE><CODE>
+<PRE>
+#
+# this is an example message forwarding file for the system
+#
+# The format of each line is as follows
+#
+# type to/from/at pattern action destinations
+# P/B/F T/F/A regex I/F [ call [, call ...] ]
+#
+# type: P - private, B - bulletin (msg), F - file (ak1a bull)
+# to/from/at: T - to field, F - from field, A - home bbs, O - origin
+# pattern: a perl regex on the field requested
+# action: I - ignore, F - forward
+# destinations: a reference to an array containing node callsigns
+#
+# if it is non-private and isn't in here then it won't get forwarded
+#
+# Currently only type B msgs are affected by this code.
+#
+# The list is read from the top down, the first pattern that matches
+# causes the action to be taken.
+#
+# The pattern can be undef or 0 in which case it will always be selected
+# for the action specified
+#
+# If the BBS list is undef or 0 and the action is 'F' (and it matches the
+# pattern) then it will always be forwarded to every node that doesn't have
+# it (I strongly recommend you don't use this unless you REALLY mean it, if
+# you allow a new link with this on EVERY bull will be forwarded immediately
+# on first connection)
+#
+
+package DXMsg;
+
+@forward = (
+'B', 'T', 'LOCAL', 'F', [ qw(GB7MBC) ],
+'B', 'T', 'ALL', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'UK', 'F', [ qw(GB7BAA GB7ADX) ],
+'B', 'T', 'QSL', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'QSLINF', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'DX', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'DXINFO', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'DXNEWS', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'DXQSL', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+'B', 'T', 'SYSOP', 'F', [ qw(GB7BAA GB7ADX) ],
+'B', 'T', '50MHZ', 'F', [ qw(GB7BAA GB7ADX PA4AB-14) ],
+);
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>Simply insert a bulletin address and state in the brackets where you wish
+that mail to go. For example, you can see here that mail sent to "UK" will
+only be sent to the UK links and not to PA4AB-14.
+<P>
+<P>To force the cluster to reread the file use load/forward
+<P>
+<H2><A NAME="ss6.6">6.6 Distribution lists</A>
+</H2>
+
+<P>Distribution lists are simply a list of users to send certain types of
+mail to. An example of this is mail you only wish to send to other
+sysops. In /spider/msg there is a directory called <EM>distro</EM>. You
+put any distibution lists in here. For example, here is a file called
+SYSOP.pl that caters for the UK sysops.
+<P>
+<BLOCKQUOTE><CODE>
+<PRE>
+qw(GB7TLH GB7DJK GB7DXM GB7CDX GB7BPQ GB7DXN GB7MBC GB7MBC-6 GB7MDX
+ GB7NDX GB7SDX GB7TDX GB7UDX GB7YDX GB7ADX GB7BAA GB7DXA GB7DXH
+ GB7DXK GB7DXI GB7DXS)
+</PRE>
+</CODE></BLOCKQUOTE>
+<P>Any mail sent to "sysop" would only be sent to the callsigns in this list.
+<P>
+<H2><A NAME="ss6.7">6.7 Console.pl</A>
</H2>
<P>In later versions of Spider a simple console program is provided for the sysop. This has a type ahead buffer with line editing facilities and colour for spots, announces etc.
<H2><A NAME="ss7.12">7.12 init (5)</A>
</H2>
-<P><CODE><B>init <node call></B> Re-initialise a link to an AK1A compatible node</CODE>
+<P><CODE><B>init <node call></B> Re-initialise a link to an AK1A compatible node</CODE>
<P>
<P>This command attempts to re-initialise a link to a (usually) AK1A node
that has got confused, usually by a protocol loop of some kind. It may
<H2><A NAME="ss7.26">7.26 set/debug (9)</A>
</H2>
-<P><CODE><B>set/debug <name></B>Add a debug level to the debug set</CODE>
+<P><CODE><B>set/debug <name></B> Add a debug level to the debug set</CODE>
<P>
<P>You can remove this level with unset/debug <name>
<P>
<H2><A NAME="ss7.28">7.28 set/sys_location (9)</A>
</H2>
-<P><CODE><B>set/sys_location <lat & long></B>Set your cluster latitude and longitude</CODE>
+<P><CODE><B>set/sys_location <lat & long></B> Set your cluster latitude and longitude</CODE>
<P>
<P>In order to get accurate headings and such like you must tell the system
what your latitude and longitude is. If you have not yet done a SET/QRA
<H2><A NAME="ss7.29">7.29 set/lockout (9)</A>
</H2>
-<P><CODE><B>set/lockout <call></B>Stop a callsign connecting to the cluster</CODE>
+<P><CODE><B>set/lockout <call></B> Stop a callsign connecting to the cluster</CODE>
<P>
<P>You can show who is locked out with the show/lockout (9) command.
<P>To allow the user to connect again, use the command unset/lockout
<H2><A NAME="ss7.30">7.30 set/node (9)</A>
</H2>
-<P><CODE><B>set/node <call> [<call> ...]</B>Make the callsign an AK1A cluster</CODE>
+<P><CODE><B>set/node <call> [<call> ...]</B> Make the callsign an AK1A cluster</CODE>
<P>
<P>Tell the system that the call(s) are to be treated as AK1A cluster and
fed PC Protocol rather normal user commands.
<H2><A NAME="ss7.37">7.37 shutdown (5)</A>
</H2>
-<P><CODE><B>shutdown</B>Shutdown the cluster</CODE>
+<P><CODE><B>shutdown</B> Shutdown the cluster</CODE>
<P>
<P>Shutdown the cluster and disconnect all the users. If you have Spider
set to respawn in /etc/inittab it will of course restart.
<P>
-<H2><A NAME="ss7.38">7.38 stat/db (5)</A>
+<H2><A NAME="ss7.38">7.38 spoof (9)</A>
+</H2>
+
+<P><CODE><B>spoof <callsign> <command></B> Run commands as another user</CODE>
+<P>
+<P>This is a very simple yet powerful command for the sysop. It allows you to
+issue commands as if you were a different user. This is very useful for the
+kind of things that users seem to always get wrong.. like home_node for
+example.
+<P>
+<H2><A NAME="ss7.39">7.39 stat/db (5)</A>
</H2>
<P><CODE><B>stat/db <dbname></B> Show the status of a database</CODE>
<P>Depending on your privilege level you will see more or less information.
This command is unlikely to be of much use to anyone other than a sysop.
<P>
-<H2><A NAME="ss7.39">7.39 stat/channel (5)</A>
+<H2><A NAME="ss7.40">7.40 stat/channel (5)</A>
</H2>
<P><CODE><B>stat/channel <callsign></B> Show the status of a channel on the cluster</CODE>
you are on or else for the callsign that you asked for.
<P>Only the fields that are defined (in perl term) will be displayed.
<P>
-<H2><A NAME="ss7.40">7.40 stat/msg (5)</A>
+<H2><A NAME="ss7.41">7.41 stat/msg (5)</A>
</H2>
<P><CODE><B>stat/msg <msgno></B> Show the status of a message</CODE>
<P>This command shows the internal status of a message and includes information
such as to whom it has been forwarded, its size, origin etc etc.
<P>
-<H2><A NAME="ss7.41">7.41 stat/user (5)</A>
+<H2><A NAME="ss7.42">7.42 stat/user (5)</A>
</H2>
<P><CODE><B>stat/user <callsign></B> Show the full status of a user</CODE>
<HR>
<H1>The DXSpider Installation and Administration Manual </H1>
-<H2>Ian Maude, G0VGS, (ianmaude@btinternet.com)</H2>Version 1.21 June 2000
+<H2>Ian Maude, G0VGS, (ianmaude@btinternet.com)</H2>Version 1.24 July 2000
<P><HR>
<EM>A reference for SysOps of the DXSpider DXCluster program.</EM>
<HR>
<LI><A HREF="adminmanual-6.html#ss6.2">6.2 Downtime message</A>
<LI><A HREF="adminmanual-6.html#ss6.3">6.3 Other text messages</A>
<LI><A HREF="adminmanual-6.html#ss6.4">6.4 The Aliases file</A>
-<LI><A HREF="adminmanual-6.html#ss6.5">6.5 Console.pl</A>
+<LI><A HREF="adminmanual-6.html#ss6.5">6.5 Forward.pl</A>
+<LI><A HREF="adminmanual-6.html#ss6.6">6.6 Distribution lists</A>
+<LI><A HREF="adminmanual-6.html#ss6.7">6.7 Console.pl</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="adminmanual-7.html">Sysop commands</A></H2>
<LI><A HREF="adminmanual-7.html#ss7.35">7.35 set/sys_qra (9)</A>
<LI><A HREF="adminmanual-7.html#ss7.36">7.36 show program (5)</A>
<LI><A HREF="adminmanual-7.html#ss7.37">7.37 shutdown (5)</A>
-<LI><A HREF="adminmanual-7.html#ss7.38">7.38 stat/db (5)</A>
-<LI><A HREF="adminmanual-7.html#ss7.39">7.39 stat/channel (5)</A>
-<LI><A HREF="adminmanual-7.html#ss7.40">7.40 stat/msg (5)</A>
-<LI><A HREF="adminmanual-7.html#ss7.41">7.41 stat/user (5)</A>
+<LI><A HREF="adminmanual-7.html#ss7.38">7.38 spoof (9)</A>
+<LI><A HREF="adminmanual-7.html#ss7.39">7.39 stat/db (5)</A>
+<LI><A HREF="adminmanual-7.html#ss7.40">7.40 stat/channel (5)</A>
+<LI><A HREF="adminmanual-7.html#ss7.41">7.41 stat/msg (5)</A>
+<LI><A HREF="adminmanual-7.html#ss7.42">7.42 stat/user (5)</A>
</UL>
<HR>
<A HREF="adminmanual-1.html">Next</A>