Move server functions to a separate file
parent
badfe46694
commit
eae4315562
@ -1,6 +1,4 @@
|
||||
{
|
||||
"Keywords": [
|
||||
"example"
|
||||
],
|
||||
"Keywords": [],
|
||||
"KeywordsExcept": {}
|
||||
}
|
@ -0,0 +1,58 @@
|
||||
from twisted.internet.protocol import Protocol, Factory, ClientFactory
|
||||
from core.main import *
|
||||
from utils.logging.log import *
|
||||
|
||||
from core.parser import parseCommand
|
||||
|
||||
class Server(Protocol):
|
||||
def __init__(self, addr):
|
||||
self.addr = addr
|
||||
self.authed = False
|
||||
if config["UsePassword"] == False:
|
||||
self.authed = True
|
||||
|
||||
def send(self, data):
|
||||
data += "\r\n"
|
||||
data = data.encode("utf-8", "replace")
|
||||
self.transport.write(data)
|
||||
|
||||
def dataReceived(self, data):
|
||||
data = data.decode("utf-8", "replace")
|
||||
#log("Data received from %s:%s -- %s" % (self.addr.host, self.addr.port, repr(data)))
|
||||
if "\n" in data:
|
||||
splitData = [x for x in data.split("\n") if x]
|
||||
if "\n" in data:
|
||||
for i in splitData:
|
||||
parseCommand(self.addr, self.authed, i)
|
||||
return
|
||||
parseCommand(self.addr, self.authed, data)
|
||||
|
||||
def connectionMade(self):
|
||||
log("Connection from %s:%s" % (self.addr.host, self.addr.port))
|
||||
self.send("Hello.")
|
||||
|
||||
def connectionLost(self, reason):
|
||||
self.authed = False
|
||||
log("Connection lost from %s:%s -- %s" % (self.addr.host, self.addr.port, reason.getErrorMessage()))
|
||||
if not listener == None:
|
||||
if self.addr in connections.keys():
|
||||
del connections[self.addr]
|
||||
else:
|
||||
warn("Tried to remove a non-existant connection.")
|
||||
else:
|
||||
warn("Tried to remove a connection from a listener that wasn't running.")
|
||||
if self.addr in MonitorPool:
|
||||
MonitorPool.remove(self.addr)
|
||||
|
||||
class ServerFactory(Factory):
|
||||
def buildProtocol(self, addr):
|
||||
entry = Server(addr)
|
||||
connections[addr] = entry
|
||||
return entry
|
||||
|
||||
def send(self, addr, data):
|
||||
if addr in connections.keys():
|
||||
connection = connections[addr]
|
||||
connection.send(data)
|
||||
else:
|
||||
return
|
Loading…
Reference in New Issue