Add a connected state for socket

This commit is contained in:
nemunaire 2014-10-01 00:33:52 +02:00
parent 1c1139df9f
commit 302add96ca
2 changed files with 8 additions and 4 deletions

View File

@ -197,7 +197,7 @@ class IRCServer(SocketServer):
return False return False
def _close(self): def _close(self):
if self.socket is not None: self.write("QUIT") if self.connected: self.write("QUIT")
return SocketServer._close(self) return SocketServer._close(self)
def read(self): def read(self):

View File

@ -36,6 +36,10 @@ class SocketServer(AbstractServer):
def fileno(self): def fileno(self):
return self.socket.fileno() if self.socket else None return self.socket.fileno() if self.socket else None
@property
def connected(self):
return self.socket is not None
def _open(self): def _open(self):
# Create the socket # Create the socket
self.socket = socket.socket() self.socket = socket.socket()
@ -58,7 +62,7 @@ class SocketServer(AbstractServer):
def _close(self): def _close(self):
self._sending_queue.join() self._sending_queue.join()
if self.socket is not None: if self.connected:
try: try:
self.socket.shutdown(socket.SHUT_RDWR) self.socket.shutdown(socket.SHUT_RDWR)
self.socket.close() self.socket.close()
@ -68,7 +72,7 @@ class SocketServer(AbstractServer):
return True return True
def _write(self, cnt): def _write(self, cnt):
if self.socket is None: return if not self.connected: return
self.socket.send(cnt) self.socket.send(cnt)
def format(self, txt): def format(self, txt):
@ -78,7 +82,7 @@ class SocketServer(AbstractServer):
return txt.encode() + b'\r\n' return txt.encode() + b'\r\n'
def read(self): def read(self):
if self.socket is None: return if not self.connected: return
raw = self.socket.recv(1024) raw = self.socket.recv(1024)
temp = (self.readbuffer + raw).split(b'\r\n') temp = (self.readbuffer + raw).split(b'\r\n')
self.readbuffer = temp.pop() self.readbuffer = temp.pop()