checkAllPorts() and runTLSChecks() both iterate over w.config.Domains and call collectIPs(domain). However, collectIPs reads from GetHostnameState(hostname), which only returns state set by checkHostname(). Domains go through checkDomain() which sets DomainState (nameservers only), never HostnameState.
If a user configures example.com as a target (an apex domain), DNS NS monitoring works, but port monitoring and TLS certificate monitoring are silently skipped. No error is logged.
Fix
Either:
Resolve A/AAAA records for domains too (treating them also as hostnames for IP-level checks), or
Remove domains from the port/TLS check loops if they are intentionally NS-only, and document this behavior, or
Unify the domain/hostname distinction so all targets get full monitoring.
## Bug
`checkAllPorts()` and `runTLSChecks()` both iterate over `w.config.Domains` and call `collectIPs(domain)`. However, `collectIPs` reads from `GetHostnameState(hostname)`, which only returns state set by `checkHostname()`. Domains go through `checkDomain()` which sets `DomainState` (nameservers only), never `HostnameState`.
```go
func (w *Watcher) checkAllPorts(ctx context.Context) {
// ...
for _, domain := range w.config.Domains {
w.checkPortsForHostname(ctx, domain) // calls collectIPs
}
}
func (w *Watcher) collectIPs(hostname string) []string {
hs, ok := w.state.GetHostnameState(hostname) // always false for domains!
if !ok {
return nil // silently returns nothing
}
// ...
}
```
## Impact
If a user configures `example.com` as a target (an apex domain), DNS NS monitoring works, but port monitoring and TLS certificate monitoring are silently skipped. No error is logged.
## Fix
Either:
1. Resolve A/AAAA records for domains too (treating them also as hostnames for IP-level checks), or
2. Remove domains from the port/TLS check loops if they are intentionally NS-only, and document this behavior, or
3. Unify the domain/hostname distinction so all targets get full monitoring.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Bug
checkAllPorts()andrunTLSChecks()both iterate overw.config.Domainsand callcollectIPs(domain). However,collectIPsreads fromGetHostnameState(hostname), which only returns state set bycheckHostname(). Domains go throughcheckDomain()which setsDomainState(nameservers only), neverHostnameState.Impact
If a user configures
example.comas a target (an apex domain), DNS NS monitoring works, but port monitoring and TLS certificate monitoring are silently skipped. No error is logged.Fix
Either: