get all the debugging finally into the debug files when things go wrong
authordjk <djk>
Fri, 9 Jun 2000 17:29:34 +0000 (17:29 +0000)
committerdjk <djk>
Fri, 9 Jun 2000 17:29:34 +0000 (17:29 +0000)
added 'err' as a catchall dbg category
changed all the print stdout statements to dbg('err', ...)

28 files changed:
cmd/dx.pl
perl/BBS.pm
perl/Bands.pm
perl/CmdAlias.pm
perl/DXChannel.pm
perl/DXCluster.pm
perl/DXCommandmode.pm
perl/DXConnect.pm
perl/DXCron.pm
perl/DXDb.pm
perl/DXDebug.pm
perl/DXLog.pm
perl/DXLogPrint.pm
perl/DXM.pm
perl/DXMsg.pm
perl/DXProt.pm
perl/DXProtout.pm
perl/DXUser.pm
perl/DXUtil.pm
perl/Filter.pm
perl/Geomag.pm
perl/Julian.pm
perl/Msg.pm
perl/Prefix.pm
perl/Spot.pm
perl/client.pl
perl/cluster.pl
perl/console.pl

index c946d76107b6a70f46ff0bcae4506888711ebe52..7684542eb19251f1d87dafa8253232f4b8bea4e9 100644 (file)
--- a/cmd/dx.pl
+++ b/cmd/dx.pl
@@ -43,7 +43,7 @@ if ($f[0] =~ /[A-Za-z]/) {
 }
 
 # make line the rest of the line
-$line = $f[2];
+$line = $f[2] || " ";
 @f = split /\s+/, $line;
 
 # bash down the list of bands until a valid one is reached
index e2920a476f23d3fa21bde78e71f23b6bc202162e..68bf4314b0af022a6f554ea26b03a05d8121b1ab 100644 (file)
@@ -15,7 +15,7 @@ use strict;
 use DXUser;
 use DXChannel;
 use DB_File;
-use Carp;
+use DXDebug;
 
 @ISA = qw(DXChannel);
 
index 7e67a60e3fb70e63ddc71b46e552e6a2e7f6ca50..16a992ed603c77c9da3218a07f49661badeec13a 100644 (file)
@@ -11,7 +11,6 @@ package Bands;
 use DXUtil;
 use DXDebug;
 use DXVars;
-use Carp;
 
 use strict;
 use vars qw(%bands %regions %aliases $bandsfn %valid);
index 2a5e26cffcee2f333af96187da1d93af32e94416..39136bd1b333fd7f5e293e31d656a8108eb16ee8 100644 (file)
@@ -21,7 +21,6 @@ package CmdAlias;
 
 use DXVars;
 use DXDebug;
-use Carp;
 
 use strict;
 
index 4ded62674e5a1c263fe2eda3c5569b4ee0be0b3b..e60705b147a86e684eccc067f0d4311e4c933682 100644 (file)
@@ -30,7 +30,6 @@ use DXM;
 use DXUtil;
 use DXDebug;
 use Filter;
-use Carp;
 
 use strict;
 use vars qw(%channels %valid);
index 205c30fb65552f2deaaef61997eed660e11d828d..5d35e4a3051adc784a2c2e40fabc81c332f277f2 100644 (file)
 
 package DXCluster;
 
-use Exporter;
-@ISA = qw(Exporter);
 use DXDebug;
 use DXUtil;
-use Carp;
 
 use strict;
 use vars qw(%cluster %valid);
index 39153ea4b40ae8120c756d83bba9d762a7d8be6f..4a1acbba2858c37745d31fee704e245893fc0d39 100644 (file)
@@ -24,7 +24,6 @@ use DXLogPrint;
 use DXBearing;
 use CmdAlias;
 use Filter;
-use Carp;
 use Minimuf;
 use DXDb;
 use Sun;
