DXSpider Variables Reference

From DXSpider Documentation Wiki
Jump to navigation Jump to search

The list of variables comes from the files and code in the /spider/perl directory.

WARNING! If you are unsure of what you are doing, backup all files before making changes otherwise you are likely to break your installation.

This is a list of the variables found in the various files and code of the DXSpider cluster programs written by Dirk Koopman, G1TLH.

$ - scalar variable

@ - array variable

% - hash variable


/spider/perl

AGWMsg

$AGWMsg::enable - enable the AGW engine (1)
$AGWMsg::login - user name you are logging in as
$AGWMsg::passwd - login password
$AGWMsg::addr - ip addres of the AGW engine you are logging in to
$AGWMsg::port - the listening port of the AGW engine
$AGWMsg::monitor - default monitor status
$AGWMsg::ypolltime - time between polls of channel queues
$AGWMsg::hpolltime - time between polls of Mheard

AnnTalk

$AnnTalk::duplth - the length of text to use in the deduping
$AnnTalk::dupage - the length of time to hold ann dupes
$AnnTalk::filterdef - declaration of filtering definitions 

Bands

%Bands::bands - the 'raw' band data
%Bands::regions - list of regions for shortcuts eg. vhf ssb
%Bands::aliases - list of aliases

BBS

%BBS::bid - bid hash
$BBS::bidfn - the bid file filename
$BBS::lastbidclean - the last time the bid file was cleaned
$BBS::bidcleanint - the time between bid cleaning intervals
$BBS::maxbidage - the maximum age of a stored bid

BPQMsg

$BPQMsg::enable - set to 1 to enable BPQ handling
$BPQMsg::ApplMask - Applmask is normally 1, unless you are already running another BPQ app such as a BBS
$BPQMsg::BPQStreams - streams to allocate - used for both incoming and outgoing connects 

main

