]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blame - modules/ftpio.py
- also support older poldek
[projects/pld-ftp-admin.git] / modules / ftpio.py
CommitLineData
e3aced8e
MM
1# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
3import os
4import socket
5import time
6import config
7
e3aced8e
MM
8pubsock=config.value['pubsock']
9
10if os.environ.has_key('HOME'):
6992b18d 11 privsock=os.environ['HOME']+'/pld-ftp-admin/var/privsock'
e3aced8e
MM
12 socketname=privsock
13else:
14 socketname=pubsock
15
b55905f2 16def 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
23def 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
32def 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
41def logout():
88d4cb67 42 sock.send('lout\0')
6992b18d 43
e3aced8e
MM
44def 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
61def unlock(path):
62 sock.send('ulck %s\0' % path)
63
459e7d48
MM
64def log(msg):
65 sock.send('log1 %s\0' % msg)
e3aced8e 66
08b49edd
MM
67def gettree():
68 sock.send('gett\0')
69 pkgs=[]
70 len=int(sock.recv(6))
71 if len:
5d490a9c
MM
72 for pkg in sock.recv(len).split('\0'):
73 tmp=pkg.split('\n')
74 pkgs.append((tmp[0], int(tmp[1]), int(tmp[2])))
08b49edd 75 return pkgs
b55905f2 76
This page took 0.047093 seconds and 4 git commands to generate.