@@ -246,7 +245,7 @@ sub run_cmd
                                        unless (exists $Cache{$package}->{'sub'}) {
                                                $c = eval $Cache{$package}->{'eval'};
                                                if ($@) {
-                                                       return ("Syserr: Syntax error in $package", $@);
+                                                       return DXDebug::shortmess($@);
                                                }
                                                $Cache{$package}->{'sub'} = $c;
                                        }
@@ -255,7 +254,10 @@ sub run_cmd
                                                @ans = &{$c}($self, $args);
                                    };
                                        
-                                       return ($@) if $@;
+                                       if ($@) {
+                                               cluck($@);
+                                               return (DXDebug::shortmess($@));
+                                       };
                                }
                        } else {
                                dbg('command', "cmd: $cmd not found");
index 30cd77f3991964c2f1798c96a8b73e6a054ad489..a98c0c82f345f0c942be1a7f7c0afe52116302b9 100644 (file)
@@ -13,7 +13,6 @@ package DXConnect;
 use DXUtil;
 use DXM;
 use DXDebug;
-use Carp;
 
 use strict;
 
index d2e434bcbbd5bc1d1a4555ec7dd101e0d3d729a3..eefa25816cac8181432d2edc9c5a3343d5ab40dd 100644 (file)
@@ -13,7 +13,6 @@ use DXUtil;
 use DXM;
 use DXDebug;
 use IO::File;
-use Carp;
 
 use strict;
 
index 25e7c0827d3f0d2d0d7fd7f30d32c59ab60640ca..a7f31acca8ec1f4e07b59c187b910e252b77e812 100644 (file)
@@ -12,8 +12,7 @@ use DXVars;
 use DXLog;
 use DXUtil;
 use DB_File;
-
-use Carp;
+use DXDebug;
 
 use vars qw($opentime $dbbase %avail %valid $lastprocesstime $nextstream %stream);
 
index 80ef17ef3336f6fb9fb9bb8407a8649ae7b79696..b42db66dfb4934dd9744b2f9c6fcd00f1b77e8be 100644 (file)
@@ -11,8 +11,7 @@ package DXDebug;
 
 require Exporter;
 @ISA = qw(Exporter);
-@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist isdbg dbgclose);
-@EXPORT_OK = qw(dbginit dbg dbgadd dbgsub dbglist isdbg dbgclose);
+@EXPORT = qw(dbginit dbg dbgadd dbgsub dbglist isdbg dbgclose confess croak cluck cluck);
 
 use strict;
 use vars qw(%dbglevel $fp);
@@ -24,11 +23,31 @@ use Carp;
 %dbglevel = ();
 $fp = DXLog::new('debug', 'dat', 'd');
 
