Make iproute.py work on 3.4 kernels too.
- Unrecognized attributes cause EINVAL.
- Interface names have to be null-terminated.
Change-Id: I6d032f534754465e01042a0c7bbb27ee4fbc2fa3
diff --git a/net/test/iproute.py b/net/test/iproute.py
index 9468ff0..10fa732 100644
--- a/net/test/iproute.py
+++ b/net/test/iproute.py
@@ -322,7 +322,7 @@
return self._Rule(version, is_add, table, nlattr, priority)
def OifRule(self, version, is_add, oif, table, priority=16383):
- nlattr = self._NlAttr(FRA_OIFNAME, oif)
+ nlattr = self._NlAttr(FRA_OIFNAME, oif + "\x00")
return self._Rule(version, is_add, table, nlattr, priority)
def UidRangeRule(self, version, is_add, start, end, table, priority=16383):
@@ -470,4 +470,4 @@
iproute = IPRoute()
iproute.DEBUG = True
iproute.DumpRules(6)
- print iproute.GetRoutes("2001:4860:4860::8888", 0, 0, 0)
+ print iproute.GetRoutes("2001:4860:4860::8888", 0, 0, None)
diff --git a/net/test/mark_test.py b/net/test/mark_test.py
index b2cb96c..46acfb0 100755
--- a/net/test/mark_test.py
+++ b/net/test/mark_test.py
@@ -57,7 +57,10 @@
def HaveUidRouting():
# Create a rule with the UID range selector. If the kernel doesn't understand
# the selector, it will create a rule with no selectors.
- iproute.IPRoute().UidRangeRule(6, True, 1000, 2000, 100)
+ try:
+ iproute.IPRoute().UidRangeRule(6, True, 1000, 2000, 100)
+ except IOError:
+ return False
# Dump all the rules. If we find a rule using the UID range selector, then the
# kernel supports UID range routing.