ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/metaserver.ext
Revision: 1.5
Committed: Mon Apr 16 15:19:59 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
CVS Tags: rel-2_1
Changes since 1.4: +1 -1 lines
Log Message:
oopsie

File Contents

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