1
2
3
4
5 import logging
6 import socket
7
8 from lib.core.config import Config
9
10 log = logging.getLogger(__name__)
11
12 BUFSIZE = 16 * 1024
13
15 nc = infd = None
16 try:
17 nc = NetlogFile(dump_path)
18
19 infd = open(file_path, "rb")
20 tmp = infd.read(BUFSIZE)
21 while tmp:
22 nc.send(tmp)
23 tmp = infd.read(BUFSIZE)
24 except Exception as e:
25 log.error("Exception uploading file to host: %s", e)
26 finally:
27 if infd:
28 infd.close()
29 if nc:
30 nc.close()
31
34 config = Config(cfg="analysis.conf")
35 self.hostip, self.hostport = config.ip, config.port
36 self.sock, self.file = None, None
37 self.proto = proto
38
40 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
41 try:
42 s.connect((self.hostip, self.hostport))
43 s.sendall(self.proto)
44 except:
45 pass
46 else:
47 self.sock = s
48 self.file = s.makefile()
49
50 - def send(self, data, retry=True):
51 try:
52 self.sock.sendall(data)
53 except socket.error:
54 self.connect()
55 if retry:
56 self.send(data, retry=False)
57 except:
58
59
60
61 self.close()
62
64 try:
65 self.file.close()
66 self.sock.close()
67 except Exception:
68 pass
69
75
81
82 - def emit(self, record):
83 msg = self.format(record)
84 self.send("{0}\n".format(msg))
85