renamed sample plugin to avoid namespace conflict.
This commit is contained in:
parent
0ac157116b
commit
d7a55dd9e6
|
@ -1,4 +1,9 @@
|
||||||
# Lists all the plugins, or jobs, and whether they are enabled or not. Each
|
# Lists all the plugins, or jobs, and whether they are enabled or not. Each
|
||||||
# section name must correspond to a plugin name in the plugins dir.
|
# section name must correspond to a plugin name in the plugins dir.
|
||||||
[logging]
|
[sample_log]
|
||||||
enabled = True
|
enabled = True
|
||||||
|
|
||||||
|
[iptables]
|
||||||
|
enabled = True
|
||||||
|
command_mac = iptables -t mangle -D internet -m mac --mac-source "{mac_address}" -j RETURN
|
||||||
|
command_ip = iptables -t mangle -D internet -m tcp --source "{ip_address}" -j RETURN
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
# Add an iptables rule
|
||||||
|
|
||||||
|
from logging import getLogger, DEBUG, WARN, INFO
|
||||||
|
from portal import logHandler, logFormatter
|
||||||
|
|
||||||
|
# Try to import arping for mac_from_ip(), otherwise use just the client IP.
|
||||||
|
only_ip = False
|
||||||
|
try:
|
||||||
|
from sh import arping
|
||||||
|
except ImportError:
|
||||||
|
only_ip = True
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def run(arg):
|
||||||
|
environ = arg['environ']
|
||||||
|
|
||||||
|
l = getLogger('plugin_logging')
|
||||||
|
l.addHandler(logHandler)
|
||||||
|
l.setLevel(DEBUG)
|
||||||
|
|
||||||
|
client_ip = environ.get('REMOTE_ADDR')
|
||||||
|
if only_ip:
|
||||||
|
if not client_ip:
|
||||||
|
return {
|
||||||
|
'error': 'Unknown client IP',
|
||||||
|
'status': False
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
client_mac = mac_from_ip(client_ip)
|
||||||
|
|
||||||
|
|
||||||
|
# Try to get the mac address from the IP. Requires arping installed.
|
||||||
|
def mac_from_ip(ip):
|
||||||
|
return
|
Loading…
Reference in New Issue