Changeset - 0e02ff79165c
[Not reviewed]
default
0 1 0
Laman - 6 years ago 2018-12-03 15:42:14

fix: another error handled
1 file changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
src/server.py
Show inline comments
 
@@ -9,25 +9,25 @@ import config as conf
 
import status
 
from datafile import DataFile
 

	
 

	
 
class Connection(BaseConnection):
 
	def __init__(self,serverSocket,sslContext):
 
		super().__init__()
 

	
 
		sock, address = serverSocket.accept()
 
		peer=sock.getpeername()
 
		try:
 
			self._socket=sslContext.wrap_socket(sock,server_side=True)
 
		except ssl.SSLError as e:
 
		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()
 

	
 

	
 
class Miniserver:
 
	def __init__(self,filename,treeFile=""):
 
		self._filename=filename
 
		self._treeFile=treeFile
 

	
 
@@ -35,25 +35,25 @@ class Miniserver:
 
		self._ssl.verify_mode=ssl.CERT_REQUIRED
 
		self._ssl.load_cert_chain(conf.certfile,conf.keyfile)
 

	
 
		self._ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 
		self._ss.bind(("", conf.port))
 
		self._ss.listen(1)
 

	
 
	def serve(self):
 
		p=None
 
		with self._ss:
 
			while True:
 
				try: connection=Connection(self._ss,self._ssl)
 
				except ssl.SSLError: continue
 
				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})
 
					continue
 
				p=multiprocessing.Process(target=Server.run,args=(connection,self._filename,self._treeFile))
 
				p.start()
 

	
 

	
 
class Server(NetNode):
 
	def __init__(self,connection,filename,treeFile=""):
 
		super().__init__(filename,treeFile)
0 comments (0 inline, 0 general)