ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/metaserver.ext
(Generate patch)

Comparing deliantra/server/ext/metaserver.ext (file contents):
Revision 1.2 by root, Sun Jan 21 21:28:27 2007 UTC vs.
Revision 1.6 by root, Sun Sep 9 12:52:48 2007 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines