diff options
Diffstat (limited to 'source4/scripting/python')
| -rw-r--r-- | source4/scripting/python/samba/provision.py | 17 | 
1 files changed, 11 insertions, 6 deletions
| diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py index 49ad5d755d..319b63debb 100644 --- a/source4/scripting/python/samba/provision.py +++ b/source4/scripting/python/samba/provision.py @@ -61,6 +61,7 @@ import samba.registry  from samba.schema import Schema  from samba.samdb import SamDB +VALID_NETBIOS_CHARS = " !#$%&'()-.@^_{}~"  __docformat__ = "restructuredText"  DEFAULT_POLICY_GUID = "31B2F340-016D-11D2-945F-00C04FB984F9"  DEFAULT_DC_POLICY_GUID = "6AC1786C-016F-11D2-945F-00C04fB984F9" @@ -444,10 +445,12 @@ def guess_names(lp=None, hostname=None, domain=None, dnsdomain=None,      if netbiosname is None:          netbiosname = hostname          # remove forbidden chars -        for char in  " !#$%&'()-.@^_{}~": -            netbiosname = "".join(netbiosname.split(char)) +        newnbname = "" +        for x in netbiosname: +            if x.isalnum() or x in VALID_NETBIOS_CHARS: +                newnbname = "%s%c" % (newnbname, x)          #force the length to be <16 -        netbiosname = netbiosname[0:15] +        netbiosname = newnbname[0:15]      assert netbiosname is not None      netbiosname = netbiosname.upper()      if not valid_netbios_name(netbiosname): @@ -541,10 +544,12 @@ def make_smbconf(smbconf, setup_path, hostname, domain, realm, serverrole,          hostname = socket.gethostname().split(".")[0]          netbiosname = hostname.upper()          # remove forbidden chars -        for char in  " !#$%&'()-.@^_{}~": -            netbiosname = "".join(netbiosname.split(char)) +        newnbname = "" +        for x in netbiosname: +            if x.isalnum() or x in VALID_NETBIOS_CHARS: +                newnbname = "%s%c" % (newnbname, x)          #force the length to be <16 -        netbiosname = netbiosname[0:15] +        netbiosname = newnbname[0:15]      else:          netbiosname = hostname.upper() | 
