3 LATCP_SOCKET = '/var/run/latlogin'
7 LATCP_CMD_TERMINALSESSION = 26
8 LATCP_CMD_ERRORMSG = 99
11 def __init__(self, service = None, node = None, port = None, \
12 localport = None, password = None, is_queued = False):
13 self.sock = socket(AF_UNIX, SOCK_STREAM, 0);
14 self.sock.connect(LATCP_SOCKET)
15 self.send_msg(LATCP_CMD_VERSION, LAT_VERSION+'\000')
16 (cmd, msg) = self.read_reply()
17 if service == None: service = ''
18 if node == None: node = ''
19 if port == None: port = ''
20 if localport == None: localport = ''
21 if password == None: password = ''
26 self.send_msg(LATCP_CMD_TERMINALSESSION, '%c%c%s%c%s%c%s%c%s%c%s' % \
28 len(service), service,
31 len(localport), localport,
32 len(password), password
34 (cmd, msg) = self.read_reply()
35 if ord(cmd) == LATCP_CMD_ERRORMSG:
36 raise Exception('LATClient: '+msg)
46 def send_msg(self, cmd, msg):
47 self.sock.send('%c%c%c%s'%(cmd, len(msg)/256, len(msg)%256, msg))
50 head = self.sock.recv(3)
52 sys.stderr.write('Error: Short LAT packet\n')
55 length = ord(head[1])*256 + ord(head[2])
56 msg = self.sock.recv(length)
57 if cmd == LATCP_CMD_ERRORMSG:
58 sys.stderr.write('Error: Received LAT error: %s\n'%msg)
62 return (self.sock.makefile('r'), self.sock.makefile('w'))