Handle pfctl_cfg_write output as expected

This commit is contained in:
Ruben van Staveren 2022-03-10 23:29:14 +01:00
parent c33e63978e
commit af1fef189c
Signed by: ruben
GPG Key ID: 886F6BECD477A93F
3 changed files with 8 additions and 9 deletions

View File

@ -54,7 +54,7 @@ def create_app():
return jsonify({'anchor': f'f2b-jail/{remote_user}',
'table': f'f2b-{name}',
'operation': 'flush',
'result': res})
'result': [x.decode('ascii') for x in res]})
@app.route("/register", methods=['PUT', 'DELETE'])
@auth.login_required
@ -88,12 +88,11 @@ def create_app():
table=f'f2b-{name}',
operation='kill')
app.logger.info(f'pfctl -a f2b-jail/{remote_user} -f-')
return jsonify({'remote_user': remote_user, 'data': data})
return jsonify({'anchor': f'f2b-jail/{remote_user}',
'table': f'f2b-{name}',
'action': 'start' if request.method == 'PUT'
else 'stop',
'result': res})
'result': [x.decode('ascii') for x in res]})
@app.route("/ban", methods=['PUT', 'DELETE'])
@auth.login_required

View File

@ -29,7 +29,7 @@ def pfctl_cfg_write(anchor, cfg):
if res:
logging.info('Result: %s', res)
res.check_returncode()
return res
return res.stdout.splitlines()
def pfctl_table_op(anchor, **kwargs):

View File

@ -1,5 +1,5 @@
import base64
from types import SimpleNamespace
from subprocess import CompletedProcess
pfctl_stdout_lines = b'''
block drop quick proto tcp from <f2b-sendmail-auth> to any port = submission
@ -22,7 +22,7 @@ def test_register_unauth(client):
def test_register_valid(client, mocker):
def noop():
pass
run_res = SimpleNamespace()
run_res = CompletedProcess(args=['true'], returncode=0)
run_res.stdout = pfctl_stdout_lines
run_res.check_returncode = noop
@ -37,13 +37,13 @@ def test_register_valid(client, mocker):
json=json_payload,
headers={"Authorization": "Basic " + valid_credentials})
assert response.json['action'] == 'delete'
assert response.json['action'] == 'stop'
def test_unregister_valid(client, mocker):
def noop():
pass
run_res = SimpleNamespace()
run_res = CompletedProcess(args=['true'], returncode=0)
run_res.stdout = pfctl_stdout_lines
run_res.check_returncode = noop
@ -64,7 +64,7 @@ def test_unregister_valid(client, mocker):
def test_register_invalid(client, mocker):
def noop():
pass
run_res = SimpleNamespace()
run_res = CompletedProcess(args=['true'], returncode=0)
run_res.stdout = pfctl_stdout_lines
run_res.check_returncode = noop