Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: reassemble QUIC ClientHello fragmented into multiple Initial pa…
…ckets (#21) * deps: update dependencies - Use refraction-networking/utls/dicttls Replace deprecated gaukas/godicttls - Bump upgradable direct dependencies to the latest version available - Bump minimum Go version to 1.21 Signed-off-by: Gaukas Wang <i@gaukas.wang> * feat: cross-packet CRYPTO reassembly Refactor the structure to better reflect the QUIC fingerprinting infrastructure. Add support for CRYPTO frames carried in more than one packets. Signed-off-by: Gaukas Wang <i@gaukas.wang> * update: complete test suites and minor adjustment Signed-off-by: Gaukas Wang <i@gaukas.wang> * style: format code with Gofumpt This commit fixes the style issues introduced in 6e234a2 according to the output from Gofumpt. Details: #21 * fix: ignore GO-W1029 Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: check result before returning Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: cancel the unexpired context properly Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: rename test function to reduce ambiguity Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: eliminate meaningless function duplication Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: ignore unsafe rand source for internal test Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: deepsource autofix backport Signed-off-by: Gaukas Wang <i@gaukas.wang> * update: deprecate CleanInterval and fix minor bug Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: ignore cyclomatic complexity warning Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: patch inconsistency and minor QUIC bug Signed-off-by: Gaukas Wang <i@gaukas.wang> * fix: better struct field naming of FrameTypes Signed-off-by: Gaukas Wang <i@gaukas.wang> * update: use channel-based waiting Signed-off-by: Gaukas Wang <i@gaukas.wang> * style: format code with Gofumpt This commit fixes the style issues introduced in 2960570 according to the output from Gofumpt. Details: #21 * fix: improperly initialized completeChan Signed-off-by: Gaukas Wang <i@gaukas.wang> * update: use plain goroutine not AfterFunc when fit Signed-off-by: Gaukas Wang <i@gaukas.wang> * update: offload branching from goroutine Signed-off-by: Gaukas Wang <i@gaukas.wang> * add: more memory safety features Manually set finalizers for non-trivial types to make sure the internal resources are properly released. Add packet number/count limit to GatheredClientInitials.AddPacket. Rename GatherClientInitialsUntil to GatherClientInitialsWithDeadline and rewrite the underlying logistics to use a time.Time instead of a context.Context. * test: add race detection to GitHub Actions executed per each commit/pull request Signed-off-by: Gaukas Wang <i@gaukas.wang> * chore: remove debugging prints Signed-off-by: Gaukas Wang <i@gaukas.wang> --------- Signed-off-by: Gaukas Wang <i@gaukas.wang> Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
- Loading branch information