From 62df15dc544d86345ea75b2e72e5215f9841f430 Mon Sep 17 00:00:00 2001
From: minima <minima>
Date: Wed, 9 Mar 2005 10:26:52 +0000
Subject: [PATCH] try to get the origin routing correct for non aranea pings

---
 perl/Thingy.pm      | 3 ++-
 perl/Thingy/Ping.pm | 7 +++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/perl/Thingy.pm b/perl/Thingy.pm
index efacdbb3..24c8b98f 100644
--- a/perl/Thingy.pm
+++ b/perl/Thingy.pm
@@ -113,7 +113,8 @@ sub broadcast
 	dbg("Thingy::broadcast: " . $thing->ascii) if isdbg('thing'); 
 
 	my @dxchan;
-	my $to ||= $thing->{touser};
+	my $to ||= $thing->{route}; 
+	$to	||= $thing->{touser};
 	$to ||= $thing->{group};
 	if ($to && is_callsign($to) && (my $ref = Route::get($to))) {
 		dbg("Thingy::broadcast: routing for $to") if isdbg('thing');
diff --git a/perl/Thingy/Ping.pm b/perl/Thingy/Ping.pm
index 88e68a85..d87ad456 100644
--- a/perl/Thingy/Ping.pm
+++ b/perl/Thingy/Ping.pm
@@ -31,7 +31,7 @@ sub gen_Aranea
 {
 	my $thing = shift;
 	unless ($thing->{Aranea}) {
-	 	$thing->{Aranea} = Aranea::genmsg($thing, qw(id out));
+	 	$thing->{Aranea} = Aranea::genmsg($thing, qw(id out o));
 	}
  	return $thing->{Aranea};
 }
@@ -53,10 +53,12 @@ sub gen_DXProt
 		# {user} as well as a true user and also it may not
 		# have originated here.
 
-		my $from = $thing->{user} if Route::Node::get($thing->{user});
+		my $from = $thing->{o};
+	    $from ||= $thing->{user} if Route::Node::get($thing->{user});
 		$from ||= $thing->{origin};
 		my $to = $thing->{touser} if Route::Node::get($thing->{touser});
 		$to ||= $thing->{group};
+
 		
 		$thing->{DXProt} = DXProt::pc51($to, $from, $thing->{out});
 	}
@@ -132,6 +134,7 @@ sub handle
 			}
 		}
 	} else {
+		$thing->{route} = $thing->{o} if $thing->{o};
 		$thing->broadcast($dxchan);
 	}
 }
-- 
2.43.0