- my $i;
- $parent->del_nodes;
- $parent->_del_users;
- for ($i = 4; $_[$i]; $i++) {
- _add_thingy($parent, $_[$i]);
+ my (@nodes, @users);
+ for (@ent) {
+ my ($call, $is_node, $is_extnode, $here, $version, $build) = _decode_pc92_call($_);
+ if ($call) {
+ if ($is_node) {
+ push @nodes, $call;
+ } else {
+ push @users, $call;
+ }
+ } else {
+ dbg("DXPROT: pc92 call entry '$_' not decoded, ignored") if isdbg('chanerr');
+ }
+ }
+
+ my ($dnodes, $dusers, $nnodes, $nusers) = $parent->calc_config_changes(\@nodes, \@users);
+
+ for (@ent) {
+ my ($call, $is_node, $is_extnode, $here, $version, $build) = _decode_pc92_call($_);
+ if ($call) {
+ push @radd,_add_thingy($parent, $_) if grep $call eq $_, (@$nnodes, @$nusers);
+ push @rdel,_del_thingy($parent, $_) if grep $call eq $_, (@$dnodes, @$dusers);
+ }