mirror of https://github.com/fail2ban/fail2ban
				
				
				
			amend to 5f021aa648c42ee188d8c31a81937d764982a58a: void throw a socket error on shutdown for already closed connection;
closes gh-2109pull/2116/head
							parent
							
								
									8069eef50c
								
							
						
					
					
						commit
						22e9ccb387
					
				| 
						 | 
				
			
			@ -43,7 +43,7 @@ class CSocket:
 | 
			
		|||
		self.__csock.connect(sock)
 | 
			
		||||
 | 
			
		||||
	def __del__(self):
 | 
			
		||||
		self.close(False)
 | 
			
		||||
		self.close()
 | 
			
		||||
	
 | 
			
		||||
	def send(self, msg, nonblocking=False, timeout=None):
 | 
			
		||||
		# Convert every list member to string
 | 
			
		||||
| 
						 | 
				
			
			@ -56,13 +56,18 @@ class CSocket:
 | 
			
		|||
	def settimeout(self, timeout):
 | 
			
		||||
		self.__csock.settimeout(timeout if timeout != -1 else self.__deftout)
 | 
			
		||||
 | 
			
		||||
	def close(self, sendEnd=True):
 | 
			
		||||
	def close(self):
 | 
			
		||||
		if not self.__csock:
 | 
			
		||||
			return
 | 
			
		||||
		if sendEnd:
 | 
			
		||||
		try:
 | 
			
		||||
			self.__csock.sendall(CSPROTO.CLOSE + CSPROTO.END)
 | 
			
		||||
		self.__csock.shutdown(socket.SHUT_RDWR)
 | 
			
		||||
		self.__csock.close()
 | 
			
		||||
			self.__csock.shutdown(socket.SHUT_RDWR)
 | 
			
		||||
		except socket.error: # pragma: no cover - normally unreachable
 | 
			
		||||
			pass
 | 
			
		||||
		try:
 | 
			
		||||
			self.__csock.close()
 | 
			
		||||
		except socket.error: # pragma: no cover - normally unreachable
 | 
			
		||||
			pass
 | 
			
		||||
		self.__csock = None
 | 
			
		||||
	
 | 
			
		||||
	@staticmethod
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue