Fix CAST inet + IPv6 cleanup dans resolve_dest_server
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
20cd9c7d80
commit
6834710af6
@ -271,13 +271,20 @@ def _resolve_server_id(db, hostname):
|
|||||||
|
|
||||||
|
|
||||||
def _resolve_dest_server(db, dest_ip):
|
def _resolve_dest_server(db, dest_ip):
|
||||||
row = db.execute(text("""
|
# Nettoyer l'IP (retirer IPv6-mapped prefix, brackets)
|
||||||
SELECT s.id, s.hostname FROM servers s
|
clean_ip = dest_ip.replace("[::ffff:", "").replace("]", "").strip()
|
||||||
JOIN server_ips si ON s.id = si.server_id
|
if not clean_ip or ":" in clean_ip:
|
||||||
WHERE si.ip_address = :ip::inet
|
return (None, None) # IPv6 pure, skip
|
||||||
LIMIT 1
|
try:
|
||||||
"""), {"ip": dest_ip}).fetchone()
|
row = db.execute(text("""
|
||||||
return (row.id, row.hostname) if row else (None, None)
|
SELECT s.id, s.hostname FROM servers s
|
||||||
|
JOIN server_ips si ON s.id = si.server_id
|
||||||
|
WHERE si.ip_address = CAST(:ip AS inet)
|
||||||
|
LIMIT 1
|
||||||
|
"""), {"ip": clean_ip}).fetchone()
|
||||||
|
return (row.id, row.hostname) if row else (None, None)
|
||||||
|
except Exception:
|
||||||
|
return (None, None)
|
||||||
|
|
||||||
|
|
||||||
def save_audit_to_db(db, parsed, raw_output="", status="ok", error_msg=None):
|
def save_audit_to_db(db, parsed, raw_output="", status="ok", error_msg=None):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user