summaryrefslogtreecommitdiff
path: root/lib/speedway.py
diff options
context:
space:
mode:
authorJohan Lundberg <lundberg@nordu.net>2015-04-02 10:43:33 +0200
committerJohan Lundberg <lundberg@nordu.net>2015-04-02 10:43:33 +0200
commitbd611ac59f7c4db885a2f8631ef0bcdcd1901ca0 (patch)
treee60f5333a7699cd021b33c7f5292af55b774001b /lib/speedway.py
Diffstat (limited to 'lib/speedway.py')
-rwxr-xr-xlib/speedway.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/speedway.py b/lib/speedway.py
new file mode 100755
index 0000000..233bbe0
--- /dev/null
+++ b/lib/speedway.py
@@ -0,0 +1,50 @@
+#!/usr/bin/python2.4
+#
+# Copyright 2011 Google Inc. All Rights Reserved.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+"""Speedway iptables generator.
+
+ This is a subclass of Iptables library. The primary difference is
+ that this library produced 'iptable-restore' compatible output."""
+
+__author__ = 'watson@google.com (Tony Watson)'
+
+from string import Template
+import iptables
+
+
+class Error(Exception):
+ pass
+
+
+class Term(iptables.Term):
+ """Generate Iptables policy terms."""
+ _PLATFORM = 'speedway'
+ _PREJUMP_FORMAT = None
+ _POSTJUMP_FORMAT = Template('-A $filter -j $term')
+
+
+class Speedway(iptables.Iptables):
+ """Generates filters and terms from provided policy object."""
+
+ _PLATFORM = 'speedway'
+ _DEFAULT_PROTOCOL = 'all'
+ _SUFFIX = '.ipt'
+
+ _RENDER_PREFIX = '*filter'
+ _RENDER_SUFFIX = 'COMMIT'
+ _DEFAULTACTION_FORMAT = ':%s %s'
+
+ _TERM = Term