| #!/usr/bin/python |
| |
| import sys |
| import dbus |
| |
| if (len(sys.argv) < 4): |
| print "Usage: %s <type> ... " % (sys.argv[0]) |
| print " type: openconnect" |
| print " <name> <host> <domain> <cookie> [servercert]" |
| print " type: openvpn" |
| print " <name> <host> <domain> [<cafile> <certfile> <keyfile>]" |
| print " type: pptp" |
| print " <name> <host> <domain> <user> <password>" |
| print " type: l2tp" |
| print " <name> <host> <domain> <user> <password>" |
| sys.exit(1) |
| |
| bus = dbus.SystemBus() |
| |
| manager = dbus.Interface(bus.get_object("net.connman", "/"), |
| "net.connman.Manager") |
| |
| print "Attempting to connect service %s" % (sys.argv[3]) |
| |
| if sys.argv[1] == "openconnect": |
| if (len(sys.argv) > 6): |
| path = manager.ConnectProvider(({ "Type": "openconnect", |
| "Name": sys.argv[2], |
| "Host": sys.argv[3], |
| "VPN.Domain": sys.argv[4], |
| "OpenConnect.Cookie": sys.argv[5], |
| "OpenConnect.ServerCert": sys.argv[6]})) |
| else: |
| path = manager.ConnectProvider(({ "Type": "openconnect", |
| "Name": sys.argv[2], |
| "Host": sys.argv[3], |
| "VPN.Domain": sys.argv[4], |
| "OpenConnect.Cookie": sys.argv[5]})) |
| elif sys.argv[1] == "openvpn": |
| if (len(sys.argv) < 6): |
| path = manager.ConnectProvider(({ "Type": "openvpn", |
| "Name": sys.argv[2], |
| "Host": sys.argv[3], |
| "VPN.Domain": sys.argv[4] })) |
| else: |
| path = manager.ConnectProvider(({ "Type": "openvpn", |
| "Name": sys.argv[2], |
| "Host": sys.argv[3], |
| "VPN.Domain": sys.argv[4], |
| "OpenVPN.CACert": sys.argv[5], |
| "OpenVPN.Cert": sys.argv[6], |
| "OpenVPN.Key": sys.argv[7]})) |
| |
| elif sys.argv[1] == "pptp": |
| path = manager.ConnectProvider(({ "Type": "pptp", |
| "Name": sys.argv[2], |
| "Host": sys.argv[3], |
| "VPN.Domain": sys.argv[4], |
| "PPTP.User": sys.argv[5], |
| "PPTP.Password": sys.argv[6]})) |
| elif sys.argv[1] == "l2tp": |
| path = manager.ConnectProvider(({ "Type": "l2tp", |
| "Name": sys.argv[2], |
| "Host": sys.argv[3], |
| "VPN.Domain": sys.argv[4], |
| "L2TP.User": sys.argv[5], |
| "L2TP.Password": sys.argv[6]})) |
| |
| else: |
| print "Unknown VPN type" |
| sys.exit(1) |
| |
| print "VPN service path is %s" %(path) |