ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/metaserver.ext
Revision: 1.2
Committed: Sun Jan 21 21:28:27 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.1: +28 -21 lines
Log Message:
mark watchers as reentrant, some FABS => fabs

File Contents

# User Rev Content
1 root 1.1 #! perl
2    
3     # metaserver reports
4    
5     use IO::Socket::INET;
6    
7     $cf::CFG{metaserver_comment}
8     or return;
9    
10 root 1.2 our $UPDATE_METASERVER = Event->timer (
11     reentrant => 0,
12     after => 5,
13     interval => 299,
14     data => cf::WF_AUTOCANCEL,
15     cb => sub {
16     my $socket = new IO::Socket::INET
17     Proto => 'udp',
18     PeerAddr => $cf::CFG{metaserver_metaserver},
19     LocalAddr => $cf::CFG{metaserver_serveraddr}
20     or die "metaserver socket creation error: $!";
21 root 1.1
22 root 1.2 my $num_players = grep
23     $_->ob->map
24     && !$_->hidden
25     && !$_->ob->flag (cf::FLAG_WIZ),
26     cf::player::list;
27 root 1.1
28 root 1.2 my $pkt = sprintf "%s|%d|%s|%s|%d|%d|%d",
29     $cf::CFG{metaserver_servername},
30     $num_players,
31     cf::VERSION,
32     $cf::CFG{metaserver_comment},
33     0, # ibytes
34     0, # obytes
35     time - $cf::uptime;
36    
37     syswrite $socket, $pkt;
38     },
39     );
40 root 1.1