]>
Commit | Line | Data |
---|---|---|
e3aced8e MM |
1 | # vi: encoding=utf-8 ts=8 sts=4 sw=4 et |
2 | ||
3 | import os | |
4 | import socket | |
5 | import time | |
6 | import config | |
7 | ||
e3aced8e MM |
8 | pubsock=config.value['pubsock'] |
9 | ||
10 | if os.environ.has_key('HOME'): | |
6992b18d | 11 | privsock=os.environ['HOME']+'/pld-ftp-admin/var/privsock' |
e3aced8e MM |
12 | socketname=privsock |
13 | else: | |
14 | socketname=pubsock | |
15 | ||
b55905f2 | 16 | def connect(name=None): |
e3aced8e MM |
17 | global sock |
18 | sock=socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) | |
19 | sock.connect(socketname) | |
b55905f2 MM |
20 | if name: |
21 | sock.send('name %s\0' % name) | |
e3aced8e | 22 | |
6992b18d MM |
23 | def login_passwd(login, passwd): |
24 | 'Return cookie if ok' | |
25 | sock.send('linp %s\n%s\0' % (login, passwd)) | |
26 | retval=sock.recv(256) | |
27 | if retval=='FAIL': | |
28 | return '' | |
29 | else: | |
30 | return retval[3:] | |
31 | ||
32 | def login_cookie(cookie): | |
33 | 'Return login if ok' | |
34 | sock.send('linc %s\0' % cookie) | |
35 | retval=sock.recv(256) | |
36 | if retval=='FAIL': | |
37 | return '' | |
38 | else: | |
39 | return retval[3:] | |
40 | ||
41 | def logout(): | |
88d4cb67 | 42 | sock.send('lout\0') |
6992b18d | 43 | |
e3aced8e MM |
44 | def lock(path, hard=False): |
45 | def dolock(): | |
46 | if hard: | |
47 | sock.send('lckh %s\0' % path) | |
48 | else: | |
49 | sock.send('lcks %s\0' % path) | |
50 | return sock.recv(20) | |
51 | for i in range(3): | |
52 | retcode=dolock() | |
53 | if retcode=="OK": | |
54 | return True | |
55 | elif retcode=="HARD": | |
56 | return False | |
57 | if i!=2: | |
58 | time.sleep(1) | |
59 | return False | |
60 | ||
61 | def unlock(path): | |
62 | sock.send('ulck %s\0' % path) | |
63 | ||
459e7d48 MM |
64 | def log(msg): |
65 | sock.send('log1 %s\0' % msg) | |
e3aced8e | 66 | |
08b49edd MM |
67 | def gettree(): |
68 | sock.send('gett\0') | |
69 | pkgs=[] | |
70 | len=int(sock.recv(6)) | |
71 | if len: | |
72 | for pkg in sock.recv(len).split('\n'): | |
73 | pkgs.append(pkg) | |
74 | return pkgs | |
b55905f2 | 75 |