From bb533ab9e82500fa2bc446533d5a2e7c82f0a429 Mon Sep 17 00:00:00 2001 From: jesopo Date: Sun, 7 Oct 2018 07:54:10 +0100 Subject: This is a far less complicated way of triggering epoll.poll --- src/ControlSocket.py | 35 ----------------------------------- src/IRCBot.py | 15 +++++---------- 2 files changed, 5 insertions(+), 45 deletions(-) delete mode 100644 src/ControlSocket.py (limited to 'src') diff --git a/src/ControlSocket.py b/src/ControlSocket.py deleted file mode 100644 index 6ebb7f7c..00000000 --- a/src/ControlSocket.py +++ /dev/null @@ -1,35 +0,0 @@ -import os, socket -from src import Socket - -class ControlSocket(object): - def __init__(self, bot): - self.bot = bot - - location = bot.config["control-socket"] - if os.path.exists(location): - os.unlink(location) - self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) - self.socket.bind(location) - self.socket.listen() - self.connected = True - - def fileno(self): - return self.socket.fileno() - def waiting_send(self): - return False - def _send(self): - pass - def read(self): - client, addr = self.socket.accept() - self.bot.add_socket(Socket.Socket(client, self.on_read)) - return [] - def parse_data(self, data): - command = data.split(" ", 1)[0].upper() - if command == "TRIGGER": - pass - else: - raise ValueError("unknown control socket command: '%s'" % - command) - - def on_read(self, sock, data): - data = data.strip("\r\n") diff --git a/src/IRCBot.py b/src/IRCBot.py index d9f14c74..63ce85ba 100644 --- a/src/IRCBot.py +++ b/src/IRCBot.py @@ -1,6 +1,6 @@ import os, select, socket, sys, threading, time, traceback, uuid -from src import ControlSocket, EventManager, Exports, IRCServer, Logging -from src import ModuleManager, utils +from src import EventManager, Exports, IRCServer, Logging, ModuleManager +from src import Socket, utils class Bot(object): def __init__(self, directory, args, cache, config, database, events, @@ -23,16 +23,11 @@ class Bot(object): self.servers = {} self.other_sockets = {} - - if "contorl-socket" in self.config: - self.control_socket = ControlSocket.ControlSocket(self) - self.add_socket(self.control_socket) - self._control_sclient = socket.socket( - socket.AF_UNIX, socket.SOCK_STREAM) - self._control_client.connect(self.config["control-socket"]) + self._trigger_server, self._trigger_client = socket.socketpair() + self.add_socket(Socket.Socket(self._trigger_server, lambda x: x)) def trigger(self): - self._control_client.send(b"TRIGGER") + self._trigger_client.send(b"TRIGGER") def add_server(self, server_id, connect=True): (_, alias, hostname, port, password, ipv4, tls, bindhost, nickname, -- cgit v1.3.1-10-gc9f91