ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/ext/tcp.ext
Revision: 1.19
Committed: Fri Jan 21 19:45:08 2011 UTC (13 years, 4 months ago) by root
Branch: MAIN
Changes since 1.18: +1 -1 lines
Log Message:
whether patch by Jonathan Neuschäfer <j.neuschaefer@gmx.net>

File Contents

# Content
1 #! perl # mandatory
2
3 # this listens for new tcp connections and hands them over to the server core
4 # whether this being an extension introduces or reduces stability problems
5 # is unknown as of today.
6
7 use Socket;
8 use AnyEvent::Socket;
9
10 our $BIND = $cf::CFG{bind_addresses} || [[undef, 13327]];
11 our @LISTENERS;
12
13 for (@$BIND) {
14 my ($host, $port) = @$_;
15 cf::info "listening on ", (format_hostport $host, $port), "\n";
16
17 push @LISTENERS, tcp_server $host, $port, sub {
18 my ($fh, $host, $port) = @_
19 or return;
20
21 my $lhost = AnyEvent::Socket::format_address
22 +(AnyEvent::Socket::unpack_sockaddr getsockname $fh)[1];
23
24 cf::info "new connection from ", (format_hostport $host, $port), "\n"
25 if $lhost ne $host; # do not log connections from the host, e.g. for watchdogs
26
27 cf::client::create fileno $fh, $host;
28 };
29 }
30