wingo - in flumotion/trunk: . flumotion/common flumotion/test

flumotion-commit at lists.fluendo.com flumotion-commit at lists.fluendo.com
Thu Feb 22 13:11:13 CET 2007


Author: wingo
Date: Thu Feb 22 13:11:10 2007
New Revision: 4512

Modified:
   flumotion/trunk/ChangeLog
   flumotion/trunk/flumotion/common/netutils.py
   flumotion/trunk/flumotion/test/test_common_netutils.py
Log:
2007-02-22  Andy Wingo  <wingo at pobox.com>

	* flumotion/test/test_common_netutils.py
	(TestIpv4Parse.testIpv4ParseString): Test validation.

	* flumotion/common/netutils.py (ipv4StringToInt): Validate the IP.



Modified: flumotion/trunk/ChangeLog
==============================================================================
--- flumotion/trunk/ChangeLog	(original)
+++ flumotion/trunk/ChangeLog	Thu Feb 22 13:11:10 2007
@@ -1,3 +1,10 @@
+2007-02-22  Andy Wingo  <wingo at pobox.com>
+
+	* flumotion/test/test_common_netutils.py
+	(TestIpv4Parse.testIpv4ParseString): Test validation.
+
+	* flumotion/common/netutils.py (ipv4StringToInt): Validate the IP.
+
 2007-02-22  Zaheer Abbas Merali  <zaheerabbas at merali dot org>
 
 	* flumotion/component/feedcomponent010.py:

Modified: flumotion/trunk/flumotion/common/netutils.py
==============================================================================
--- flumotion/trunk/flumotion/common/netutils.py	(original)
+++ flumotion/trunk/flumotion/common/netutils.py	Thu Feb 22 13:11:10 2007
@@ -93,9 +93,16 @@
         return ip
 
 def ipv4StringToInt(s):
+    try:
+        b1, b2, b3, b4 = map(int, s.split('.'))
+    except TypeError:
+        raise ValueError(s)
+
     ret = 0
-    for n in map(int, s.split('.')):
+    for n in b1, b2, b3, b4:
         ret <<= 8
+        if n < 0 or n > 255:
+            raise ValueError(s)
         ret += n
     return ret
 

Modified: flumotion/trunk/flumotion/test/test_common_netutils.py
==============================================================================
--- flumotion/trunk/flumotion/test/test_common_netutils.py	(original)
+++ flumotion/trunk/flumotion/test/test_common_netutils.py	Thu Feb 22 13:11:10 2007
@@ -33,6 +33,9 @@
         self.assertEquals(ipv4IntToString(ipv4StringToInt(ipv4String)),
                           ipv4String)
 
+    def assertParseFails(self, ipv4String):
+        self.assertRaises(ValueError, ipv4StringToInt, ipv4String)
+
     def testIpv4Parse(self):
         self.assertParseInvariant('0.0.0.1')
         self.assertParseInvariant('0.0.1.0')
@@ -49,6 +52,11 @@
         self.assertEquals(ipv4StringToInt('0.1.0.0'), 1<<16)
         self.assertEquals(ipv4StringToInt('1.0.0.0'), 1<<24)
 
+        self.assertParseFails('1.1.1.1.1')
+        self.assertParseFails('1.1.1')
+        self.assertParseFails('1.1.1.256')
+        self.assertParseFails('1.1.1.-3')
+
 class TestRoutingTable(unittest.TestCase):
     def testAddRemove(self):
         net = RoutingTable()


More information about the flumotion-commit mailing list