1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
9 pubsock=config.value['pubsock']
11 if 'HOME' in os.environ:
12 privsock=os.environ['HOME']+'/pld-ftp-admin/var/privsock'
17 def connect(name=None):
19 sock=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
20 sock.connect(socketname)
22 name = "pid_%d_name_%s" % (os.getpid(), sys.argv[0])
23 sock.send(bytearray('name %s\0' % name, encoding='utf-8'))
25 def login_passwd(login, passwd):
27 sock.send(bytearray('linp %s\n%s\0' % (login, passwd), encoding='utf-8'))
28 retval=sock.recv(256).decode("utf-8")
34 def login_cookie(cookie):
36 sock.send(bytearray('linc %s\0' % cookie, encoding='utf-8'))
37 retval=sock.recv(256).decode('utf-8')
44 sock.send(bytearray('lout\0', encoding='utf-8'))
46 def lock(path, hard=False):
49 sock.send(bytearray('lckh %s\0' % path, encoding='utf-8'))
51 sock.send(bytearray('lcks %s\0' % path, encoding='utf-8'))
52 return sock.recv(20).decode("utf-8")
64 sock.send(bytearray('ulck %s\0' % path, encoding='utf-8'))
65 ret = sock.recv(20).decode("utf-8")
71 sock.send(bytearray('log1 %s\0' % msg, encoding='utf-8'))
74 sock.send(bytearray('slck\0', encoding='utf-8'))
75 ret = sock.recv(4096).decode("utf-8")
77 return "No locks held"
79 # nbytes = int(ret.split("BLOB:")[1])
80 # ret = sock.recv(nbytes).decode("utf-8")
84 sock.send(bytearray('gett\0', encoding='utf-8'))
86 len=int(sock.recv(6).decode("utf-8"))
88 for pkg in sock.recv(len).decode("utf-8").split('\0'):
90 pkgs.append((tmp[0], int(tmp[1]), int(tmp[2])))