Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use v6;
- port_check( ['perlmonks.com', 'fail.com', 'fail.com', 'fail.com', 'fail.com', 'fail.com', 'fail.com', 'fail.com', 'perlmonks.org'], 55, 2 );
- sub port_check( @checknodes, $port = 22, $timeout = 10)
- {
- my @promises = @checknodes.map( -> $host {
- IO::Socket::Async.connect( $host, $port );
- });
- my @waits = @promises.map( -> $promise {
- Promise.anyof( Promise.in( $timeout ), $promise )
- });
- await Promise.allof( @waits );
- for @checknodes Z @promises -> [$node, $promise]
- {
- if $promise.status ~~ Kept
- {
- given $promise.result
- {
- my $peer = "{.peer-host}:{.peer-port}";
- my $socket = "{.socket-host}:{.socket-port}";
- say "$socket connected to $peer";
- .close;
- }
- }
- else
- {
- say "not connected to $node:$port";
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement