def after_fetch_ip(ip): if not ip: return for port in xrange(27020, 27100): try: self.loggers[server] = reactor.listenUDP( port, SourceLib.SourceLog.SourceLogListener( server.ip, server.port, serverlogger.GameserverLogger(self, server))) for line in response.split('\n'): if ip in line and str(port) not in line: self.log_rcon(server, 'logaddress_del ' + line, False) self.log_rcon( server, 'logaddress_add ' + self.get_sid(ip, port), False) statusmanager.push_status("Enabled logging from " + self.get_server_sid(server) + ".") break except twisted.internet.error.CannotListenError: print("Could not bind to port " + str(port) + ", trying " + str(port + 1))
def cb(ret_tuple): success, response = ret_tuple if success: statusmanager.push_status("RCON Password test succeeded.") else: statusmanager.push_status("RCON Password test failed.") return ret_tuple
def set_logging(self, server, enabled): def cb(ret_tuple): # FIXME: This is not run in a thread, so it hangs the system if connecting takes a while. success, response = ret_tuple if not success: self.bd.get_object("act_toggle_logging").set_active(False) return s, r = self.log_rcon(server, 'log', False) if 'not currently logging' in r: self.log_rcon(server, 'log on', False) def after_fetch_ip(ip): if not ip: return for port in xrange(27020,27100): try: self.loggers[server] = reactor.listenUDP(port, SourceLib.SourceLog.SourceLogListener(server.ip, server.port, serverlogger.GameserverLogger(self, server))) for line in response.split('\n'): if ip in line and str(port) not in line: self.log_rcon(server, 'logaddress_del ' + line, False) self.log_rcon(server, 'logaddress_add ' + self.get_sid(ip, port), False) statusmanager.push_status("Enabled logging from "+self.get_server_sid(server)+".") break except twisted.internet.error.CannotListenError: print("Could not bind to port "+ str(port) + ", trying "+str(port+1)) ret, thread = utils.whatismyip() if thread: ret.addCallback(after_fetch_ip) else: after_fetch_ip(ret) #-------------------------------------------------- if enabled == server.logging: return server.logging = enabled if enabled: d = self.log_rcon(server, "logaddress_list") d.addCallback(cb) elif server in self.loggers: self.loggers[server].stopListening() del self.loggers[server] statusmanager.push_status("Disabled logging from "+self.get_server_sid(server)+".")
def post_query(ret_tuple, server): success, errval = ret_tuple if not success: self.send_message(str(errval), "error") self.confirm_add_server.set_sensitive(True) self.manager.delete_server(server) return statusmanager.push_status("Added server "+self.manager.get_server_sid(server)+".") self.manager.add_server_item(server) self.close_server_dialog(self.window) # Begin querying the server on a timer self.manager.init_query_timer(server)
def post_query(ret_tuple, server): success, errval = ret_tuple if not success: self.send_message(str(errval), "error") self.confirm_add_server.set_sensitive(True) self.manager.delete_server(server) return statusmanager.push_status("Added server " + self.manager.get_server_sid(server) + ".") self.manager.add_server_item(server) self.close_server_dialog(self.window) # Begin querying the server on a timer self.manager.init_query_timer(server)
def after_fetch_ip(ip): if not ip: return for port in xrange(27020,27100): try: self.loggers[server] = reactor.listenUDP(port, SourceLib.SourceLog.SourceLogListener(server.ip, server.port, serverlogger.GameserverLogger(self, server))) for line in response.split('\n'): if ip in line and str(port) not in line: self.log_rcon(server, 'logaddress_del ' + line, False) self.log_rcon(server, 'logaddress_add ' + self.get_sid(ip, port), False) statusmanager.push_status("Enabled logging from "+self.get_server_sid(server)+".") break except twisted.internet.error.CannotListenError: print("Could not bind to port "+ str(port) + ", trying "+str(port+1))
def delete_sid(self, sid): if sid in self.servers: server = self.servers[sid] if server is self.cur_server: self.cur_server = None self.set_logging(server, False) server.cleanup() if server in self.textlogs: del self.textlogs[server] if server in self.loggers: del self.loggers[server] del self.servers[sid] else: msg = "Server with sid '"+sid+"' not found to delete." print(msg) statusmanager.push_status(msg) store = self.bd.get_object("servers_liststore") for row in store: if store.get_value(row.iter, 0) == sid: store.remove(row.iter) break
def delete_sid(self, sid): if sid in self.servers: server = self.servers[sid] if server is self.cur_server: self.cur_server = None self.set_logging(server, False) server.cleanup() if server in self.textlogs: del self.textlogs[server] if server in self.loggers: del self.loggers[server] del self.servers[sid] else: msg = "Server with sid '" + sid + "' not found to delete." print(msg) statusmanager.push_status(msg) store = self.bd.get_object("servers_liststore") for row in store: if store.get_value(row.iter, 0) == sid: store.remove(row.iter) break
def on_act_remove_server_activate(self, act_remove_server): if self.cur_server: sid = self.get_server_sid(self.cur_server) self.delete_sid(sid) statusmanager.push_status("Deleted server "+sid+".")
def set_logging(self, server, enabled): def cb(ret_tuple): # FIXME: This is not run in a thread, so it hangs the system if connecting takes a while. success, response = ret_tuple if not success: self.bd.get_object("act_toggle_logging").set_active(False) return s, r = self.log_rcon(server, 'log', False) if 'not currently logging' in r: self.log_rcon(server, 'log on', False) def after_fetch_ip(ip): if not ip: return for port in xrange(27020, 27100): try: self.loggers[server] = reactor.listenUDP( port, SourceLib.SourceLog.SourceLogListener( server.ip, server.port, serverlogger.GameserverLogger(self, server))) for line in response.split('\n'): if ip in line and str(port) not in line: self.log_rcon(server, 'logaddress_del ' + line, False) self.log_rcon( server, 'logaddress_add ' + self.get_sid(ip, port), False) statusmanager.push_status("Enabled logging from " + self.get_server_sid(server) + ".") break except twisted.internet.error.CannotListenError: print("Could not bind to port " + str(port) + ", trying " + str(port + 1)) ret, thread = utils.whatismyip() if thread: ret.addCallback(after_fetch_ip) else: after_fetch_ip(ret) #-------------------------------------------------- if enabled == server.logging: return server.logging = enabled if enabled: d = self.log_rcon(server, "logaddress_list") d.addCallback(cb) elif server in self.loggers: self.loggers[server].stopListening() del self.loggers[server] statusmanager.push_status("Disabled logging from " + self.get_server_sid(server) + ".")
def on_act_remove_server_activate(self, act_remove_server): if self.cur_server: sid = self.get_server_sid(self.cur_server) self.delete_sid(sid) statusmanager.push_status("Deleted server " + sid + ".")