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.1 by root, Fri Dec 15 19:29:18 2006 UTC vs.
Revision 1.4 by root, Mon Apr 16 06:23:41 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 9
10our $UPDATE_METASERVER = Event->timer (after => 5, interval => 299, data => cf::WF_AUTOCANCEL, cb => sub { 10our $VERSION = cf::VERSION;
11 my $socket = new IO::Socket::INET 11our $PREFIX = "";
12 Proto => 'udp', 12our $SUFFIX = "ng";
13 PeerAddr => $cf::CFG{metaserver_metaserver},
14 LocalAddr => $cf::CFG{metaserver_serveraddr}
15 or die "metaserver socket creation error: $!";
16 13
17 my $num_players = grep 14our $UPDATE_METASERVER = Event->timer (
18 $_->ob->map 15 reentrant => 0,
19 && !$_->hidden 16 after => 5,
20 && !$_->ob->flag (cf::FLAG_WIZ), 17 interval => 299,
21 cf::player::list; 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: $!";
22 26
23 my $pkt = sprintf "%s|%d|%s|%s|%d|%d|%d",
24 $cf::CFG{metaserver_servername},
25 $num_players, 27 my $num_players = grep
26 cf::VERSION, 28 $_->ob->map
27 $cf::CFG{metaserver_comment}, 29 && !$_->hidden
28 0, # ibytes 30 && !$_->ob->flag (cf::FLAG_WIZ),
29 0, # obytes 31 cf::player::list;
30 time - $cf::uptime;
31 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
32 syswrite $socket, $pkt; 42 syswrite $socket, $pkt;
43 },
33}); 44);
45

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines