in client/blocky.py [0:0]
def start_client():
global CONFIG
# Figure out who we are
me = socket.gethostname()
if 'apache.org' not in me:
me += '.apache.org'
# Load YAML
CONFIG = yaml.load(open('./blocky.yaml').read())
if 'client' not in CONFIG:
CONFIG['client'] = {}
if 'hostname' not in CONFIG['client']:
CONFIG['client']['hostname'] = me
# Get current list of bans in iptables, upload it to blocky server
l = getbans()
args = base_parser().parse_args()
# CLI unban?
if args.unban:
ip = args.unban
found = inlist(l, ip) # random test
if found:
entry = found[0] # Only get the first entry, line numbers will then change ;\
print("Found a block for %s on line %s in the %s chain (as %s), removing..." % (ip, entry['linenumber'], entry['chain'], entry['source']))
if unban_line(entry['linenumber']):
print("Refreshing ban list...")
l = getbans()
else:
print("%s wasn't found in iptables, nothing to do" % ip)
return
# CLI ban?
if args.ban:
ip = args.ban
found = inlist(l, ip)
if found:
print("%s is already banned here as %s, nothing to do" % (ip, found[0]['source']))
else:
if ban(ip):
print("IP %s successfully banned using generic ruleset" % ip)
else:
print("Could not ban %s, bummer" % ip)
return
# Daemon stuff?
d = asfpy.daemon(run_daemon)
# Start daemon?
if args.daemonize:
d.start()
# stop daemon?
elif args.stop:
d.stop()
elif args.foreground:
run_daemon(True)