1 """
2 The tcpconnect service. This is to check if a service on a specific port is reachable.
3
4 This should just return 0 on success and NOT 0 on error. Just to make internals generic to just report this code and
5 not use a parser.
6 """
7
8 import socket
9 from lib.config.services import Service
10 from service import Service
11
12
15
16 super(TcpconnectService, self).__init__(**kwargs)
17
18 args = self.get_arguments()
19 if "port" in args:
20 self.port = args["port"]
21 else:
22 raise Exception("There is no port set")
23
26
28 try:
29 sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
30 except socket.error, msg:
31 log.w("%s\n" % msg[1])
32 self.errorcode = 1
33
34 try:
35 sock.connect((self.host, self.port))
36 except socket.error, msg:
37 log.w("%s\n" % msg[1])
38 self.errorcode = 2
39
40 sock.close()
41 return
42
43
46