put in temp fix for pc10 talk crashes
authorDirk Koopman <djk@tobit.co.uk>
Sun, 8 Jul 2007 15:08:34 +0000 (16:08 +0100)
committerDirk Koopman <djk@tobit.co.uk>
Sun, 8 Jul 2007 15:08:34 +0000 (16:08 +0100)
Changes
perl/DXProtHandle.pm
perl/Version.pm

diff --git a/Changes b/Changes
index fd9ab1029e079d36854fdf4972fb1823f39cbed4..a37bf744d0e8e2a1650c7e9d7cb1ba3fbe93b08d 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+08Jul07=======================================================================
+1. put in a temporary fix to the crashing on incoming PC10 talks, whilst I
+try to work out how it is happening.
 06Jul07=======================================================================
 1. re-arrange id checking so that it is more logical and check that config
 records, that can be an hour coming, are not thoughtlessly ignored, thus
index 5e3f0597d9405d2279ad1d7fab742a3da36b39ff..b58f95bf2f7e2f0e7bdd86b6f12670f27d6248da 100644 (file)
@@ -1738,9 +1738,14 @@ sub handle_93
                my $dxchan;
                $dxchan = DXChannel::get($main::myalias) if $to eq $main::mycall;
                $dxchan = DXChannel::get($to) unless $dxchan;
-               if ($dxchan && $dxchan->is_user) {
-                       $dxchan->talk($from, $to, $via, $text, $onode);
-                       return;
+               # check it...
+               if (ref $dxchan && $dxchan->isa('DXChannel')) {
+                       if ($dxchan->is_user) {
+                               $dxchan->talk($from, $to, $via, $text, $onode);
+                               return;
+                       }
+               } else {
+                       dbg("ERROR: $to -> $dxchan is not a DXChannel! (local talk)");
                }
 
                # convert to PC10 talks where appropriate
@@ -1748,14 +1753,17 @@ sub handle_93
                if ($ref) {
                        # just go for the "best" one for now (rather than broadcast)
                        $dxchan = $ref->dxchan;
-#                      my @dxchan = $ref->alldxchan;
-#                      for $dxchan (@dxchan) {
+
+                       # check it...
+                       if (ref $dxchan && $dxchan->isa('DXChannel')) {
                                if ($dxchan->{do_pc9x}) {
                                        $dxchan->send($line);
                                } else {
                                        $dxchan->talk($from, $to, $via, $text, $onode);
                                }
-#                      }
+                       } else {
+                               dbg("ERROR: $to -> $dxchan is not a DXChannel! (convert to pc10)");
+                       }
                        return;
                }
 
index a95140f851e2defddf215fe8eb35c9f8c32266b8..cb6fc8775377f393241fe58782b31ca895f53a81 100644 (file)
@@ -11,6 +11,6 @@ use vars qw($version $subversion $build);
 
 $version = '1.54';
 $subversion = '0';
-$build = '107';
+$build = '108';
 
 1;