You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

dummy_clam.py 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env python3
  2. PID = "/tmp/dummy_clamav.pid"
  3. import os
  4. import socket
  5. import socketserver
  6. import sys
  7. import dummy_killer
  8. class MyTCPHandler(socketserver.BaseRequestHandler):
  9. def handle(self):
  10. self.data = self.request.recv(1024).strip()
  11. if self.server.foundvirus:
  12. self.request.sendall(b"stream: Eicar-Test-Signature FOUND\0")
  13. else:
  14. self.request.sendall(b"stream: OK\0")
  15. self.request.close()
  16. if __name__ == "__main__":
  17. HOST = "localhost"
  18. alen = len(sys.argv)
  19. if alen > 1:
  20. port = int(sys.argv[1])
  21. if alen >= 3:
  22. foundvirus = bool(sys.argv[2])
  23. else:
  24. foundvirus = False
  25. else:
  26. port = 3310
  27. foundvirus = False
  28. server = socketserver.TCPServer((HOST, port), MyTCPHandler, bind_and_activate=False)
  29. server.allow_reuse_address = True
  30. server.foundvirus = foundvirus
  31. server.server_bind()
  32. server.server_activate()
  33. dummy_killer.setup_killer(server)
  34. dummy_killer.write_pid(PID)
  35. try:
  36. server.handle_request()
  37. except socket.error:
  38. print("Socket closed")
  39. server.server_close()