Fix up for client/server socket for python3

pull/128/merge^2
Steven Hiscocks 2013-02-24 10:10:15 +00:00
parent 6f4da8f3c4
commit 46a2b6e428
2 changed files with 17 additions and 5 deletions

View File

@ -29,11 +29,14 @@ __license__ = "GPL"
#from cPickle import dumps, loads, HIGHEST_PROTOCOL
from pickle import dumps, loads, HIGHEST_PROTOCOL
import socket
import socket, sys
class CSocket:
END_STRING = "<F2B_END_COMMAND>"
if sys.version_info >= (3,):
END_STRING = b"<F2B_END_COMMAND>"
else:
END_STRING = "<F2B_END_COMMAND>"
def __init__(self, sock = "/var/run/fail2ban/fail2ban.sock"):
# Create an INET, STREAMing socket
@ -52,7 +55,10 @@ class CSocket:
#@staticmethod
def receive(sock):
msg = ''
if sys.version_info >= (3,):
msg = b''
else:
msg = ''
while msg.rfind(CSocket.END_STRING) == -1:
chunk = sock.recv(6)
if chunk == '':

View File

@ -42,7 +42,10 @@ logSys = logging.getLogger("fail2ban.server")
class RequestHandler(asynchat.async_chat):
END_STRING = "<F2B_END_COMMAND>"
if sys.version_info >= (3,):
END_STRING = b"<F2B_END_COMMAND>"
else:
END_STRING = "<F2B_END_COMMAND>"
def __init__(self, conn, transmitter):
asynchat.async_chat.__init__(self, conn)
@ -62,7 +65,10 @@ class RequestHandler(asynchat.async_chat):
def found_terminator(self):
# Joins the buffer items.
message = loads("".join(self.__buffer))
if sys.version_info >= (3,):
message = loads(b"".join(self.__buffer))
else:
message = loads("".join(self.__buffer))
# Gives the message to the transmitter.
message = self.__transmitter.proceed(message)
# Serializes the response.