summaryrefslogtreecommitdiff
path: root/source4/scripting
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-04-05 23:17:43 +0200
committerJelmer Vernooij <jelmer@samba.org>2009-04-06 00:25:03 +0200
commitb1db78c595ca7b171eeb141428e963431163cddb (patch)
treeafba1d99422d232848f62b77b340ae1f189e48d3 /source4/scripting
parent15f6d5e805490b35ed390f731944bc4ac4e3327b (diff)
downloadsamba-b1db78c595ca7b171eeb141428e963431163cddb.tar.gz
samba-b1db78c595ca7b171eeb141428e963431163cddb.tar.bz2
samba-b1db78c595ca7b171eeb141428e963431163cddb.zip
Make valid_netbios_name() check a bit stricter.
Diffstat (limited to 'source4/scripting')
-rw-r--r--source4/scripting/python/samba/__init__.py6
-rw-r--r--source4/scripting/python/samba/tests/__init__.py12
2 files changed, 16 insertions, 2 deletions
diff --git a/source4/scripting/python/samba/__init__.py b/source4/scripting/python/samba/__init__.py
index c5827b96e0..3ecb758595 100644
--- a/source4/scripting/python/samba/__init__.py
+++ b/source4/scripting/python/samba/__init__.py
@@ -233,10 +233,12 @@ def check_all_substituted(text):
def valid_netbios_name(name):
"""Check whether a name is valid as a NetBIOS name. """
- # FIXME: There are probably more constraints here.
- # crh has a paragraph on this in his book (1.4.1.1)
+ # See crh's book (1.4.1.1)
if len(name) > 15:
return False
+ for x in name:
+ if not x.isalnum() and not x in " !#$%&'()-.@^_{}~":
+ return False
return True
version = glue.version
diff --git a/source4/scripting/python/samba/tests/__init__.py b/source4/scripting/python/samba/tests/__init__.py
index b342b93c49..524c3a3b91 100644
--- a/source4/scripting/python/samba/tests/__init__.py
+++ b/source4/scripting/python/samba/tests/__init__.py
@@ -96,3 +96,15 @@ class RpcInterfaceTestCase(unittest.TestCase):
def get_credentials(self):
return cmdline_credentials
+
+
+class ValidNetbiosNameTests(unittest.TestCase):
+
+ def test_valid(self):
+ self.assertTrue(valid_netbios_name("FOO"))
+
+ def test_too_long(self):
+ self.assertFalse(valid_netbios_name("FOO"*10))
+
+ def test_invalid_characters(self):
+ self.assertFalse(valid_netbios_name("()BLA"))