Example #1
0
            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))
Example #2
0
    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
Example #3
0
        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
Example #4
0
  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)+".")
Example #5
0
    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)
Example #6
0
        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)
Example #7
0
      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))
Example #8
0
  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
Example #9
0
    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
Example #10
0
 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+".")
Example #11
0
    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) + ".")
Example #12
0
 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 + ".")