<div dir="ltr">Hello sysops!<div><br></div><div>The list of compiled variables has been finished. The list has been pulled from the files and code in the /spider/perl directory. Only variables that Dirk left comments on were listed. I hope to have this posted to the wiki when I can.</div><div><br></div><div>WARNING!</div><div>If you are unsure of what you are doing, please, ask for help here before messing with things that could break your system.</div><div><br></div><div>73,</div><div><br></div><div>Chris, WI3W</div><div><br></div><div>----------</div><div><br></div><div><br></div><div>.------------------------------------.<br>|  Variables Found In DXspider Code  |<br>.------------------------------------.<br><br>!!!!! WARNING WARNING WARNING !!!!!<br>-----------------------------------<br>IF YOU ARE UNSURE OF WHAT YOU ARE DOING, PLEASE, SEEK HELP FROM THE<br>SUPPORT LIST FIRST!<br><br>This is a list of the variables found in the various files and code <br>of the DXSpider cluster programs written by Dirk Koopman, G1TLH.<br><br>$ - scalar variable<br>@ - array variable<br>% - hash variable<br><br># /spider/perl #<br><br>AGWMsg;<br>-------<br>$AGWMsg::enable - enable the AGW engine (1)<br>$AGWMsg::login - user name you are logging in as<br>$AGWMsg::passwd - login password<br>$AGWMsg::addr - ip addres of the AGW engine you are logging in to<br>$AGWMsg::port - the listening port of the AGW engine<br>$AGWMsg::monitor - default monitor status<br>$AGWMsg::ypolltime - time between polls of channel queues<br>$AGWMsg::hpolltime - time between polls of Mheard<br><br>AnnTalk;<br>--------<br>$AnnTalk::duplth - the length of text to use in the deduping<br>$AnnTalk::dupage - the length of time to hold ann dupes<br>$AnnTalk::filterdef - declaration of filtering definitions<br><br>Bands;<br>------<br>%Bands::bands - the 'raw' band data<br>%Bands::regions - list of regions for shortcuts eg. vhf ssb<br>%Bands::aliases - list of aliases<br><br>BBS;<br>----<br>%BBS::bid - bid hash<br>$BBS::bidfn - the bid file filename<br>$BBS::lastbidclean - the last time the bid file was cleaned<br>$BBS::bidcleanint - the time between bid cleaning intervals<br>$BBS::maxbidage - the maximum age of a stored bid<br><br>BPQMsg;<br>-------<br>$BPQMsg::enable - set to 1 to enable BPQ handling<br>$BPQMsg::ApplMask - Applmask is normally 1, unless you are already running another BPQ app such as a BBS<br>$BPQMsg::BPQStreams - streams to allocate - used for both incoming and outgoing connects<br><br>main;<br>-----<br>$main::version - DXSpider version<br>$main::root - dxspider filesystem root path<br>$main::systime - the time now (in seconds)<br>@main::inqueue - the main input queue, an array of hashes<br>$main::starttime - the starting time of the cluster<br>@main::outstanding_connects - list of outstanding connects<br>@main::listeners - list of listeners<br>$main::lang - default language<br>$main::clusteraddr - cluster tcp host address - used for things like <a href="http://console.pl">console.pl</a><br>$main::clusterport - cluster tcp port<br>$main::reqreg - 1 = registration required 2 = deregister people<br>$main::bumpexisting - 1 = allow new connection to disconnect old, 0 - don't allow it<br>$main::allowdxby - 1 = allow "dx by <othercall>", 0 - don't allow it<br>$main::maxconnect_user - the maximum no of concurrent connections a user can have at a time<br>$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.<br>$main::idle_interval - the wait between invocations of the main idle loop processing<br>$main::log_flush_interval - interval to wait between log flushes<br>$main::broadcast_debug - allow broadcasting of debug info down "enhanced" user connections<br>$main::yes - visual representation of yes<br>$main::no - visual representation of no<br>$main::user_interval - the interval between unsolicited prompts if no traffic<br>$main::local_data - path to local_data dir<br>$main::localcmd - path to local_cmd dir<br>$main::cmd - path to cmd dir<br>$main::system - path to system dir<br>$main::data - path to data dir<br>$main::allowslashcall - Allow / in connecting callsigns (ie PA0/G1TLH, or even PA0/G1TLH/2)<br>$main::localhost_alias_ipv4 - these are the IPV4 & 6 aliases for localhost connected clients<br>$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.<br>$main::save_route_cache - save and restore route cache on restart. Probably only useful for G1TLH testing<br>$main::foreground - foreground color from Console.pm (see Console.pm header)<br>$main::background - background color from Console.pm (see Console.pm header)<br>$main::mycallcolor - color of mycall from Console.pm (see Console.pm header)<br>$main::mycall - call of the node in capital letters<br>$main::myname - sysop name<br>$main::myalias - sysop callsign<br>$main::mylatitude - Your latitude (+)ve = North (-)ve = South in degrees and decimal degrees<br>$main::mylongitude - Your Longtitude (+)ve = East, (-)ve = West in degrees and decimal degrees<br>$main::mylocator - Your locator (USE CAPITAL LETTERS)<br>$main::myqth - Your QTH (roughly), SomeTown, SomeState<br>$main::myemail - your e-mail address<br>@main::my_cc - the country codes that my node is located in<br>@main::debug - are we debugging<br>$main::do_xml - are we doing XML<br>$main::dsn = the SQL database DBI dsn <br>$main::dbuser - database user login<br>$main::dbpass - database password login<br>$main::data - data file directory path<br>$main::local_data - local_data directory path<br>$main::system - system files live in (except they don't, not really)<br>$main::cmd - command file directory path<br>$main::localcmd - local command file directory path<br>$main::userfn - user data file directory path<br>$main::motd - message of the day file<br><br>DXChannel;<br>----------<br>$DXChannel::maxerrors - the maximum number of concurrent errors allowed before disconnection<br><br>DXCommandmode;<br>--------------<br>%DXCommandmode::Cache - cache of dynamically loaded routine's mod times<br>%DXCommandmode::cmd_cache - cache of short names<br>$DXCommandmode::errstr - error string from eval<br>%DXCommandmode::aliases - aliases for (parts of) commands<br>$DXCommandmode::scriptbase - the place where all users start scripts go<br>%DXCommandmode::nothereslug<br>$DXCommandmode::maxbadcount - no of bad words allowed before disconnection<br>$DXCommandmode::msgpolltime - the time between polls for new messages<br>$DXCommandmode::default_pagelth<br>$DXCommandmode::cmdimportdir - the base directory for importing command scripts this does not exist as default, you need to create it manually<br>$DXCommandmode::users - no of users on this node currently<br>$DXCommandmode::maxusers - max no users on this node for this run<br>$DXCommandmode::maxcmdlth - max length of incoming cmd line (including the command and any arguments<br>$DXCommandmode::maxcmdcount - max no cmds entering $cmdinterval seconds<br>$DXCommandmode::cmdinterval - if user enters more than $maxcmdcount in $cmdinterval seconds, they are logged off<br><br>DXDb;<br>-----<br>$DXDb::opentime - length of time a database stays open after last access<br>$DXDb::dbbase - where all the databases are kept<br>%DXDb::avail - the hash contains a list of all the databases<br>%DXDb::valid<br>$DXDb::lastprocesstime<br>$DXDb::nextstream<br>%DXDb::stream<br><br>DXMsg;<br>------<br>%DXMsg::work - outstanding jobs<br>@DXMsg::msg - messages we have<br>$DXMsg::msgdir - directory contain the msgs<br>%DXMsg::busy - station interlocks<br>$DXMsg::maxage - the maximum age that a message shall live for if not marked<br>$DXMsg::last_clean - last time we did a clean<br>$DXMsg::residencetime - keep deleted messages for this amount of time<br>@DXMsg::badmsg - bad message table<br>@DXMsg::swop - swop table<br>$DXMsg::swopfn - the swopping table<br>$DXMsg::badmsgfn - list of TO address we wont store<br>$DXMsg::forwardfn - the forwarding table<br>@DXMsg::forward - msg forward table<br>$DXMsg::timeout - forwarding timeout<br>$DXMsg::waittime - time an aborted outgoing message waits before trying again<br>$DXMsg::email_server - DNS address of smtp server if 'smtp'<br>$DXMsg::email_prog - program name + args for sending mail<br>$DXMsg::email_from - the from address the email will to be from<br>$DXMsg::queueinterval - run the queue every 1 minute<br>$DXMsg::lastq<br>$DXMsg::importfn - import directory<br>$DXMsg::minchunk - minimum chunk size for a split message<br>$DXMsg::maxchunk - maximum chunk size<br>$DXMsg::bulltopriv - convert msgs with callsigns to private if they are bulls<br><br>DXProt;<br>-------<br>$DXProt::pc11_max_age - the maximum age for an incoming 'real-time' pc11<br>$DXProt::pc23_max_age - the maximum age for an incoming 'real-time' pc23<br>$DXProt::last_hour - last time I did an hourly periodic update<br>%DXProt::rcmds - outstanding rcmd requests outbound<br>%DXProt::pc19list - list of outstanding PC19s that haven't had PC16s on them<br>$DXProt::pc19_version - the visible version no for outgoing PC19s generated from pc59<br>%DXProt::nodehops - node specific hop control<br>$DXProt::censorpc - Do a BadWords::check on test fields and reject things loads of 'bad things' 1 -> enabled<br>$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.<br>$DXProt::pc9x_dupe_age - catch loops of circular (usually) D records<br>$DXProt::pc10_dupe_age - just something to catch duplicate PC10->PC93 conversions<br>$DXProt::pc92_slug_changes - slug any changes going outward for this long<br>$DXProt::last_pc92_slug - the last time we sent out any delayed add or del PC92s<br>$DXProt::pc9x_time_tolerance - the time on a pc9x is allowed to be out by this amount<br>$DXProt::senderverify - 1 -> check for forged PC11 or PC61 2 -> if forged, dump them<br>$DXProt::pc11_dwell_time - number of seconds to wait for a PC61 to come to substitute the PC11<br>$DXProt::pc61_extract_route - generate missing  user route entry and IP address from passing PC61s<br>$DXProt::preserve_node_ssid - With the changes to badnode set this to 1 to preserve badnode ssids<br>$DXProt::pc92_update_period - the period between outgoing PC92 C updates<br>%DXProt::pc92_find - outstanding pc92 find operations<br>$DXProt::pc92_find_timeout - maximum time to wait for a reply<br>$DXProt::pc92_short_update_period - shorten the update period after a connection or start up<br>$DXProt::pc92_extnode_update_period - the update period for external nodes<br>$DXProt::pc92_keepalive_period - frequency of PC92 K (keepalive) records<br>$DXProt::pc92_ad_enabled - send pc92 A & D records<br>$DXProt::pc92c_ipaddr_enable - add the local ip address info to each callsign in a PC92 C<br>$DXProt::pc50_interval - the interval between pc50s (in seconds)<br>$DXProt::myprot_version - the version of DX cluster (tm) software I am masquerading as<br>$DXProt::def_hopcount - default hopcount to use<br>%DXProt::hopcount - some variable hop counts based on message type<br>@DXProt::nodx_node - list of nodes we don't accept dx from<br>@DXProt::noann_node - list of nodes we don't accept announces from<br>@DXProt::nowwv_node - list of node we don't accept wwvs from<br>$DXProt::send_opernam - send out for/opernams for callsigns sending dx spots who haven't got qra locators<br><br>DXUser;<br>-------<br>$DXUser::maxconnlist<br><br>DXXml;<br>------<br>$DXXml::xs - the XML::Simple parser instance<br>$DXXml::id - the next ID to be used<br>$DXXml::max_old_age - how old a sentence we will accept<br>$DXXml::max_future_age - how far into the future we will accept<br>$DXXml::dupeage - duplicates stored half a day<br><br>Geomag;<br>-------<br>$Geomag::date - the unix time of the WWV (notional)<br>$Geomag::sfi - the current SFI value<br>$Geomag::k - the current K value<br>$Geomag::a - the current A value<br>$Geomag::r - the current R value<br>$Geomag::forecast - the current geomagnetic forecast<br>@Geomag::allowed - if present only these callsigns are regarded as valid WWV updators<br>@Geomag::denied - if present ignore any wwv from these callsigns<br>$Geomag::fp - the DXLog fcb<br>$Geomag::node - the originating node<br>$Geomag::from - who this came from<br>$Geomag::duplth - the length of text to use in the deduping<br>$Geomag::dupage - the length of time to hold spot dups<br><br>Internet;<br>---------<br>$Internet::contest_host - url of the contest host for show/contest<br>$Internet::allow - set this flag to 1 if you want to allow internet commands<br>$Internet::qrz_uid - set this to your QRZ user name (you need this for the sh/qrz command)<br>$Internet::qrz_pw - QRZ.com password - this goes with your user id above<br>$Internet::http_proxy - the address of any HTTP proxy you might be using, leave as is unless you need one<br>$Internet::http_proxy_port - HTTP proxy port - again leave alone unless you need this<br>$Internet::qrz_url - url for xml requests used by sh/qrz<br>$Internet::w7md_url - used by sh/wm7d<br>$Internet::db0sdx_url - used by sh/db0sdx<br>$Internet::db0sdx_path - see Internet.pm<br>$Internet::db0sdx_suffix - see Intenet.pm<br>$Internet::dx425_url - used by sh/425<br>$Internet::contest_url - used by sh/contest<br>$Internet::ik3qar_url - used by sh/ik3qar<br>$Internet::ik3qar_pw - password used by sh/ik3qar<br><br>Prefix;<br>-------<br>$Prefix::db - the DB_File handle<br>%Prefix::prefix_loc - the meat of the info<br>%Prefix::pre - the prefix list<br>$Prefix::lrusize - size of the prefix LRU cache<br>$Prefix::misses - cache stats<br>$Prefix::hits - cache stats<br>$Prefix::matchtotal - cache stats<br><br>RBN;<br>----<br>$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.<br>$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.<br>$RBN::beacontime - same as minspottime, but for beacons (and shorter)<br>$RBN::dwelltime - the amount of time to wait for duplicates before issuing a spot to the user (no doubt waiting with bated breath).<br>$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).<br>$RBN::cachetime - the length of time spot data is cached<br>$RBN::filterdef - we use the same filter as the Spot system. Can't think why :-).<br>$RBN::spots - the GLOBAL spot cache <br>$RBN::qrg - the GLOBAL (ephemeral) qrg cache (generated on re-read of cache)<br>%RBN::runtime - how long each channel has been running<br>$RBN::cache_valid - the cache file is considered valid if it is not more than this old<br>$RBN::maxqrgdiff - the maximum<br>$RBN::minqual - the minimum quality we will accept for output<br>$RBN::maxqual - if there is enough quality, then short circuit any remaining dwelltime.<br>$RBN::noinrush - override the inrushpreventor if set<br>$RBN::maxdeviants - the number of deviant QRGs to record for skimmer records<br>%RBN::seeme - the list of users that want to see themselves<br><br>Route;<br>------<br>$Route::maxlevel - maximum recursion level in Route::config<br><br>Spot;<br>-----<br>$Spot::maxspots - maximum spots to return<br>$Spot::defaultspots - normal number of spots to return<br>$Spot::maxdays - normal maximum number of days to go back<br>$Spot::duplth - the length of text to use in deduping<br>$Spot::dupage - the length of time to hold spot dupes<br>$Spot::maxcalllth - the max length of call to take into account for dupes<br>%Spot::spotcache - the cache of data within the last $spotcachedays 0 or 2+ days<br>$Spot::spotcachedays - default 2 days worth<br>$Spot::minselfspotqrg - minimum freq above which self spotting is allowed<br>$Spot::readback - don't read spot files backwards if it's windows<br>$Spot::qrggranularity - normalize the qrg to this number of khz (default: 25khz), so tough luck if you have a fumble fingers moment<br>$Spot::timegranularity - ditto the nearest 100 seconds<br>$Spot::oldstyle - revert to traditional dupe key format<br>$Spot::no_node_in_dupe - remove the node field from dupe considerations<br><br>WCY;<br>----<br>$WCY::date - the unix time of the WWV (notional)<br>$WCY::sfi - the current SFI value<br>$WCY::k - the current K value<br>$WCY::expk - expected K value<br>$WCY::a - the current A value<br>$WCY::r - the current R value<br>$WCY::sa - solar activity<br>$WCY::gmf - geomag activity<br>$WCY::au - aurora warning<br>@WCY::allowed - if present only these callsigns are regarded as valid WWV updators<br>@WCY::denied - if present ignore any wwv from these callsigns<br>$WCY::node - originating node<br>$WCY::from - who this came from<br>$WCY::dirprefix - path to wcy directory in local_data<br>$WCY::duplth - the length of text to use in the deduping<br>$WCY::dupage - the length of time to hold spot dups<br><br>Web;<br>----<br>$Web::maxssid - the maximum number of bare @WEB connections we will allow - this is really to stop runaway connections from the dxweb app<br></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Sun, Feb 23, 2025 at 7:24 PM Christopher Schlegel <<a href="mailto:sutehk.cs@gmail.com">sutehk.cs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hello all,<div><br></div><div>Not having any luck with VK9XU this weekend, I have been working on extracting the various variables and their descriptions from Dirk's code. This has mostly been for my own edification, but there was some interest prior by other sysops. It is still a work in progress and I am by no means a Perl coder. With Dirk's permission and interest in the community, I can submit it to the wiki or here on the list. </div><div><br></div><div>Thoughts?</div><div><br></div><div>73,</div><div>Chris, WI3W</div></div>
</blockquote></div>