]> git.pld-linux.org Git - projects/pld-ftp-admin.git/blob - modules/cmds.py
4025ae85a6838523f029f51bfe968121def25e8a
[projects/pld-ftp-admin.git] / modules / cmds.py
1 # vi: encoding=utf-8 ts=8 sts=4 sw=4 et
2
3 def parse(con):
4     if '\0' not in con.data:
5         return
6     cmds=con.data.split('\0')[:-1]
7
8     for cmd in cmds:
9         con.data=con.data[len(cmd)+1:]
10         cmdname=cmd[:4]
11         if cmdname in cmdlist:
12             cmdlist[cmdname](con, cmd[5:])
13         else:
14             raise CmdError
15             # TODO: log this
16
17 locks={}
18
19 def lock(con, arg, hard):
20     if arg not in locks:
21         locks[arg]=hard
22         con.sock.send("OK")
23     elif locks[arg]:
24         con.sock.send("HARD") # Hard lock - you can go get a cup of tea
25     else:
26         con.sock.send("SOFT") # Soft lock - try in a second or two
27         
28     
29 def unlock(con, arg):
30     if arg in locks:
31         del locks[arg]
32
33 def lock_soft(con, arg):
34     lock(con, arg, False)
35
36 def lock_hard(con, arg):
37     lock(con, arg, True)
38
39 CmdError="CmdError"
40
41 cmdlist={'lcks':lock_soft, 'lckh':lock_hard, 'ulck':unlock}
42
This page took 0.038463 seconds and 2 git commands to generate.