aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/scripts/pyroute2/proxy.py
diff options
context:
space:
mode:
Diffstat (limited to 'node-admin/scripts/pyroute2/proxy.py')
-rw-r--r--node-admin/scripts/pyroute2/proxy.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/node-admin/scripts/pyroute2/proxy.py b/node-admin/scripts/pyroute2/proxy.py
deleted file mode 100644
index bfdab39907d..00000000000
--- a/node-admin/scripts/pyroute2/proxy.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# By Peter V. Saveliev https://pypi.python.org/pypi/pyroute2. Dual licensed under the Apache 2 and GPLv2+ see https://github.com/svinota/pyroute2 for License details.
-'''
-Netlink proxy engine
-'''
-import errno
-import struct
-import logging
-import traceback
-import threading
-
-
-class NetlinkProxy(object):
- '''
- Proxy schemes::
-
- User -> NetlinkProxy -> Kernel
- |
- <---------+
-
- User <- NetlinkProxy <- Kernel
-
- '''
-
- def __init__(self, policy='forward', nl=None, lock=None):
- self.nl = nl
- self.lock = lock or threading.Lock()
- self.pmap = {}
- self.policy = policy
-
- def handle(self, data):
- #
- # match the packet
- #
- ptype = struct.unpack('H', data[4:6])[0]
- plugin = self.pmap.get(ptype, None)
- if plugin is not None:
- with self.lock:
- try:
- ret = plugin(data, self.nl)
- if ret is None:
- msg = struct.pack('IHH', 40, 2, 0)
- msg += data[8:16]
- msg += struct.pack('I', 0)
- # nlmsgerr struct alignment
- msg += b'\0' * 20
- return {'verdict': self.policy,
- 'data': msg}
- else:
- return ret
-
- except Exception as e:
- logging.error(traceback.format_exc())
- # errmsg
- if isinstance(e, (OSError, IOError)):
- code = e.errno
- else:
- code = errno.ECOMM
- msg = struct.pack('HH', 2, 0)
- msg += data[8:16]
- msg += struct.pack('I', code)
- msg += data
- msg = struct.pack('I', len(msg) + 4) + msg
- return {'verdict': 'error',
- 'data': msg}
- return None