- my $cl = DXCluster->get_exact($call);
- if ($cl) { # don't route it back down itself
- if (ref $self && $call eq $self->{call}) {
- dbg('chan', "Trying to route back to source, dropped");
- return;
- }
- my $hops;
- my $dxchan = $cl->{dxchan};
- if ($dxchan) {
- my $routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name
- if ($routeit) {
- $dxchan->send($routeit) if $dxchan;
- }
+
+ if (ref $self && $call eq $self->{call}) {
+ dbg('chan', "Trying to route back to source, dropped");
+ return;
+ }
+
+ # always send it down the local interface if available
+ my $dxchan = DXChannel->get($call);
+ unless ($dxchan) {
+ my $cl = DXCluster->get_exact($call);
+ $dxchan = $cl->dxchan if $cl;
+ }
+ if ($dxchan) {
+ my $routeit = adjust_hops($dxchan, $line); # adjust its hop count by node name
+ if ($routeit) {
+ $dxchan->send($routeit);