diff --git a/DLLSocket/server_controller.py b/DLLSocket/server_controller.py index 5c50da8a204..19dd13f7533 100644 --- a/DLLSocket/server_controller.py +++ b/DLLSocket/server_controller.py @@ -9,6 +9,8 @@ sock = socket.socket( socket.AF_INET, # Internet socket.SOCK_DGRAM ) # UDP sock.bind( (UDP_IP,UDP_PORT) ) +last_ticker_state = None + def handle_message(data, addr): params = urlparse.parse_qs(data) print(data) @@ -20,6 +22,20 @@ def handle_message(data, addr): pass except KeyError: pass + + try: + if params["type"][0] == "ticker_state" and str(params["message"][0]): + last_ticker_state = str(params["message"][0]) + except KeyError: + pass + + try: + global last_ticker_state + if params["type"][0] == "startup" and last_ticker_state: + open("crashlog.txt","a+").write("Server exited, last ticker state was: "+last_ticker_state) + except KeyError: + pass + while True: data, addr = sock.recvfrom( 1024 ) # buffer size is 1024 bytes diff --git a/code/game/master_controller.dm b/code/game/master_controller.dm index e614099ee15..1fc6a160da1 100644 --- a/code/game/master_controller.dm +++ b/code/game/master_controller.dm @@ -43,6 +43,9 @@ datum/controller/game_controller socket_talk = new /datum/socket_talk() + // notify the other process that we started up + socket_talk.send_raw("type=startup") + if(!air_master) air_master = new /datum/controller/air_system() air_master.setup() @@ -121,7 +124,7 @@ datum/controller/game_controller // This should describe what is currently being done by the master controller // Useful for crashlogs and similar, because that way it's easy to tell what // was going on when the server crashed. - socket_talk.send_log("crashlog.txt","TickerState: [txt]") + socket_talk.send_raw("type=ticker_state&message=[txt]") return process()