mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-10-25 19:32:24 +02:00
fix: clean BPF syntax error message and specify loopback interface
- Add -i lo to tshark command to avoid "(null)" interface in errors - Strip "for interface" suffix from error message for cleaner output
This commit is contained in:
parent
ce58e9adc8
commit
045db5bdd8
@ -286,8 +286,9 @@ class GNS3PacketFilterTool(BaseTool):
|
|||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# Use tshark to validate BPF syntax with 1 second timeout
|
# Use tshark to validate BPF syntax with 1 second timeout
|
||||||
|
# Use -i lo (loopback) to avoid "(null)" interface in error messages
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
["tshark", "-f", bpf_expression],
|
["tshark", "-f", bpf_expression, "-i", "lo"],
|
||||||
timeout=1,
|
timeout=1,
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
@ -305,7 +306,13 @@ class GNS3PacketFilterTool(BaseTool):
|
|||||||
line for line in result.stdout.split("\n") if "Invalid" in line
|
line for line in result.stdout.split("\n") if "Invalid" in line
|
||||||
)
|
)
|
||||||
|
|
||||||
error_msg = " ".join(error_lines) if error_lines else "Invalid BPF syntax"
|
# Strip interface suffix (e.g., "for interface 'lo'") for cleaner error
|
||||||
|
error_msg_parts = []
|
||||||
|
for line in error_lines:
|
||||||
|
clean = line.split(" for interface")[0].strip()
|
||||||
|
if clean:
|
||||||
|
error_msg_parts.append(clean)
|
||||||
|
error_msg = " ".join(error_msg_parts) if error_msg_parts else "Invalid BPF syntax"
|
||||||
logger.warning("BPF syntax validation failed: %s", error_msg)
|
logger.warning("BPF syntax validation failed: %s", error_msg)
|
||||||
return {"valid": False, "error": error_msg}
|
return {"valid": False, "error": error_msg}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user