# Release Notes v1.2.0.0 (2026-01-25)

LLMS index: [llms.txt](/v1.2.0.0/llms.txt)

---

## Hinzugefügt

* **NEU**: Mehrzeilige Verarbeitung von Record-Daten für DNS PACKET Detailblöcke
  * PACKET-Kontexteinträge können jetzt detaillierte TCP/UDP-Verbindungsinformationen und DNS-Nachrichtenstruktur enthalten
  * Detailblöcke werden im neuen `Details`-Feld in ein strukturiertes JSON-Format geparst
  * Enthält: Socket-Info, entfernte Adresse/Port, Zeitdaten, Nachrichtenstruktur (XID, Flags, QCOUNT, etc.)
  * DNS-Sektionen (QUESTION, ANSWER, AUTHORITY, ADDITIONAL) werden mit vollständigen Record-Details erfasst
  * Kodierte Domainnamen in Detailblöcken werden automatisch ins FQDN-Format konvertiert
* **NEU**: `Details`-Spalte in der CSV-Ausgabe
  * Enthält strukturierte JSON-Daten für PACKET-Einträge mit Detailblöcken
  * Leer für PACKET-Einträge ohne Details und alle Nicht-PACKET-Kontexte
  * Ermöglicht tiefgehende Paket-Analyse und forensische Untersuchung von DNS-Anfragen/-Antworten
* **NEU**: `NoDetailsParsing`-Schalterparameter zur Performance-Optimierung
  * Überspringt die aufwändige JSON-Analyse der PACKET-Detailblöcke
  * ***Kann die*** Verarbeitungsgeschwindigkeit um **30-50%** bei Logs mit vielen Detailblöcken verbessern
  * Nutze ihn bei sehr großen Dateien (100MB+) und wenn die detaillierte Paketstruktur nicht benötigt wird
  * Detailblöcke werden weiterhin in der Informationsspalte gesammelt, die Details-Spalte bleibt aber leer
* **NEU**: Unterstützung für mehrzeilige Fortsetzungen bei Nicht-PACKET-Kontexten
  * EVENT, Note, DSPoll und andere Kontexte können jetzt über mehrere Zeilen gehen
  * Eingezogene Fortsetzungszeilen werden automatisch an das Informationsfeld des Haupt-Records angehängt
  * Bewahrt vollständige Fehlermeldungen, Zonenuptdates und Diagnoseausgaben
* **NEU**: `ContextFilter` erkennt zusätzliche Kontexttypen: `DSPoll`, `Init`, `Lookup`, `Recurse`, `Remote`, `Tombstone`
  * Wirkung: `Convert-DNSDebugLogFile` kann diese Diagnose- und Lifecycle-Einträge jetzt via `-ContextFilter` ein- oder ausschließen
* **NEU**: Statistik-Ausgabe umfasst jetzt zwei dedizierte Dateien
  * `_Statistic.csv`: Tägliche Record-Anzahlen pro Kontexttyp (Datum, Kontext, Anzahl, ComputerName)
  * `_PacketStatistic.csv`: Tägliche PACKET-Anzahlen nach Client/Protokoll/Richtung/Typ (Datum, ClientIP, Protokoll, Richtung, FrageTyp, Anzahl, ComputerName)
  * Vorteil: Fokusiertere Berichte (betrieblicher Kontextumfang vs. DNS-Verkehrsaufteilung)
* JSON-Erzeugung für PACKET-Detailblöcke ist für Performance optimiert (manuelles Parsen statt Regex)

## Geändert

* **BREAKING**: CSV-Ausgabe enthält jetzt 18 Spalten (hinzugefügt `Details`-Spalte vor `ComputerName`)
  * Neue Spaltenreihenfolge: DateTime, ThreadId, Context, PacketId, Protocol, Direction, ClientIP, Xid, Type, Opcode, FlagsHex, FlagsChar, ResponseCode, QuestionType, QuestionName, Information, **Details**, ComputerName
  * Auswirkung: Skripte, die sich auf Spaltenpositionen verlassen, müssen angepasst werden
  * Vorteil: Umfangreiche Paket-Analysefunktionen ohne Änderung des bisherigen Verhaltens der Informationsspalte
* Datenzeilenverarbeitung wurde umstrukturiert, um alle Zeilen im Speicher zu lesen für effiziente Erkennung mehrzeiliger Records
  * Performance: Minimale Auswirkung dank optimierter List<string>-Nutzung
  * Vorteil: Ermöglicht präzises Lookahead für Detailblöcke und Fortsetzungszeilen
* Fehlende oder als leer kodierte Fragentypen werden jetzt elegant behandelt (keine Parse-Fehler); CSV-Ausgabe enthält dann ein leeres QuestionName-Feld

## Verbessert

* `Convert-DNSDebugLogFile` Parsing ist robuster: Strengere Zeilenvalidierung und verbesserte Extraktion reduzieren fehlerhafte/ungültige Zeilen aus fehlerhaften Logs, während CSV-/Statistikformat erhalten bleibt
* PACKET-Kontext-Erkennung unterscheidet jetzt zwischen einfachen Anfragen und Anfragen mit Detailblöcken
* Leere Zeilen nach PACKET-Einträgen ohne Details werden korrekt übersprungen
* Domainnamen-Dekodierung in Detailblöcken nutzt die bestehende `ConvertTo-Fqdn`-Funktion für Konsistenz

## Performance

* Verarbeitungsgeschwindigkeit bleibt bei Logs ohne Detailblöcke erhalten
* `NoDetailsParsing`-Schalter bietet 30-50% Geschwindigkeitsvorteil, wenn JSON-Parsing nicht nötig ist
* Effizientes Zustandsmanagement bei mehrzeiliger Record-Verarbeitung
* Optimierte String-Operationen (TrimStart, Join) statt Regex für Fortsetzungszeilen

## Hinweise

* Diese Änderungen sind so gestaltet, dass sie abwärtskompatibel für den Normalgebrauch sind. Wenn du dich auf eine exakte Menge von Kontextnamen oder vorher strikt geparstes Verhalten verlässt, überprüfe bitte deine nachgelagerten Skripte
* Die neue `Details`-Spalte ist immer in der CSV-Ausgabe enthalten; nutze `NoDetailsParsing`, um sie leer zu halten und Performance zu gewinnen
* Bestehende Skripte, die CSV nach Spaltenpositionen parsen, müssen die neue `Details`-Spalte (Position 17, vor ComputerName) berücksichtigen
