diff options
| author | Darkelarious <darkelarious@333networks.com> | 2017-05-13 14:18:28 +0200 |
|---|---|---|
| committer | Darkelarious <darkelarious@333networks.com> | 2017-05-13 14:20:49 +0200 |
| commit | 34a2c7390ea9662d33258d384e72fff1912343ff (patch) | |
| tree | d96ea33c0107e4906a152aa1de4b5c75b81ba0a8 /util/tools/r_functions.pl | |
| parent | 84af66aba26d2088d5d95c240d176f3edaf17b58 (diff) | |
| download | MasterServer-Perl-34a2c7390ea9662d33258d384e72fff1912343ff.tar.gz MasterServer-Perl-34a2c7390ea9662d33258d384e72fff1912343ff.zip | |
revised synchronization methods, config settings and bug fixesv2.3.0
Diffstat (limited to 'util/tools/r_functions.pl')
| -rwxr-xr-x | util/tools/r_functions.pl | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/util/tools/r_functions.pl b/util/tools/r_functions.pl index f4834c6..e197e9f 100755 --- a/util/tools/r_functions.pl +++ b/util/tools/r_functions.pl @@ -5,6 +5,9 @@ use warnings; use Encode; use AnyEvent; use AnyEvent::Handle; +use IP::Country::Fast; +use Socket; +use POSIX qw/strftime/; our %S; @@ -19,13 +22,6 @@ sub valid_address { my ($a, $p) = ($h =~ m/:/) ? $h =~ /(.*):(.*)/ : ($h,0); return (undef,undef) unless ($a && $p); - # resolve hostname when needed -- shouldn't even be in the list! FIXME - #if($a =~ /[a-zA-Z]/g) { - # my $raw_addr = (gethostbyname($a))[4]; - # my @octets = unpack("C4", $raw_addr); - # $a = join(".", @octets); - #} - # check if IP and port are in valid range $a = ($a =~ '\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b') ? $a : 0; $p = (0 < $p && $p <= 65535) ? $p : 0; @@ -36,6 +32,12 @@ sub valid_address { return ($a, $p); } +sub host2ip { + my $name = shift; + my $unpack = inet_aton($name) if $name; + return inet_ntoa($unpack) if $unpack; +} + sub query_master { my $ms = shift; @@ -48,7 +50,7 @@ sub query_master { timeout => 15, poll => 'r', on_error => sub { - print "($ms->{ip}, $g) $!\n"; + #print "($ms->{ip}, $g) $!\n"; $handle->destroy; $cv->send; }, @@ -105,7 +107,12 @@ sub process_received_data { } } - print "found $c \t$g \taddresses at $ms->{ip}.\n" if ($c > 0 ); + # log addresses per game per master + #print "found $c \t$g \taddresses at $ms->{ip}.\n" if ($c > 0 ); + + # print only responsive gamenames (useful for making selections) + print "$g " if ($c > 0 ); + } 1; |
