+sub mynode
+{
+ my $self = shift;
+ my $noderef = shift;
+
+ if ($noderef) {
+ $self->{mynode} = $noderef->call;
+ } else {
+ $noderef = DXCluster->get_exact($self->{mynode});
+ unless ($noderef) {
+ my $mynode = $self->{mynode};
+ my $call = $self->{call};
+ dbg("parent node $mynode has disappeared from $call") if isdbg('err');
+ }
+ }
+ return $noderef;
+}
+
+sub dxchan
+{
+ my $self = shift;
+ my $dxchan = shift;
+
+ if ($dxchan) {
+ $self->{dxchancall} = $dxchan->call;
+ } else {
+ $dxchan = DXChannel->get($self->{dxchancall});
+ unless ($dxchan) {
+ my $dxcall = $self->{dxchancall};
+ my $call = $self->{call};
+ dbg("parent dxchan $dxcall has disappeared from $call") if isdbg('err');
+ }
+ }
+ return $dxchan;
+}
+