X-Git-Url: http://git.sourceforge.jp/view?p=shogi-server%2Fshogi-server.git;a=blobdiff_plain;f=shogi-server;h=c20dba8f76fd1acd560b5f41e788ec4915870237;hp=3511c659ce73e3ff689f20409919a56cb0f9760a;hb=926c61bfec83388874d12f181bcf1b8596b420ab;hpb=3305f718961a1fe526674b357f64f35bb311b015 diff --git a/shogi-server b/shogi-server index 3511c65..c20dba8 100755 --- a/shogi-server +++ b/shogi-server @@ -6,7 +6,7 @@ # #-- # Copyright (C) 2004 NABEYA Kenichi (aka nanami@2ch) -# Copyright (C) 2007-2008 Daigo Moriwaki (daigo at debian dot org) +# Copyright (C) 2007-2012 Daigo Moriwaki (daigo at debian dot org) # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ $topdir = nil $league = nil $logger = nil $config = nil -$:.unshift File.dirname(__FILE__) +$:.unshift(File.dirname(File.expand_path(__FILE__))) require 'shogi_server' require 'shogi_server/config' require 'shogi_server/util' @@ -143,9 +143,6 @@ LICENSE SEE ALSO -RELEASE - #{ShogiServer::Release} - REVISION #{ShogiServer::Revision} @@ -375,6 +372,7 @@ def main $league.dir = $topdir config = {} + config[:BindAddress] = "0.0.0.0" config[:Port] = port config[:ServerType] = WEBrick::Daemon if $options["daemon"] config[:Logger] = $logger @@ -420,7 +418,10 @@ def main client.setsockopt(Socket::SOL_SOCKET, Socket::SO_KEEPALIVE, true) # Keepalive time can be set by /proc/sys/net/ipv4/tcp_keepalive_time player, login = login_loop(client) # loop - next unless player + unless player + log_error("Detected a timed out login attempt") + next + end log_message(sprintf("user %s login", player.name)) login.process @@ -431,12 +432,13 @@ def main if (player.game) player.game.kill(player) end - player.finish # socket has been closed + player.finish $league.delete(player) log_message(sprintf("user %s logout", player.name)) ensure $mutex.unlock end + player.wait_write_thread_finish(1000) # milliseconds rescue Exception => ex log_error("server.start: #{ex.class}: #{ex.message}\n\t#{ex.backtrace[0]}") end