mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00:00
Fixin comms
This commit is contained in:
+21
-12
@@ -1,6 +1,7 @@
|
||||
import logging
|
||||
import threading
|
||||
import json
|
||||
import time
|
||||
from queue import Queue, Empty
|
||||
from flask import Flask, jsonify, request
|
||||
from waitress import serve
|
||||
@@ -9,7 +10,8 @@ HOST_ADDRESS = "192.168.1.191"
|
||||
PORT_ADDRESS = 5000
|
||||
OUT_COMM_Q = Queue()
|
||||
IN_COMM_Q = Queue()
|
||||
internal_q = Queue()
|
||||
awaiting_q = []
|
||||
incoming_q = Queue()
|
||||
app = Flask(__name__)
|
||||
|
||||
@app.route("/conjurer", methods=["POST"])
|
||||
@@ -18,16 +20,7 @@ def answer_external_command():
|
||||
record = json.loads(request.data)
|
||||
app.logger.info(record)
|
||||
app.logger.info("DATA RECEIVED")
|
||||
while True:
|
||||
try:
|
||||
q_data = internal_q.get(block=False)
|
||||
except Empty:
|
||||
break
|
||||
if q_data.uuid in record:
|
||||
q_data.stop = True
|
||||
q_data.entries = record
|
||||
IN_COMM_Q.put(q_data)
|
||||
|
||||
incoming_q.put(record)
|
||||
return jsonify("SUCCESS")
|
||||
|
||||
@app.route("/conjurer", methods=["GET"])
|
||||
@@ -56,7 +49,21 @@ def scan_queue(_logger):
|
||||
while True:
|
||||
data = OUT_COMM_Q.get()
|
||||
_logger.info(data)
|
||||
internal_q.put(data)
|
||||
awaiting_q.append(data)
|
||||
|
||||
def scan_incoming(_logger):
|
||||
while True:
|
||||
try:
|
||||
app.logger.info("DATA FOUND")
|
||||
answer = incoming_q.get(block=False)
|
||||
for record in awaiting_q:
|
||||
if record.uuid in answer.keys():
|
||||
record.stop = True
|
||||
record.entries = answer[record.uuid]
|
||||
IN_COMM_Q.put(request)
|
||||
except Empty:
|
||||
time.sleep(1)
|
||||
break
|
||||
|
||||
def comm_subroutine(logger):
|
||||
#logger.setLevel(logging.DEBUG)
|
||||
@@ -65,6 +72,8 @@ def comm_subroutine(logger):
|
||||
threads.append(threading.Thread(target=flask_debug, args=(logger,)))
|
||||
#threads.append(threading.Thread(target=waitress_run, args=(logger,)))
|
||||
threads.append(threading.Thread(target=scan_queue,args=(logger,)))
|
||||
threads.append(threading.Thread(target=scan_incoming,args=(logger,)))
|
||||
|
||||
|
||||
for worker in threads:
|
||||
worker.start()
|
||||
|
||||
Reference in New Issue
Block a user