… | |
… | |
520 | # hopefully ok, as this can at most be used for DOSing, which is easy |
520 | # hopefully ok, as this can at most be used for DOSing, which is easy |
521 | # when you can do MITM anyway. |
521 | # when you can do MITM anyway. |
522 | |
522 | |
523 | # if we connect to ourselves, nuke this seed |
523 | # if we connect to ourselves, nuke this seed |
524 | if ($_[0]{remote_node} eq $AnyEvent::MP::Kernel::NODE) { |
524 | if ($_[0]{remote_node} eq $AnyEvent::MP::Kernel::NODE) { |
|
|
525 | require AnyEvent::MP::Global; # every seed becomes a global node currently |
525 | delete $SEED_NODE{$_[0]{seed}}; |
526 | delete $SEED_NODE{$_[0]{seed}}; |
526 | delete $NODE_SEED{$_[0]{seed}}; |
527 | delete $NODE_SEED{$_[0]{seed}}; |
527 | } else { |
528 | } else { |
528 | $SEED_NODE{$seed} = $_[0]{remote_node}; |
529 | $SEED_NODE{$seed} = $_[0]{remote_node}; |
529 | $NODE_SEED{$_[0]{remote_node}} = $seed; |
530 | $NODE_SEED{$_[0]{remote_node}} = $seed; |
… | |
… | |
580 | !exists $SEED_CONNECT{$_} |
581 | !exists $SEED_CONNECT{$_} |
581 | && !(defined $SEED_NODE{$_} && node_is_up $SEED_NODE{$_}) |
582 | && !(defined $SEED_NODE{$_} && node_is_up $SEED_NODE{$_}) |
582 | } keys %SEED_NODE; |
583 | } keys %SEED_NODE; |
583 | |
584 | |
584 | if (@seeds) { |
585 | if (@seeds) { |
585 | # start conenction attempt for every seed we are not connected to yet |
586 | # start connection attempt for every seed we are not connected to yet |
586 | seed_connect $_ |
587 | seed_connect $_ |
587 | for @seeds; |
588 | for @seeds; |
588 | } else { |
589 | } else { |
589 | # all seeds connected or connecting |
590 | # all seeds connected or connecting |
590 | undef $SEED_WATCHER; |
591 | undef $SEED_WATCHER; |