diff --git a/src/server.py b/src/server.py --- a/src/server.py +++ b/src/server.py @@ -3,7 +3,7 @@ import ssl import multiprocessing import logging as log -from hashtree import hashBlock +from hashtree import hash_block from netnode import BaseConnection,NetNode import config as conf import status @@ -11,25 +11,25 @@ from datafile import DataFile class Connection(BaseConnection): - def __init__(self, serverSocket, sslContext): + def __init__(self, server_socket, ssl_context): super().__init__() - sock, address = serverSocket.accept() + sock, address = server_socket.accept() peer = sock.getpeername() try: - self._socket = sslContext.wrap_socket(sock, server_side=True) + self._socket = ssl_context.wrap_socket(sock, server_side=True) except (ssl.SSLError,OSError) as e: log.warning("Failed to establish an SSL connection from {0}.".format(peer)) raise e log.info('Connected by {0}'.format(address)) - self.createNetworkers() + self.create_networkers() class Miniserver: - def __init__(self, filename, treeFile=""): + def __init__(self, filename, tree_file=""): self._filename = filename - self._treeFile = treeFile + self._tree_file = tree_file self._ssl = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH, cafile=conf.peers) self._ssl.verify_mode = ssl.CERT_REQUIRED @@ -47,111 +47,111 @@ class Miniserver: except (ssl.SSLError, OSError): continue if p and p.is_alive(): with connection as c: - c[0].readMsg() - c[1].writeMsg({"command":"deny", "status":status.locked}) + c[0].read_msg() + c[1].write_msg({"command": "deny", "status":status.locked}) continue - p = multiprocessing.Process(target=Server.run, args=(connection, self._filename, self._treeFile)) + p = multiprocessing.Process(target=Server.run, args=(connection, self._filename, self._tree_file)) p.start() class Server(NetNode): - def __init__(self, connection, filename, treeFile=""): - super().__init__(filename, treeFile) + def __init__(self, connection, filename, tree_file=""): + super().__init__(filename, tree_file) (self._incoming, self._outcoming) = connection self.BLOCK_SIZE = self._tree.BLOCK_SIZE - self._dataFileObj = None + self._data_file_obj = None @staticmethod def run(connection, *args): with connection as c: - s = Server(c,*args) + s = Server(c, *args) s.serve() @property - def _dataFile(self): - if not self._dataFileObj: - self._dataFileObj = DataFile.open(self._filename, mode="rb+") - return self._dataFileObj + def _data_file(self): + if not self._data_file_obj: + self._data_file_obj = DataFile.open(self._filename, mode="rb+") + return self._data_file_obj def serve(self): try: - while self._serveOne(): pass + while self._serve_one(): pass except (AssertionError, ConnectionResetError) as e: log.warning(e) - def _serveOne(self): - jsonData, binData = self._incoming.readMsg() + def _serve_one(self): + json_data, bin_data = self._incoming.read_msg() - if jsonData["command"]=="init": - if jsonData["blockSize"]!=self.BLOCK_SIZE or jsonData["blockCount"]!=self._tree.leafCount: - self._outcoming.writeMsg({"command":"deny", "status":status.incompatible.parameters}) - if jsonData["version"]