$main::version - DXSpider version
$main::root - dxspider filesystem root path
$main::systime - the time now (in seconds)
@main::inqueue - the main input queue, an array of hashes
$main::starttime - the starting time of the cluster
@main::outstanding_connects - list of outstanding connects
@main::listeners - list of listeners
$main::lang - default language
$main::clusteraddr - cluster tcp host address - used for things like console.pl
$main::clusterport - cluster tcp port
$main::reqreg - 1 = registration required 2 = deregister people
$main::bumpexisting - 1 = allow new connection to disconnect old, 0 - don't allow it
$main::allowdxby - 1 = allow "dx by <othercall>", 0 - don't allow it
$main::maxconnect_user - the maximum no of concurrent connections a user can have at a time
$main::maxconnect_node - Ditto but for nodes. In either case if a new incoming connection takes the no of   references in the routing table above these numbers then the connection is refused. This only affects INCOMING connections.
$main::idle_interval - the wait between invocations of the main idle loop processing
$main::log_flush_interval - interval to wait between log flushes
$main::broadcast_debug - allow broadcasting of debug info down "enhanced" user connections
$main::yes - visual representation of yes
$main::no - visual representation of no
$main::user_interval - the interval between unsolicited prompts if no traffic
$main::local_data - path to local_data dir
$main::localcmd - path to local_cmd dir
$main::cmd - path to cmd dir
$main::system - path to system dir
$main::data - path to data dir
$main::allowslashcall - Allow / in connecting callsigns (ie PA0/G1TLH, or even PA0/G1TLH/2)
$main::localhost_alias_ipv4 - these are the IPV4 & 6 aliases for localhost connected clients
$main::localhost_alias_ipv6 - for things (PC92, PC61 etc) that expose IP addresses. These *may* be set by  Msg.pm stuff if they are left undefined but, if you need certanty then set/var them in the startup file.
$main::save_route_cache - save and restore route cache on restart. Probably only useful for G1TLH testing
$main::foreground - foreground color from Console.pm (see Console.pm header)
$main::background - background color from Console.pm (see Console.pm header)
$main::mycallcolor - color of mycall from Console.pm (see Console.pm header)
$main::mycall - call of the node in capital letters
$main::myname - sysop name
$main::myalias - sysop callsign
$main::mylatitude - Your latitude (+)ve = North (-)ve = South in degrees and decimal degrees
$main::mylongitude - Your Longtitude (+)ve = East, (-)ve = West in degrees and decimal degrees
$main::mylocator - Your locator (USE CAPITAL LETTERS)
$main::myqth - Your QTH (roughly), SomeTown, SomeState
$main::myemail - your e-mail address
@main::my_cc - the country codes that my node is located in
@main::debug - are we debugging
$main::do_xml - are we doing XML
$main::dsn = the SQL database DBI dsn
$main::dbuser - database user login
$main::dbpass - database password login
$main::data - data file directory path
$main::local_data - local_data directory path
$main::system - system files live in (except they don't, not really)
$main::cmd - command file directory path
$main::localcmd - local command file directory path
$main::userfn - user data file directory path
$main::motd - message of the day file

DXChannel

$DXChannel::maxerrors - the maximum number of concurrent errors allowed before disconnection

DXCommandmode

%DXCommandmode::Cache - cache of dynamically loaded routine's mod times
%DXCommandmode::cmd_cache - cache of short names
$DXCommandmode::errstr - error string from eval
%DXCommandmode::aliases - aliases for (parts of) commands
$DXCommandmode::scriptbase - the place where all users start scripts go
%DXCommandmode::nothereslug
$DXCommandmode::maxbadcount - no of bad words allowed before disconnection
$DXCommandmode::msgpolltime - the time between polls for new messages
$DXCommandmode::default_pagelth
$DXCommandmode::cmdimportdir - the base directory for importing command scripts this does not exist as default, you need to create it manually
$DXCommandmode::users - no of users on this node currently
$DXCommandmode::maxusers - max no users on this node for this run
$DXCommandmode::maxcmdlth - max length of incoming cmd line (including the command and any arguments
$DXCommandmode::maxcmdcount - max no cmds entering $cmdinterval seconds
$DXCommandmode::cmdinterval - if user enters more than $maxcmdcount in $cmdinterval seconds, they are logged off

DXDb

$DXDb::opentime - length of time a database stays open after last access
$DXDb::dbbase - where all the databases are kept
%DXDb::avail - the hash contains a list of all the databases
%DXDb::valid
$DXDb::lastprocesstime
$DXDb::nextstream
%DXDb::stream

DXDebug

$DXDebug::keepdays - number of days to keep debug logs

DXMsg

%DXMsg::work - outstanding jobs
@DXMsg::msg - messages we have
$DXMsg::msgdir - directory contain the msgs
%DXMsg::busy - station interlocks
$DXMsg::maxage - the maximum age that a message shall live for if not marked
$DXMsg::last_clean - last time we did a clean
$DXMsg::residencetime - keep deleted messages for this amount of time
@DXMsg::badmsg - bad message table
@DXMsg::swop - swop table
$DXMsg::swopfn - the swopping table
$DXMsg::badmsgfn - list of TO address we wont store
$DXMsg::forwardfn - the forwarding table
@DXMsg::forward - msg forward table
$DXMsg::timeout - forwarding timeout
$DXMsg::waittime - time an aborted outgoing message waits before trying again
$DXMsg::email_server - DNS address of smtp server if 'smtp'
$DXMsg::email_prog - program name + args for sending mail
$DXMsg::email_from - the from address the email will to be from
$DXMsg::queueinterval - run the queue every 1 minute
$DXMsg::lastq
$DXMsg::importfn - import directory
$DXMsg::minchunk - minimum chunk size for a split message
$DXMsg::maxchunk - maximum chunk size
$DXMsg::bulltopriv - convert msgs with callsigns to private if they are bulls

DXProt

$DXProt::pc11_max_age - the maximum age for an incoming 'real-time' pc11
$DXProt::pc23_max_age - the maximum age for an incoming 'real-time' pc23
$DXProt::last_hour - last time I did an hourly periodic update
%DXProt::rcmds - outstanding rcmd requests outbound
%DXProt::pc19list - list of outstanding PC19s that haven't had PC16s on them
$DXProt::pc19_version - the visible version no for outgoing PC19s generated from pc59
%DXProt::nodehops - node specific hop control
$DXProt::censorpc - Do a BadWords::check on test fields and reject things loads of 'bad things' 1 ->  enabled
$DXProt::pc9x_past_age - maximum age in the past of a px9x (a config record might be the only thing a node might send - once an hour and we allow an extra hour for luck) this is actually the partition between "yesterday" and "today" but old.
$DXProt::pc9x_dupe_age - catch loops of circular (usually) D records
$DXProt::pc10_dupe_age - just something to catch duplicate PC10->PC93 conversions
$DXProt::pc92_slug_changes - slug any changes going outward for this long
$DXProt::last_pc92_slug - the last time we sent out any delayed add or del PC92s
$DXProt::pc9x_time_tolerance - the time on a pc9x is allowed to be out by this amount
$DXProt::senderverify - 1 -> check for forged PC11 or PC61 2 -> if forged, dump them ¹
$DXProt::pc11_dwell_time - number of seconds to wait for a PC61 to come to substitute the PC11
$DXProt::pc61_extract_route - generate missing  user route entry and IP address from passing PC61s
$DXProt::preserve_node_ssid - With the changes to badnode set this to 1 to preserve badnode ssids
$DXProt::pc92_update_period - the period between outgoing PC92 C updates
%DXProt::pc92_find - outstanding pc92 find operations
$DXProt::pc92_find_timeout - maximum time to wait for a reply
$DXProt::pc92_short_update_period - shorten the update period after a connection or start up
$DXProt::pc92_extnode_update_period - the update period for external nodes
$DXProt::pc92_keepalive_period - frequency of PC92 K (keepalive) records
$DXProt::pc92_ad_enabled - send pc92 A & D records
$DXProt::pc92c_ipaddr_enable - add the local ip address info to each callsign in a PC92 C
$DXProt::pc50_interval - the interval between pc50s (in seconds)
$DXProt::myprot_version - the version of DX cluster (tm) software I am masquerading as
$DXProt::def_hopcount - default hopcount to use
%DXProt::hopcount - some variable hop counts based on message type
@DXProt::nodx_node - list of nodes we don't accept dx from
@DXProt::noann_node - list of nodes we don't accept announces from
@DXProt::nowwv_node - list of node we don't accept wwvs from
$DXProt::send_opernam - send out for/opernams for callsigns sending dx spots who haven't got qra locators
$DXProt::disable_set_external_ip - enable/disable auto detection of IPv4 external address 1=disabled
$DXProt::remove_auto_ftx - remove automatically generated FTx spots, default=0

DXUser

$DXUser::maxconnlist

DXXml

$DXXml::xs - the XML::Simple parser instance
$DXXml::id - the next ID to be used
$DXXml::max_old_age - how old a sentence we will accept
$DXXml::max_future_age - how far into the future we will accept
$DXXml::dupeage - duplicates stored half a day

Geomag

$Geomag::date - the unix time of the WWV (notional)
$Geomag::sfi - the current SFI value
$Geomag::k - the current K value
$Geomag::a - the current A value
$Geomag::r - the current R value
$Geomag::forecast - the current geomagnetic forecast
@Geomag::allowed - if present only these callsigns are regarded as valid WWV updators
@Geomag::denied - if present ignore any wwv from these callsigns
$Geomag::fp - the DXLog fcb
$Geomag::node - the originating node
$Geomag::from - who this came from
$Geomag::duplth - the length of text to use in the deduping
$Geomag::dupage - the length of time to hold spot dups

Internet

$Internet::contest_host - url of the contest host for show/contest
$Internet::allow - set this flag to 1 if you want to allow internet commands
$Internet::qrz_uid - set this to your QRZ user name (you need this for the sh/qrz command)
$Internet::qrz_pw - QRZ.com password - this goes with your user id above
$Internet::http_proxy - the address of any HTTP proxy you might be using, leave as is unless you need one
$Internet::http_proxy_port - HTTP proxy port - again leave alone unless you need this
$Internet::qrz_url - url for xml requests used by sh/qrz
$Internet::w7md_url - used by sh/wm7d
$Internet::db0sdx_url - used by sh/db0sdx
$Internet::db0sdx_path - see Internet.pm
$Internet::db0sdx_suffix - see Intenet.pm
$Internet::dx425_url - used by sh/425
$Internet::contest_url - used by sh/contest
$Internet::ik3qar_url - used by sh/ik3qar
$Internet::ik3qar_pw - password used by sh/ik3qar

Prefix

$Prefix::db - the DB_File handle
%Prefix::prefix_loc - the meat of the info
%Prefix::pre - the prefix list
$Prefix::lrusize - size of the prefix LRU cache
$Prefix::misses - cache stats
$Prefix::hits - cache stats
$Prefix::matchtotal - cache stats

RBN

$RBN::startup_delay - don't send anything out until this time has expired this is to allow the feed to  "warm up" with duplicates so that the "big rush" doesn't happen.
$RBN::respottime - the time between respots of a callsign - if a call is still being spotted (on the same freq) and it has been spotted before, it's spotted again after this time until the next respottime has passed.
$RBN::beacontime - same as minspottime, but for beacons (and shorter)
$RBN::dwelltime - the amount of time to wait for duplicates before issuing a spot to the user (no doubt waiting with bated breath).
$RBN::limbotime - if there are fewer than $minqual candidates and $dwelltime has expired then allow this spot to live a bit longer. It may simply be that it is not in standard spot coverage. (ask G4PIQ about this).
$RBN::cachetime - the length of time spot data is cached
$RBN::filterdef - we use the same filter as the Spot system. Can't think why :-).
$RBN::spots - the GLOBAL spot cache
$RBN::qrg - the GLOBAL (ephemeral) qrg cache (generated on re-read of cache)
%RBN::runtime - how long each channel has been running
$RBN::cache_valid - the cache file is considered valid if it is not more than this old
$RBN::maxqrgdiff - the maximum
$RBN::minqual - the minimum quality we will accept for output
$RBN::maxqual - if there is enough quality, then short circuit any remaining dwelltime.
$RBN::noinrush - override the inrushpreventor if set
$RBN::maxdeviants - the number of deviant QRGs to record for skimmer records
%RBN::seeme - the list of users that want to see themselves

Route

$Route::maxlevel - maximum recursion level in Route::config

Spot

$Spot::maxspots - maximum spots to return
$Spot::defaultspots - normal number of spots to return
$Spot::maxdays - normal maximum number of days to go back
$Spot::duplth - the length of text to use in deduping
$Spot::dupage - the length of time to hold spot dupes
$Spot::maxcalllth - the max length of call to take into account for dupes
%Spot::spotcache - the cache of data within the last $spotcachedays 0 or 2+ days
$Spot::spotcachedays - default 2 days worth
$Spot::minselfspotqrg - minimum freq above which self spotting is allowed
$Spot::readback - don't read spot files backwards if it's windows
$Spot::qrggranularity - normalize the qrg to this number of khz (default: 25khz), so tough luck if you  have a fumble fingers moment
$Spot::timegranularity - ditto the nearest 100 seconds
$Spot::oldstyle - revert to traditional dupe key format
$Spot::no_node_in_dupe - remove the node field from dupe considerations
$Spot::do_node_check - do checks/adds for node duping, starting build 608 default=0 (off)
$Spot::do_call_check - do checks/adds for call duping, starting build 608 default=1 (on)
$Spot::do_by_check - do checks/adds for the spotting station, starting build 608 default=1
$Spot::do_ipaddr_check - do checks/adds for the spotting station IP address, starting build 608 default=1
$Spot::dupecall - check that call is not spotted too often - this the base dedupe interval - set to 0 to disable
$Spot::dupecallthreashold - This is threshold at which a repeated call's dupe record actually becomes a dupe. So somewhere between 4 slowish and 3 fast spots will cause this indicate a possible flood.
$Spot::nodetime - same as $dupecall but for nodes
$Spot::nodetimethreshold - same as $dupecallthreshold but for nodes
$Spot::dupegrgcall - check that a call is not spotted on the same (normalised) qrg too often - this the dedupe interval
$Spot::spotage - the spot time stamp cannot be older than this no of secs

WCY

$WCY::date - the unix time of the WWV (notional)
$WCY::sfi - the current SFI value
$WCY::k - the current K value
$WCY::expk - expected K value
$WCY::a - the current A value
$WCY::r - the current R value
$WCY::sa - solar activity
$WCY::gmf - geomag activity
$WCY::au - aurora warning
@WCY::allowed - if present only these callsigns are regarded as valid WWV updators
@WCY::denied - if present ignore any wwv from these callsigns
$WCY::node - originating node
$WCY::from - who this came from
$WCY::dirprefix - path to wcy directory in local_data
$WCY::duplth - the length of text to use in the deduping
$WCY::dupage - the length of time to hold spot dups

Web

$Web::maxssid - the maximum number of bare @WEB connections we will allow - this is really to stop runaway connections from the dxweb app


¹ These variables need a daemon restart to update changes.