# Note di rilascio v1.2.0.0 (2026-01-25)

LLMS index: [llms.txt](/v1.2.0.0/llms.txt)

---

## Aggiunte

* **NUOVO**: Elaborazione di record multi-linea per i blocchi di dettaglio PACKET DNS
  * Le voci di contesto PACKET possono ora includere informazioni dettagliate sulla connessione TCP/UDP e sulla struttura del messaggio DNS
  * I blocchi di dettaglio vengono analizzati in formato JSON strutturato nella nuova colonna `Details`
  * Include: informazioni sul socket, indirizzo/porta remota, dati temporali, struttura del messaggio (XID, Flags, QCOUNT, ecc.)
  * Le sezioni DNS (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) sono catturate con tutti i dettagli del record
  * I nomi di dominio codificati nei blocchi di dettaglio vengono automaticamente convertiti in formato FQDN
* **NUOVO**: colonna `Details` nell’output CSV
  * Contiene dati JSON strutturati per le voci PACKET con blocchi di dettaglio
  * Vuota per le voci PACKET senza dettagli e per tutti i contesti non-PACKET
  * Permette un’analisi approfondita dei pacchetti e indagini forensi su query/risposte DNS
* **NUOVO**: parametro switch `NoDetailsParsing` per ottimizzazione delle prestazioni
  * Salta l’analisi JSON costosa dei blocchi di dettaglio PACKET
  * ***Può migliorare*** la velocità di elaborazione del **30-50%** per log con molti blocchi di dettaglio
  * Da usare quando si elaborano file molto grandi (oltre 100MB) e non serve la struttura dettagliata dei pacchetti
  * I blocchi di dettaglio vengono comunque raccolti nella colonna Information, ma la colonna Details resta vuota
* **NUOVO**: supporto per continuazione multi-linea anche per contesti non-PACKET
  * EVENT, Note, DSPoll e altri contesti possono ora estendersi su più righe
  * Le righe di continuazione indentate vengono automaticamente unite al campo Information del record principale
  * Conserva messaggi di errore completi, aggiornamenti di zona e output diagnostici
* **NUOVO**: `ContextFilter` riconosce tipi di contesto aggiuntivi: `DSPoll`, `Init`, `Lookup`, `Recurse`, `Remote`, `Tombstone`
  * Effetto: `Convert-DNSDebugLogFile` può ora includere/escludere queste voci diagnostiche e di ciclo di vita tramite `-ContextFilter`
* **NUOVO**: output delle statistiche ora include due file dedicati
  * `_Statistic.csv`: conteggi giornalieri dei record per tipo di contesto (Date, Context, Count, ComputerName)
  * `_PacketStatistic.csv`: conteggi giornalieri PACKET per client/protocollo/direzione/tipo (Date, ClientIP, Protocol, Direction, QuestionType, Count, ComputerName)
  * Vantaggio: report più mirati (volume contesto operativo vs. suddivisione traffico DNS)
* Generazione JSON per i blocchi di dettaglio PACKET ottimizzata per prestazioni (analisi manuale invece di regex)

## Modifiche

* **BREAKING**: l’output CSV ora include 18 colonne (aggiunta colonna `Details` prima di `ComputerName`)
  * Nuovo ordine colonne: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, **Details**, ComputerName
  * Impatto: gli script che si basano sulle posizioni delle colonne devono essere aggiornati
  * Vantaggio: capacità avanzate di analisi pacchetti senza modificare il comportamento della colonna Information esistente
* Elaborazione delle righe dati rifattorizzata per leggere tutte le righe in memoria e rilevare efficientemente record multi-linea
  * Prestazioni: impatto minimo grazie all’uso ottimizzato di List<string>
  * Vantaggio: consente un lookahead accurato per blocchi di dettaglio e righe di continuazione
* I nomi delle query mancanti o codificati come vuoti ora vengono gestiti senza errori di parsing; l’output CSV conterrà un campo QuestionName vuoto se assente

## Miglioramenti

* Parsing di `Convert-DNSDebugLogFile` più robusto: validazione più rigorosa delle righe ed estrazione migliorata riducono righe spurie/invalide da log malformati mantenendo il formato CSV/statistiche
* Rilevamento del contesto PACKET distingue tra query semplici e query con blocchi di dettaglio
* Le righe vuote dopo voci PACKET senza dettagli vengono saltate correttamente
* La decodifica dei nomi di dominio nei blocchi di dettaglio usa la funzione esistente `ConvertTo-Fqdn` per coerenza

## Prestazioni

* Velocità di elaborazione mantenuta per log senza blocchi di dettaglio
* Lo switch `NoDetailsParsing` offre un miglioramento di velocità del 30-50% quando non serve il parsing JSON
* Gestione efficiente dello stato durante l’elaborazione dei record multi-linea
* Operazioni su stringhe ottimizzate (TrimStart, Join) invece di regex per la gestione delle righe di continuazione

## Note

* Queste modifiche sono progettate per essere retrocompatibili per un uso normale. Se ti basi su un set esatto di nomi di contesto o su un comportamento di parsing precedentemente rigoroso, verifica gli script a valle
* La nuova colonna `Details` è sempre presente nell’output CSV; usa `NoDetailsParsing` per mantenerla vuota per prestazioni
* Gli script esistenti che analizzano il CSV per posizione colonna devono considerare la nuova colonna `Details` (posizione 17, prima di ComputerName)
