def check(self, port): while 1: try: time.sleep(1); conn = http.client.HTTPConnection(metahost); conn.request("GET", statuspath); r1 = conn.getresponse(); self.check_count += 1; self.last_http_status = r1.status; if (r1.status == 200): self.html_doc = r1.read() meta_status = self.html_doc.decode('ascii').split(";"); if (len(meta_status) == 4): self.total = int(meta_status[1]); self.single = int(meta_status[2]); self.multi = int(meta_status[3]); fork_bomb_preventer = (self.total == 0 and self.server_limit < len(self.server_list)) if fork_bomb_preventer: print("Error: Have tried to start more than " + str(self.server_limit) + " servers (the server limit) but according to the" + " metaserver it has found none."); while (self.single < self.server_capacity and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher(game_types[0], port, metahost + metapath, self.savesdir); self.server_list.append(new_server); new_server.start(); port += 1; self.total += 1; self.single += 1; while (self.multi < self.server_capacity and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher(game_types[1], port, metahost + metapath, self.savesdir) self.server_list.append(new_server); new_server.start(); port += 1; self.total += 1; self.multi += 1; else: print("Error: Invalid metaserver status"); except Exception as e: self.html_doc = ("Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)); print(self.html_doc); finally: conn.close(); time.sleep(metachecker_interval);
#perform a test-request to the Metaserver try: conn = http.client.HTTPConnection(metahost, metaport); conn.request("GET", statuspath); r1 = conn.getresponse(); except Exception as e: print("Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)); sys.exit(1) finally: conn.close(); # start the initial Freeciv-web servers mc = metachecker() for type in game_types: new_server = Civlauncher(type, type, port, metahost + ":" + str(metaport) + metapath, mc.savesdir) mc.server_list.append(new_server); new_server.start(); port += 1; if (mc.start_longturn == "true"): # start LongTurn games for i in mc.longturn_ports_list: new_server = Civlauncher("longturn", "longturn_" + str(i), i, metahost + ":" + str(metaport) + metapath, mc.savesdir) mc.server_list.append(new_server); new_server.start(); port += 1; else: port += len(mc.longturn_ports_list); print("Publite2 started!");
time.sleep(metachecker_interval) if __name__ == '__main__': #perform a test-request to the Metaserver try: conn = http.client.HTTPConnection(metahost) conn.request("GET", statuspath) r1 = conn.getresponse() except Exception as e: print( "Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)) sys.exit(1) finally: conn.close() # start the initial Freeciv-web servers mc = metachecker() for type in game_types: for srv_num in range(mc.server_capacity): new_server = Civlauncher(type, port, metahost + metapath, mc.savesdir) mc.server_list.append(new_server) new_server.start() port += 1 print("Publite2 started!") time.sleep(20) mc.check(port)
finally: conn.close(); time.sleep(metachecker_interval); if __name__ == '__main__': #perform a test-request to the Metaserver try: conn = http.client.HTTPConnection(metahost); conn.request("GET", statuspath); r1 = conn.getresponse(); except Exception as e: print("Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)); sys.exit(1) finally: conn.close(); # start the initial Freeciv-web servers mc = metachecker() for type in game_types: for srv_num in range(mc.server_capacity): new_server = Civlauncher(type, port, metahost + metapath, mc.savesdir) mc.server_list.append(new_server); new_server.start(); port += 1; print("Publite2 started!"); time.sleep(20); mc.check(port);
def check(self, port): while 1: try: time.sleep(1); conn = http.client.HTTPConnection(metahost, metaport); conn.request("GET", statuspath); r1 = conn.getresponse(); self.check_count += 1; self.last_http_status = r1.status; if (r1.status == 200): self.html_doc = r1.read() meta_status = self.html_doc.decode('ascii').split(";"); if (len(meta_status) == 5): self.total = int(meta_status[1]); self.single = int(meta_status[2]); self.multi = int(meta_status[3]); self.pbem = int(meta_status[4]); #Check if every server on our list is still alive. If not, remove it #so it can be restarted in the future. new_server_list = self.server_list for index, server in enumerate(self.server_list): if not server.is_alive(): del new_server_list[index] if server.gametype == "longturn": self.longturn.remove(server.scripttype) self.server_list = new_server_list fork_bomb_preventer = (self.total == 0 and self.server_limit < len(self.server_list)) if fork_bomb_preventer: print("Error: Have tried to start more than " + str(self.server_limit) + " servers (the server limit) but according to the" + " metaserver it has found none."); # start LongTurn games, one per pass lt_scripts = glob.glob('LT*.serv') for script in lt_scripts: if script not in self.longturn: new_server = Civlauncher("longturn", script, port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server) new_server.start() port += 1 self.longturn.add(script) break while (self.single < self.server_capacity_single and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher(game_types[0], game_types[0], port, metahost + ":" + str(metaport) + metapath, self.savesdir); self.server_list.append(new_server); new_server.start(); port += 1; self.total += 1; self.single += 1; while (self.multi < self.server_capacity_multi and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher(game_types[1], game_types[1], port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server); new_server.start(); port += 1; self.total += 1; self.multi += 1; while (self.pbem < self.server_capacity_pbem and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher(game_types[2], game_types[2], port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server); new_server.start(); port += 1; self.total += 1; self.pbem += 1; else: print("Error: Invalid metaserver status"); except Exception as e: self.html_doc = ("Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)); print(self.html_doc); finally: conn.close(); time.sleep(metachecker_interval);
print(self.html_doc); finally: conn.close(); time.sleep(metachecker_interval); if __name__ == '__main__': #perform a test-request to the Metaserver try: conn = http.client.HTTPConnection(metahost, metaport); conn.request("GET", statuspath); r1 = conn.getresponse(); except Exception as e: print("Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)); sys.exit(1) finally: conn.close(); # start the initial Freeciv-web servers mc = metachecker() for type in game_types: new_server = Civlauncher(type, type, port, metahost + ":" + str(metaport) + metapath, mc.savesdir) mc.server_list.append(new_server); new_server.start(); port += 1; print("Publite2 started!"); time.sleep(20); mc.check(port);
def check(self, port): while 1: try: time.sleep(1) conn = http.client.HTTPConnection(metahost, metaport) conn.request("GET", statuspath) r1 = conn.getresponse() self.check_count += 1 self.last_http_status = r1.status if (r1.status == 200): self.html_doc = r1.read() meta_status = self.html_doc.decode('ascii').split(";") if (len(meta_status) == 5): self.total = int(meta_status[1]) self.single = int(meta_status[2]) self.multi = int(meta_status[3]) self.pbem = int(meta_status[4]) fork_bomb_preventer = ( self.total == 0 and self.server_limit < len(self.server_list)) if fork_bomb_preventer: print( "Error: Have tried to start more than " + str(self.server_limit) + " servers (the server limit) but according to the" + " metaserver it has found none.") # start LongTurn games, one per pass lt_scripts = glob.glob('pubscript_longturn_*.serv') self.longturn.intersection_update(lt_scripts) for script in lt_scripts: if script not in self.longturn: # script[10:-5] is the magic needed for now because # init-freeciv-web adds its own 'pubscript_' and '.serv' new_server = Civlauncher( "longturn", script[10:-5], port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server) new_server.start() port += 1 self.longturn.add(script) break while (self.single < self.server_capacity_single and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher( game_types[0], game_types[0], port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server) new_server.start() port += 1 self.total += 1 self.single += 1 while (self.multi < self.server_capacity_multi and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher( game_types[1], game_types[1], port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server) new_server.start() port += 1 self.total += 1 self.multi += 1 while (self.pbem < self.server_capacity_pbem and self.total <= self.server_limit and not fork_bomb_preventer): time.sleep(1) new_server = Civlauncher( game_types[2], game_types[2], port, metahost + ":" + str(metaport) + metapath, self.savesdir) self.server_list.append(new_server) new_server.start() port += 1 self.total += 1 self.pbem += 1 else: print("Error: Invalid metaserver status") except Exception as e: self.html_doc = ( "Error: Publite2 is unable to connect to Freeciv-web metaserver on http://" + metahost + metapath + ", error" + str(e)) print(self.html_doc) finally: conn.close() time.sleep(metachecker_interval)