mirror of
https://codeberg.org/prof_x_pvt_ltd/captive.whump.shanti-portal
synced 2024-08-14 22:46:42 +00:00
renamed sample plugin to avoid namespace conflict.
This commit is contained in:
parent
0ac157116b
commit
d7a55dd9e6
4 changed files with 41 additions and 1 deletions
|
@ -1,4 +1,9 @@
|
|||
# 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.
|
||||
[logging]
|
||||
[sample_log]
|
||||
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
plugins/__init__.py
Normal file
0
plugins/__init__.py
Normal file
35
plugins/iptables.py
Normal file
35
plugins/iptables.py
Normal file
|
@ -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 a new issue