ARCHITECTURE.md names missing identifiers and describes replaced behavior

Offen Anfängerfreundlich
#327 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
85/100
Issue-Typ
Dokumentation
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
go
Bereich
documentation

Rechercherichtung

Beginne mit docs/ARCHITECTURE.md und prüfe jede zitierte Zeile gegen den Code, auf den sie verweist: main_wordlist.go (prepareWordlist), main.go (validateArgs, etwa Zeilen 211 und 283-301), internal/dns/resolver.go, internal/dns/cname.go, internal/output/writer.go (writeJSONElement), internal/validate/validate.go, internal/scan/runner.go, main_ct.go und main_config.go. Korrigiere veraltete Bezeichner, die -w-Anforderung, die Behauptung zur JSON-Pufferung, die Formen der DNS-Server, das Verhalten von EventDone und den Eintrag zu -dry-run. Fertig ist, wenn jeder Checklistenpunkt im Issue behoben ist und die Dateiliste cname.go enthält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

area: docs documentation good first issue severity: low

Summary

Ten statements in docs/ARCHITECTURE.md contradict the code: two function names that no longer exist, -w described as required, JSON output described as buffered, and a scan described as able to end without EventDone.

Where

  • docs/ARCHITECTURE.md:66
  • docs/ARCHITECTURE.md:124
  • docs/ARCHITECTURE.md:158
  • docs/ARCHITECTURE.md:194
  • docs/ARCHITECTURE.md:197
  • docs/ARCHITECTURE.md:250
  • docs/ARCHITECTURE.md:253
  • docs/ARCHITECTURE.md:268
  • docs/ARCHITECTURE.md:331
  • docs/ARCHITECTURE.md:343
  • main_wordlist.go:56
  • main.go:211
  • main.go:283-301
  • internal/dns/resolver.go:284-290
  • internal/dns/resolver.go:329-332
  • internal/dns/cname.go:49-62
  • internal/output/writer.go:255
  • internal/validate/validate.go:47-67
  • internal/scan/runner.go:590-596
  • main_ct.go:28
  • main_config.go:39

Details

Each item below contradicts the code at d0c56f0:

  • :66 main_wordlist.go - readWordlist. No readWordlist exists; the file defines prepareWordlist (main_wordlist.go:56) and the wordlistPaths flag value.
  • :124 "validateFlags, which checks that -w and a target are present", and :250 "When -w or a target ... is missing ... exits with status 2". -w is optional (main.go:211, "omitted: the bundled top-5000 list"); validateArgs checks only the domain or -dL (main.go:283-301).
  • :158 "one lookup per requested record type (... CNAME via LookupCNAME ...)". CNAME goes through the package's own lookupCNAME, one query (cname.go:49-62; resolver.go:286 "not Go's LookupCNAME, which also sends A and AAAA (#249)"), and the types are looked up at the same time (resolver.go:329-332, #250). Line 160 of the same document already says the opposite about CNAME.
  • :194 "In json format results are buffered and written as a single array by Finish" and :197 "Finish - writes the buffered JSON array". The array is streamed element by element (writeJSONElement, writer.go:255, #181; CHANGELOG.md:47).
  • :253 "The DNS server must be a valid ip:port with an IP host". tls://host[:port] and https://host/path are accepted, and their host may be a name (validate.go:47-67). Line 125 of the same document says so.
  • :268 "a failed preflight or an inconclusive wildcard check ... emits EventError and ends the scan without EventDone". Every scan ends with exactly one EventDone, with Stopped set when it ended before the candidates (runner.go:590-596, #99).
  • :331 "withCTEntries appends those not already in the wordlist". No such function; the passive names are gathered by passiveNames (main_ct.go:28) and merged by passive.Merge.
  • :343 lists the flags never taken from defaults as -tui, -version, -print-config, -resume, -h; dry-run is in noDefaultFlags too (main_config.go:39), as README.md:417 and docs/cli.md:44 say.
  • The file list (:75-84) has no entry for internal/dns/cname.go.

Impact

A contributor searching for readWordlist or withCTEntries finds nothing, and one who writes a scan.Run consumer from section 4.3 will treat a missing EventDone as a possible outcome, or budget five queries for -type A,AAAA,CNAME instead of three.

Suggested fix

Correct the nine items in place: rename the two functions, drop "-w and" from 2.1 and 4.1, rewrite the Lookups bullet (own lookupCNAME, concurrent types), say JSON is streamed and Finish closes the array, list the three resolver forms in 4.1, say EventDone follows with Stopped set in 4.3, add -dry-run to 5.8 and cname.go to the file list.

Acceptance criteria

  • Each checklist item under Details is corrected

Getting started

  • Relevant files: docs/ARCHITECTURE.md, main_wordlist.go, main.go, internal/dns/resolver.go
  • How to run tests: make test (or go test ./...). Tests must stay hermetic: use -simulate, -simulate-zone or the local DNS test server, never a live domain.
  • Related docs: docs/DEVELOPER_GUIDE.md, docs/ARCHITECTURE.md

Filed by repo-audit/full-audit at d0c56f0. Severity: low. Effort: S. audit-key: documentation|docs/ARCHITECTURE.md|stale-identifiers

Vorherrschende Sprache
Go
Sterne
1
Forks
1
Ø Merge
6 Std. 42 Min.
Gemergte PRs (30 T.)
7

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus TMHSDigital/subenum

Alle Issues in TMHSDigital/subenum

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.