ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/maps/perl/metaserver.ext
Revision: 1.1
Committed: Mon Oct 2 15:21:44 2006 UTC (17 years, 7 months ago) by root
Branch: MAIN
Log Message:
reimplement metaserve rin pelr and add bind() support

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     Event->timer (after => 5, interval => 299, cb => sub {
11     my $socket = new IO::Socket::INET
12     Proto => 'udp',
13     PeerAddr => $cf::CFG{metaserver_metaserver},
14     LocalAddr => $cf::CFG{metaserver_serveraddr}
15     or die "metaserver socket creation error: $!";
16    
17     my $num_players = grep
18     $_->ob->map
19     && !$_->hidden
20     && !$_->ob->flag (cf::FLAG_WIZ),
21     cf::player::list;
22    
23     my $pkt = sprintf "%s|%d|%s|%s|%d|%d|%d",
24     $cf::CFG{metaserver_servername},
25     $num_players,
26     "2.0+",
27     $cf::CFG{metaserver_comment},
28     0, # ibytes
29     0, # obytes
30     time - $cf::uptime;
31    
32     syswrite $socket, $pkt;
33     });