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 /lib/MasterServer/TCP/UCCAppletQuery.pm | |
| 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 'lib/MasterServer/TCP/UCCAppletQuery.pm')
| -rwxr-xr-x | lib/MasterServer/TCP/UCCAppletQuery.pm | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/lib/MasterServer/TCP/UCCAppletQuery.pm b/lib/MasterServer/TCP/UCCAppletQuery.pm index 7637e9f..2c32de9 100755 --- a/lib/MasterServer/TCP/UCCAppletQuery.pm +++ b/lib/MasterServer/TCP/UCCAppletQuery.pm @@ -1,4 +1,3 @@ - package MasterServer::TCP::UCCAppletQuery; use strict; @@ -18,7 +17,7 @@ sub query_applet { my ($self, $ms) = @_; # be nice to notify - $self->log("tcp","start querying $ms->{ip}:$ms->{port} for '$ms->{game}' games"); + $self->log("tcp","start querying $ms->{ip}:$ms->{port} for '$ms->{gamename}' games"); # list to store all IPs in. my $master_list = ""; @@ -27,7 +26,7 @@ sub query_applet { my $handle; $handle = new AnyEvent::Handle( connect => [$ms->{ip} => $ms->{port}], - timeout => 5, + timeout => $self->{timeout_time}, poll => 'r', on_error => sub {$self->error($!, "$ms->{ip}:$ms->{port}"); $handle->destroy;}, on_eof => sub {$self->process_ucc_applet_query($master_list, $ms); $handle->destroy;}, @@ -36,7 +35,7 @@ sub query_applet { # receive and clear buffer my $m = $_[0]->rbuf; $_[0]->rbuf = ""; - + # remove string terminator chop $m if $m =~ m/secure/; @@ -48,20 +47,21 @@ sub query_applet { $m =~ s/\\([^\\]+)\\([^\\]+)/$r{$1}=$2/eg; # respond to challenge - my $validate = $self->validate_string(gamename => $ms->{game}, + my $validate = $self->validate_string(gamename => $ms->{gamename}, enctype => $r{enctype}||0, secure => $r{secure}); # send response - $handle->push_write("\\gamename\\$ms->{game}\\location\\0\\validate\\$validate\\final\\"); + $handle->push_write("\\gamename\\$ms->{gamename}\\location\\0\\validate\\$validate\\final\\"); # part 3: also request the list \list\gamename\ut -- skipped in UCC applets - $handle->push_write("\\list\\\\gamename\\$ms->{game}\\final\\"); + $handle->push_write("\\list\\\\gamename\\$ms->{gamename}\\final\\"); } # part 3b: receive the entire list in multiple steps. - if ($m =~ m/\\ip\\/) { + # $m contains \ip\ or part of that string + else { # add buffer to the list $master_list .= $m; } |
