Beispiel #1
0
    def __init__(self):
        self.db = sqlite3_wrapper()
        self.keys = load_keys()

        with open("config.json") as config_file:
            config = json.loads(config_file.read())
        self.nick = config["nick"]
        self.self_ips = config["ips"]

        # check if members.db is initialized, init it if not
        if len(
                self.db.execute("SELECT * FROM members WHERE nick = ?",
                                self.nick)) == 0:
            self.db.execute(
                "INSERT INTO members (nick, public_key) VALUES (?, ?)",
                self.nick, self.keys["pub_key_s"])

            for ip in self.self_ips:
                self.db.execute(
                    "INSERT INTO ips (member_nick, ip) VALUES (?, ?)",
                    self.nick, ip)

        self.members = self.db.execute("SELECT * FROM members")
        self.ips = self.db.execute("SELECT * FROM ips")

        # initialize requests handler dict
        self.handler_dict = {"MSG": self.handle_msg, "JOIN": self.handle_join}

        # start listening thread
        self.server_thread = threading.Thread(target=self.start_server)
        self.server_thread.daemon = True
        self.server_stopped = False
        self.server_thread.start()
Beispiel #2
0
    def start_server(self):
        print("done!")
        self.server_thread_db = sqlite3_wrapper()

        while not self.server_stopped:
            (client_s, address) = self.server_s.accept()
            data = self.recv_all(client_s)
            client_s.close()
            self.handle_request(data)
Beispiel #3
0
    def start_server(self):
        self.server_thread_db = sqlite3_wrapper()

        print("starting listening server in separate thread...")
        self.server_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server_s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        self.server_s.bind((socket.gethostname(), 3623))
        # queue up to 5 connections before dropping
        self.server_s.listen(5)
        print("done! listening on port 3623")

        while not self.server_stopped:
            client_s, address = self.server_s.accept()
            data = self.recv_all(client_s)
            self.handle_request(data)
            client_s.close()
Beispiel #4
0
    def __init__(self):
        self.db = sqlite3_wrapper()
        self.keys = load_keys()

        with open("config.json") as config_file:
            config = json.loads(config_file.read())
        self.nick = config["nick"]
        self.ips = config["ips"]

        # check if members.db is initialized, init it if not
        if len(
                self.db.execute("SELECT * FROM members WHERE public_key = ?",
                                self.keys["pub_key_s"])) == 0:
            self.db.execute(
                "INSERT INTO members (public_key, nick) VALUES (?, ?)",
                self.keys["pub_key_s"], self.nick)
            self.id = self.db.execute(
                "SELECT id FROM members WHERE public_key = ?",
                self.keys["pub_key_s"])[0]["id"]

            for ip in self.ips:
                self.db.execute(
                    "INSERT INTO ips (member_id, ip) VALUES (?, ?)", self.id,
                    ip)

        self.id = self.db.execute(
            "SELECT id FROM members WHERE public_key = ?",
            self.keys["pub_key_s"])[0]["id"]
        self.members = self.db.execute("SELECT * FROM members")
        self.ips = self.db.execute("SELECT * FROM ips")

        # initialize requests handler dict
        self.handler_dict = {"MSG": self.handle_msg}

        # initialize server socket
        print("initializing listening server...")
        self.server_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.server_s.bind((socket.gethostname(), 3623))
        # queue up to 5 connections before dropping
        self.server_s.listen(5)

        # start listening thread
        self.server_thread = threading.Thread(target=self.start_server)
        self.server_thread.daemon = True
        self.server_stopped = False
        self.server_thread.start()