ARCHITECTURE.md names missing identifiers and describes replaced behavior

Abierto Apto para principiantes
#327 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
85/100
Tipo de issue
Documentación
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
go

Línea de trabajo

Empieza con docs/ARCHITECTURE.md y comprueba cada línea citada contra el código al que se refiere: main_wordlist.go (prepareWordlist), main.go (validateArgs, alrededor de las líneas 211 y 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 y main_config.go. Corrige los identificadores obsoletos, el requisito de -w, la afirmación sobre el búfer de JSON, las formas de los servidores DNS, el comportamiento de EventDone y la entrada de -dry-run. Se considera terminado cuando cada elemento de la lista de verificación del issue está corregido y la lista de archivos incluye cname.go.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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

Lenguaje dominante
Go
Estrellas
1
Forks
1
Merge medio
6 h 42 min
PR fusionados (30 d)
7

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de TMHSDigital/subenum

Todos los issues de TMHSDigital/subenum

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.