publish prod version with capture

This commit is contained in:
2025-08-13 16:07:32 -03:00
parent 4c76405549
commit 3e34d0f310
4 changed files with 18 additions and 6 deletions

View File

@@ -1,2 +1,2 @@
__version__ = "4.2b1" __version__ = "4.2"

View File

@@ -65,7 +65,7 @@ class ai:
try: try:
self.model = self.config.config["openai"]["model"] self.model = self.config.config["openai"]["model"]
except: except:
self.model = "o4-mini" self.model = "gpt-5-nano"
self.__prompt = {} self.__prompt = {}
self.__prompt["original_system"] = """ self.__prompt["original_system"] = """
You are the AI chatbot and assistant of a network connection manager and automation app called connpy. When provided with user input analyze the input and extract the following information. If user wants to chat just reply and don't call a function: You are the AI chatbot and assistant of a network connection manager and automation app called connpy. When provided with user input analyze the input and extract the following information. If user wants to chat just reply and don't call a function:

View File

@@ -42,6 +42,7 @@ class RemoteCapture:
self.wireshark_path = connapp.config.config.get("wireshark_path") self.wireshark_path = connapp.config.config.get("wireshark_path")
def _start_local_listener(self, port, ws_proc=None): def _start_local_listener(self, port, ws_proc=None):
self.fake_connection = False
self.listener_active = True self.listener_active = True
self.listener_conn = None self.listener_conn = None
self.listener_connected = threading.Event() self.listener_connected = threading.Event()
@@ -55,7 +56,8 @@ class RemoteCapture:
conn, addr = s.accept() conn, addr = s.accept()
self.listener_conn = conn self.listener_conn = conn
printer.start(f"Connection from {addr}") if not self.fake_connection:
printer.start(f"Connection from {addr}")
self.listener_connected.set() self.listener_connected.set()
try: try:
@@ -131,7 +133,7 @@ class RemoteCapture:
try: try:
self.node.child.sendline(cmd) self.node.child.sendline(cmd)
start_time = time.time() start_time = time.time()
while time.time() - start_time < 5: while time.time() - start_time < 3:
try: try:
index = self.node.child.expect([ index = self.node.child.expect([
r'listening on', r'listening on',
@@ -193,6 +195,8 @@ class RemoteCapture:
r'Unable', r'Unable',
r'No such', r'No such',
r'illegal', r'illegal',
r'not found',
r'non-ether',
r'syntax error' r'syntax error'
], timeout=5) ], timeout=5)
@@ -215,7 +219,7 @@ class RemoteCapture:
return f"{error}" return f"{error}"
else: else:
before_last_line = self.node.child.before.decode().splitlines()[-1] before_last_line = self.node.child.before.decode().splitlines()[-1]
error = f"Tcpdump error detected:" \ error = f"Tcpdump error detected: " \
f"{before_last_line}{self.node.child.after.decode()}{self.node.child.readline().decode()}".rstrip() f"{before_last_line}{self.node.child.after.decode()}{self.node.child.readline().decode()}".rstrip()
return f"{error}" return f"{error}"
@@ -225,6 +229,7 @@ class RemoteCapture:
return False return False
def _build_tcpdump_command(self): def _build_tcpdump_command(self):
base = f"tcpdump -i {self.interface}" base = f"tcpdump -i {self.interface}"
if self.use_wireshark: if self.use_wireshark:
@@ -297,6 +302,13 @@ class RemoteCapture:
printer.error(f"{result}") printer.error(f"{result}")
else: else:
printer.error("Listener connection failed after all retries.") printer.error("Listener connection failed after all retries.")
printer.debug(f"Command used:\n{tcpdump_cmd}")
if not self.listener_conn:
try:
self.fake_connection = True
socket.create_connection(("localhost", self.local_port), timeout=1).close()
except:
pass
self.listener_active = False self.listener_active = False
return return

View File

@@ -868,7 +868,7 @@ class ai:
try: try:
self.model = self.config.config[&#34;openai&#34;][&#34;model&#34;] self.model = self.config.config[&#34;openai&#34;][&#34;model&#34;]
except: except:
self.model = &#34;o4-mini&#34; self.model = &#34;gpt-5-nano&#34;
self.__prompt = {} self.__prompt = {}
self.__prompt[&#34;original_system&#34;] = &#34;&#34;&#34; self.__prompt[&#34;original_system&#34;] = &#34;&#34;&#34;
You are the AI chatbot and assistant of a network connection manager and automation app called connpy. When provided with user input analyze the input and extract the following information. If user wants to chat just reply and don&#39;t call a function: You are the AI chatbot and assistant of a network connection manager and automation app called connpy. When provided with user input analyze the input and extract the following information. If user wants to chat just reply and don&#39;t call a function: