release: version 1.1.2 - Add error callback mechanism and comprehensive test suite
Some checks failed
Build RPM Package / Build RPM Packages (CentOS 7, Rocky 8/9/10) (push) Has been cancelled
Some checks failed
Build RPM Package / Build RPM Packages (CentOS 7, Rocky 8/9/10) (push) Has been cancelled
Features: - Add ErrorCallback type for UNIX socket connection error reporting - Add WithErrorCallback option for UnixSocketWriter configuration - Add BuilderImpl.WithErrorCallback() for propagating callbacks - Add consecutive failure tracking in processQueue Testing (50+ new tests): - Add integration tests for full pipeline (capture → tlsparse → fingerprint → output) - Add tests for FileWriter.rotate() and Reopen() log rotation - Add tests for cleanupExpiredFlows() and cleanupLoop() in TLS parser - Add tests for extractSNIFromPayload() and extractJA4Hash() helpers - Add tests for config load error paths (invalid YAML, permission denied) - Add tests for capture.Run() error conditions - Add tests for signal handling documentation Documentation: - Update architecture.yml with new fields (LogLevel, TLSClientHello extensions) - Update architecture.yml with Close() methods for Capture and Parser interfaces - Update RPM spec changelog Cleanup: - Remove empty internal/api/ directory Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
@ -157,6 +157,7 @@ api:
|
||||
- { name: BPFFilter, type: "string", description: "Filtre BPF optionnel pour la capture." }
|
||||
- { name: FlowTimeoutSec, type: "int", description: "Timeout en secondes pour l'extraction du handshake TLS (défaut: 30)." }
|
||||
- { name: PacketBufferSize,type: "int", description: "Taille du buffer du canal de paquets (défaut: 1000). Pour les environnements à fort trafic." }
|
||||
- { name: LogLevel, type: "string", description: "Niveau de log : debug, info, warn, error (défaut: info). Extension pour configuration runtime." }
|
||||
|
||||
- name: "api.IPMeta"
|
||||
description: "Métadonnées IP pour fingerprinting de stack."
|
||||
@ -181,7 +182,7 @@ api:
|
||||
- { name: Timestamp, type: "int64", description: "Timestamp (nanos / epoch) de capture." }
|
||||
|
||||
- name: "api.TLSClientHello"
|
||||
description: "Représentation d’un ClientHello TLS client, avec meta IP/TCP."
|
||||
description: "Représentation d'un ClientHello TLS client, avec meta IP/TCP."
|
||||
fields:
|
||||
- { name: SrcIP, type: "string", description: "Adresse IP source (client)." }
|
||||
- { name: SrcPort, type: "uint16", description: "Port source (client)." }
|
||||
@ -190,6 +191,11 @@ api:
|
||||
- { name: Payload, type: "[]byte", description: "Bytes correspondant au ClientHello TLS." }
|
||||
- { name: IPMeta, type: "api.IPMeta", description: "Métadonnées IP observées côté client." }
|
||||
- { name: TCPMeta, type: "api.TCPMeta", description: "Métadonnées TCP observées côté client." }
|
||||
- { name: ConnID, type: "string", description: "Identifiant unique du flux TCP (extension pour corrélation)." }
|
||||
- { name: SNI, type: "string", description: "Server Name Indication extrait du ClientHello (extension)." }
|
||||
- { name: ALPN, type: "string", description: "ALPN protocols négociés (extension)." }
|
||||
- { name: TLSVersion,type: "string", description: "Version TLS maximale annoncée (extension)." }
|
||||
- { name: SynToCHMs,type: "*uint32", description: "Temps SYN->ClientHello en ms (extension pour détection comportementale)." }
|
||||
|
||||
- name: "api.Fingerprints"
|
||||
description: "Empreintes TLS pour un flux client."
|
||||
@ -279,6 +285,12 @@ api:
|
||||
notes:
|
||||
- "Doit respecter les filtres (ports, BPF) définis dans la configuration."
|
||||
- "Ne connaît pas le format TLS ni JA4."
|
||||
- name: "Close"
|
||||
params: []
|
||||
returns:
|
||||
- { type: "error" }
|
||||
notes:
|
||||
- "Libère les ressources (handle pcap, etc.). Doit être appelé après Run()."
|
||||
|
||||
- name: "tlsparse.Parser"
|
||||
description: "Transforme des RawPacket en TLSClientHello (côté client uniquement)."
|
||||
@ -292,7 +304,13 @@ api:
|
||||
- { type: "error" }
|
||||
notes:
|
||||
- "Retourne nil si le paquet ne contient pas (ou plus) de ClientHello."
|
||||
- "Pour chaque flux, s’arrête une fois le ClientHello complet obtenu."
|
||||
- "Pour chaque flux, s'arrête une fois le ClientHello complet obtenu."
|
||||
- name: "Close"
|
||||
params: []
|
||||
returns:
|
||||
- { type: "error" }
|
||||
notes:
|
||||
- "Arrête les goroutines en arrière-plan et nettoie les états de flux."
|
||||
|
||||
- name: "fingerprint.Engine"
|
||||
description: "Génère les empreintes JA4 (et JA3 éventuellement) à partir d’un ClientHello."
|
||||
|
||||
Reference in New Issue
Block a user