+# Avoid generating "subroutine redefined" warnings with the following
+# hack (from CGI::Carp):
+if (!defined $DB::VERSION) {
+       local $^W=0;
+       eval qq( sub confess { 
+          \$SIG{__DIE__} = 'DEFAULT'; 
+          DXDebug::_store(Carp::longmess(\@_)); 
+          exit(-1); 
+       }
+       sub confess { 
+               \$SIG{__DIE__} = 'DEFAULT'; 
+               DXDebug::_store(Carp::shortmess(\@_)); 
+               exit(-1); 
+       }
+       sub carp    { DXDebug::_store(Carp::shortmess(\@_)); }
+       sub cluck   { DXDebug::_store(Carp::longmess(\@_)); } 
+       );
+
+    CORE::die(Carp::shortmess($@)) if $@;
+}
+
+
 sub _store
 {
        my $t = time; 
-       $fp->writeunix($t, "$t^$@") if $@; 
-       $fp->writeunix($t, "$t^$!") if $!; 
        for (@_) {
                $fp->writeunix($t, "$t^$_"); 
                print STDERR $_;
@@ -39,7 +58,8 @@ sub dbginit
 {
        # add sig{__DIE__} handling
        if (!defined $DB::VERSION) {
-               $SIG{__WARN__} = $SIG{__DIE__} = \&_store;
+               $SIG{__WARN__} = sub { _store(Carp::shortmess(@_)); };
+               $SIG{__DIE__} = sub { _store(Carp::shortmess(@_)); };
        }
 }
 
@@ -52,7 +72,7 @@ sub dbgclose
 sub dbg
 {
        my $l = shift;
-       if ($dbglevel{$l}) {
+       if ($dbglevel{$l} || $l eq 'err') {
            my @in = @_;
                my $t = time;
                for (@in) {
@@ -92,5 +112,23 @@ sub isdbg
        my $s = shift;
        return $dbglevel{$s};
 }
+
+sub shortmess 
+{
+       return Carp::shortmess(@_);
+}
+
+sub longmess 
+{ 
+       return Carp::longmess(@_);
+}
+
 1;
 __END__
+
+
+
+
+
+
+
index 17559b36fe62577d2b53cef0c8f9f810d225c5ba..03dc42843ab162051bb19cac2eabaf78ed2f86bb 100644 (file)
@@ -31,9 +31,9 @@ require Exporter;
 
 use IO::File;
 use DXVars;
-# use DXDebug ();
 use DXUtil;
 use Julian;
+
 use Carp;
 
 use strict;
index b287413da9a511d7e5cb8e3863889c0228bde6d9..60f8b685bb8768e3e935629aca988c2b0bcd2d06 100644 (file)
@@ -10,11 +10,10 @@ package DXLog;
 
 use IO::File;
 use DXVars;
-use DXDebug ();
+#use DXDebug ();
 use DXUtil;
 use DXLog;
 use Julian;
-use Carp;
 
 use strict;
 
index 30a0cc1e221dfa7c858b165d3ef7cdf879270b78..ee2f4539c050940b81ec6d49a61ee3edc9af778e 100644 (file)
@@ -17,7 +17,7 @@
 package DXM;
 
 use DXVars;
-use Carp;
+use DXDebug;
 
 my $localfn = "$main::root/local/Messages";
 my $fn = "$main::root/perl/Messages";
index 9e4893b23485c386f00f3cda79931247b0a5d2f0..0bfdfefbbe3cfaba1a8ae2594ce5bd0d141635ff 100644 (file)
@@ -28,7 +28,6 @@ use DXDebug;
 use DXLog;
 use IO::File;
 use Fcntl;
-use Carp;
 
 use strict;
 use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean
@@ -504,9 +503,9 @@ sub read_msg_header
        my @f;
        my $size;
        
-       $file = new IO::File;
-       if (!open($file, $fn)) {
-               print "Error reading $fn $!\n";
+       $file = new IO::File "$fn";
+       if (!$file) {
+           dbg('err', "Error reading $fn $!");
                return undef;
        }
        $size = -s $fn;
@@ -514,7 +513,7 @@ sub read_msg_header
        chomp $line;
        $size -= length $line;
        if (! $line =~ /^===/o) {
-               print "corrupt first line in $fn ($line)\n";
+               dbg('err', "corrupt first line in $fn ($line)");
                return undef;
        }
        $line =~ s/^=== //o;
@@ -525,7 +524,7 @@ sub read_msg_header
        chomp $line;
        $size -= length $line;
        if (! $line =~ /^===/o) {
-               print "corrupt second line in $fn ($line)\n";
+           dbg('err', "corrupt second line in $fn ($line)");
                return undef;
        }
        $line =~ s/^=== //o;
@@ -551,7 +550,7 @@ sub read_msg_body
        
        $file = new IO::File;
        if (!open($file, $fn)) {
-               print "Error reading $fn $!\n";
+               dbg('err' ,"Error reading $fn $!");
                return undef;
        }
        @out = map {chomp; $_} <$file>;
@@ -740,9 +739,9 @@ sub init
        my $ref;
                
        # load various control files
-       print "load badmsg: ", (load_badmsg() or "Ok"), "\n";
-       print "load forward: ", (load_forward() or "Ok"), "\n";
-       print "load swop: ", (load_swop() or "Ok"), "\n";
+       dbg('err', "load badmsg: " . (load_badmsg() or "Ok"));
+       dbg('err', "load forward: " . (load_forward() or "Ok"));
+       dbg('err', "load swop: " . (load_swop() or "Ok"));
 
        # read in the directory
        opendir($dir, $msgdir) or confess "can't open $msgdir $!";
index 3d3894d105fcc1e38349b0ad478badf6f27de1d0..256eb9c76235c141d1810b423e744f5b55670739 100644 (file)
@@ -27,8 +27,6 @@ use Local;
 use DXDb;
 use Time::HiRes qw(gettimeofday tv_interval);
 
-use Carp;
-
 use strict;
 use vars qw($me $pc11_max_age $pc23_max_age $pc11_dup_age $pc23_dup_age
                        %spotdup %wwvdup $last_hour %pings %rcmds $pc11duptext
index ee761cdc83a99dc12896d841f2bc70025c0ac961..da2d5fffb2e28b63b138e0ad1f8e4a3d2b5cbeb7 100644 (file)
@@ -15,7 +15,7 @@ package DXProt;
 
 use DXUtil;
 use DXM;
-use Carp;
+use DXDebug;
 
 use strict;
 
index 63dad4f3a0fbe50721fa3213bb33810a2cfd5d2f..2357ec050d48cb52c1604b41f1a953cc6e3fef93 100644 (file)
@@ -15,7 +15,7 @@ use DXLog;
 use DB_File;
 use Data::Dumper;
 use Fcntl;
-use Carp;
+use DXDebug;
 
 use strict;
 use vars qw(%u $dbm $filename %valid);
index de9ea018677765c837c56cf847d9ee7917ec90d0..0911d6ff6ee415eed03e14ffaf18a1b6d4c2e546 100644 (file)
@@ -12,7 +12,7 @@ use Date::Parse;
 use IO::File;
 use Data::Dumper;
 
-use Carp;
+use DXDebug;
 
 require Exporter;
 @ISA = qw(Exporter);
index aefa922419ee94afac488101b11c184aba45a8eb..a53ae034b6cfc4fd88426a483e171a12aedfb6f7 100644 (file)
@@ -48,7 +48,6 @@ package Filter;
 use DXVars;
 use DXUtil;
 use DXDebug;
-use Carp;
 
 use strict;
 
index 1a1a8a40110905579d6b603c672a0701df4bfffe..ca16e363f445536b19a356d56652affa852c6774 100644 (file)
@@ -15,7 +15,7 @@ use DXUtil;
 use DXLog;
 use Julian;
 use IO::File;
-use Carp;
+use DXDebug;
 
 use strict;
 use vars qw($date $sfi $k $a $r $forecast @allowed @denied $fp $node $from);
index 07bf3849aa65df00fcdb34b82e24c51ca2c90496..861f84d441aef14e79d9727b0956bb659e79b99b 100644 (file)
@@ -8,8 +8,6 @@
 
 package Julian;
 
-use Carp;
-
 use strict;
 
 my @days = (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
index b3816df3f324ade51480e1f65d4105cc13d13b6b..f5704a81e46eb237403f695383e7bd3307770dbf 100644 (file)
 
 package Msg;
 
-require Exporter;
-@ISA = qw(Exporter);
-
 use strict;
 use IO::Select;
 use IO::Socket;
-use Carp;
+#use DXDebug;
 
-use vars qw (%rd_callbacks %wt_callbacks $rd_handles $wt_handles);
+use vars qw(%rd_callbacks %wt_callbacks $rd_handles $wt_handles);
 
 %rd_callbacks = ();
 %wt_callbacks = ();
index b71f754e640ee0b18bf441db8ccfc31b2ad9debd..41a95db8086ec106eec66a102ecda92324727497 100644 (file)
@@ -9,11 +9,10 @@
 package Prefix;
 
 use IO::File;
-use Carp;
 use DXVars;
 use DB_File;
 use Data::Dumper;
-use Carp;
+use DXDebug;
 
 use strict;
 use vars qw($db  %prefix_loc %pre);
index d663c9bd3e973a82e1a9b55637ab96255c4d1a49..362e7d5e5252d7f1502def06db8aa5a2a630bc6c 100644 (file)
@@ -15,7 +15,6 @@ use DXUtil;
 use DXLog;
 use Julian;
 use Prefix;
-use Carp;
 
 use strict;
 use vars qw($fp $maxspots $defaultspots $maxdays $dirprefix);
index 1935b8922b86cf853215d09774815e8f302f9fb6..6327ee5fd1c86ac61f648a033755c28a545d9e1f 100755 (executable)
@@ -46,7 +46,6 @@ use Net::Telnet qw(TELOPT_ECHO);
 use IO::File;
 use IO::Socket;
 use IPC::Open2;
-use Carp qw{cluck};
 
 # cease communications
 sub cease
index 3990410d358197e17b3f8b88d885a897a6059812..7b5bf6f46b95a55728789e00728bfd61eab0c6c1 100755 (executable)
@@ -64,8 +64,6 @@ use Data::Dumper;
 
 use Fcntl ':flock'; 
 
-use Carp qw(cluck);
-
 package main;
 
 @inqueue = ();                                 # the main input queue, an array of hashes
@@ -301,22 +299,22 @@ STDOUT->autoflush(1);
 Log('cluster', "DXSpider V$version started");
 
 # banner
-print "DXSpider DX Cluster Version $version\nCopyright (c) 1998-1999 Dirk Koopman G1TLH\n";
+dbg('err', "DXSpider DX Cluster Version $version\nCopyright (c) 1998-1999 Dirk Koopman G1TLH");
 
 # load Prefixes
-print "loading prefixes ...\n";
+dbg('err', "loading prefixes ...");
 Prefix::load();
 
 # load band data
-print "loading band data ...\n";
+dbg('err', "loading band data ...");
 Bands::load();
 
 # initialise User file system
-print "loading user file system ...\n"
+dbg('err', "loading user file system ...")
 DXUser->init($userfn, 1);
 
 # start listening for incoming messages/connects
-print "starting listener ...\n";
+dbg('err', "starting listener ...");
 Msg->new_server("$clusteraddr", $clusterport, \&login);
 
 # prime some signals
@@ -338,7 +336,7 @@ Geomag->init();
 Spot->init();
 
 # initialise the protocol engine
-print "reading in duplicate spot and WWV info ...\n";
+dbg('err', "reading in duplicate spot and WWV info ...");
 DXProt->init();
 
 
@@ -346,31 +344,31 @@ DXProt->init();
 DXNode->new(0, $mycall, 0, 1, $DXProt::myprot_version); 
 
 # read in any existing message headers and clean out old crap
-print "reading existing message headers ...\n";
+dbg('err', "reading existing message headers ...");
 DXMsg->init();
 DXMsg::clean_old();
 
 # read in any cron jobs
-print "reading cron jobs ...\n";
+dbg('err', "reading cron jobs ...");
 DXCron->init();
 
 # read in database descriptors
-print "reading database descriptors ...\n";
+dbg('err', "reading database descriptors ...");
 DXDb::load();
 
 # starting local stuff
-print "doing local initialisation ...\n";
+dbg('err', "doing local initialisation ...");
 eval {
        Local::init();
 };
 dbg('local', "Local::init error $@") if $@;
 
 # print various flags
-#print "useful info - \$^D: $^D \$^W: $^W \$^S: $^S \$^P: $^P\n";
+#dbg('err', "seful info - \$^D: $^D \$^W: $^W \$^S: $^S \$^P: $^P");
 
 # this, such as it is, is the main loop!
-print "orft we jolly well go ...\n";
-dbg('chan', "DXSpider version $version started...");
+dbg('err', "orft we jolly well go ...");
+Log('err', "DXSpider version $version started...");
 
 #open(DB::OUT, "|tee /tmp/aa");
 
index d5224cf9900c8db9d1d6e75dc6a103ad08fac545..5fd965ee8f1da9f0d3a950daed7036531d214495 100755 (executable)
@@ -32,8 +32,6 @@ use DXUtil;
 use IO::File;
 use Curses;
 
-use Carp qw{cluck};
-
 use Console;
 
 #