This allows a sites file to specify that a site is mobile; the mobile
flag gets propagated into the generated sites.conf.
Includes new support for boolean values.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
import sys
import os
import getopt
import sys
import os
import getopt
# The ipaddr library is installed as part of secnet
sys.path.append("/usr/local/share/secnet")
# The ipaddr library is installed as part of secnet
sys.path.append("/usr/local/share/secnet")
def __str__(self):
return '<%s>'%(self.addr)
def __str__(self):
return '<%s>'%(self.addr)
+class boolean:
+ "A boolean"
+ def __init__(self,w):
+ if re.match('[TtYy1]',w[1]):
+ self.b=True
+ elif re.match('[FfNn0]',w[1]):
+ self.b=False
+ else:
+ complain("invalid boolean value");
+ def __str__(self):
+ return ['False','True'][self.b]
+
class num:
"A decimal number"
def __init__(self,w):
class num:
"A decimal number"
def __init__(self,w):
'pubkey':(rsakey,"RSA public site key"),
'peer':(single_ipaddr,"Tunnel peer IP address"),
'address':(address,"External contact address and port"),
'pubkey':(rsakey,"RSA public site key"),
'peer':(single_ipaddr,"Tunnel peer IP address"),
'address':(address,"External contact address and port"),
+ 'mobile':(boolean,"Site is mobile"),
'networks':None,
'peer':None,
'pubkey':(lambda n,v:"key %s;\n"%v),
'networks':None,
'peer':None,
'pubkey':(lambda n,v:"key %s;\n"%v),
})
require_properties={
'dh':"Diffie-Hellman group",
})
require_properties={
'dh':"Diffie-Hellman group",