2 import sys, getopt, socket, subprocess
3 from bup import options, path
4 from bup.helpers import *
7 bup daemon [options...]
9 l,listen ip address to listen on, defaults to *
10 p,port port to listen on, defaults to 1982
12 o = options.Options(optspec, optfunc=getopt.getopt)
13 (opt, flags, extra) = o.parse(sys.argv[1:])
15 o.fatal('no arguments expected')
18 port = opt.port and int(opt.port) or 1982
25 for res in socket.getaddrinfo(host, port, socket.AF_UNSPEC,
26 socket.SOCK_STREAM, 0, socket.AI_PASSIVE):
27 af, socktype, proto, canonname, sa = res
29 s = socket.socket(af, socktype, proto)
30 except socket.error, e:
33 if af == socket.AF_INET6:
34 log("bup daemon: listening on [%s]:%s\n" % sa[:2])
36 log("bup daemon: listening on %s:%s\n" % sa[:2])
39 except socket.error, e:
45 log('bup daemon: listen socket: %s\n' % e.args[1])
50 [rl,wl,xl] = select.select(socks, [], [], 60)
53 log("Socket accepted connection from %s\n" % (src,))
54 sp = subprocess.Popen([path.exe(), 'mux', 'server'],
55 stdin=os.dup(s.fileno()), stdout=os.dup(s.fileno()))
59 l.shutdown(socket.SHUT_RDWR)
62 debug1("bup daemon: done")