#! perl # MANDATORY # this listens for new tcp connections and hands them over to the server core # wether this being an extension introduces or reduces stability problems # is unknown as of today. use Socket; use AnyEvent::Socket; our $BIND = $cf::CFG{bind_addresses} || [[undef, 13327]]; for (@$BIND) { my ($host, $port) = @$_; warn "listening on $host:$port\n"; tcp_server $host, $port, sub { my ($fh, $host, $port) = @_ or return; my $fd = fileno $fh; warn "new connection from [$host]:$port\n"; # HACK to avoid blocking on common files on log-in. # remove once async cf::async {#d# warn "HACK ext/tcp.ext: $cf::CONFDIR/$_\n" and Coro::AIO::aio_load "$cf::CONFDIR/$_", my $dummy for qw(rules news motd);#d# warn "HACK ext/tcp.ext: $cf::LOCALDIR/crossfiremail\n" and Coro::AIO::aio_load "$cf::LOCALDIR/crossfiremail", my $dummy;#d# cf::client::create $fd, $host; undef $fh;#d# };#d#d }; }