infa735-drawbridge/drawbridge/__init__.py
2023-12-04 14:09:05 -08:00

40 lines
796 B
Python

import os
import iptc
from .drawbridge import DrawBridge
from .net_queue import NetQueue
def is_root():
return os.geteuid() == 0
def check_nfqueue():
try:
import nfqueue
return True
except ImportError:
return False
def check_iptables():
try:
iptc.Table(iptc.Table.FILTER)
return True
except iptc.ip4tc.IPTCError:
return False
def check_requirements():
if not is_root():
raise RuntimeError("Must be run as root")
if not check_nfqueue():
raise RuntimeError("nfqueue is not installed or is not supported on your platform")
if not check_iptables():
raise RuntimeError("iptables not installed or is not supported on your platform")
if __name__ == "__main__":
check_requirements()