From 4ac7d4ec350e0f56d39c72c8aa33894ff28d3fb0 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Tue, 24 Feb 2015 15:24:17 +0100 Subject: [PATCH] add replacement for pfSctl --- src/opnsense/service/configd_ctl.py | 70 +++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100755 src/opnsense/service/configd_ctl.py diff --git a/src/opnsense/service/configd_ctl.py b/src/opnsense/service/configd_ctl.py new file mode 100755 index 000000000..be6c4d664 --- /dev/null +++ b/src/opnsense/service/configd_ctl.py @@ -0,0 +1,70 @@ +#!/usr/local/bin/python2.7 +""" + Copyright (c) 2015 Ad Schellevis + + part of OPNsense (https://www.opnsense.org/) + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + + -------------------------------------------------------------------------------------- + package : configd + function: commandline tool to send commands to configd (response to stdout) + + +""" +import socket +import sys + +__author__ = 'Ad Schellevis' + +configd_socket_name = 'testing/configd.socket' + + + +if len(sys.argv) <= 1: + print 'usage : %s '%sys.argv[0] + sys.exit(0) +else: + for exec_command in sys.argv[1:]: + # Create and open unix domain socket + sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + sock.connect(configd_socket_name) + try: + sock.send(exec_command) + data = [] + while True: + line = sock.recv(4096) + if line: + data.append(line) + else: + break + print (''.join(data)) + finally: + sock.close() + + + + + +