This is a far less complicated way of triggering epoll.poll
This commit is contained in:
parent
661199aa54
commit
bb533ab9e8
2 changed files with 5 additions and 45 deletions
|
@ -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")
|
|
@ -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,
|
||||
|
|
Loading…
Reference in a new issue