Initial commit
CalDAV and CardDAV checkers sharing a single Go module. Discovery follows RFC 6764 (/.well-known + SRV/TXT), authenticated probes cover principal, home-set, collections and a minimal REPORT query on top of go-webdav. Common shape in internal/dav/; CalDAV adds a scheduling rule. Surfaces its context URL (and each secure-SRV target) as TLS endpoints via the EndpointDiscoverer interface, so the dedicated TLS checker can pick them up without re-parsing observations. HTML report foregrounds common misconfigs (well-known returning 200, missing SRV, plaintext-only SRV, missing DAV capability, skipped auth phase) as action-item callouts before the full phase breakdown.
This commit is contained in:
commit
aae1452e12
37 changed files with 2730 additions and 0 deletions
22
caldav/report.go
Normal file
22
caldav/report.go
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
package caldav
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"git.happydns.org/checker-dav/internal/dav"
|
||||
)
|
||||
|
||||
// GetHTMLReport implements sdk.CheckerHTMLReporter on *caldavProvider.
|
||||
//
|
||||
// The actual rendering is delegated to the shared renderer in internal/dav so
|
||||
// CalDAV and CardDAV produce visually identical reports; the only difference
|
||||
// is the title and the set of phases rendered (CalDAV includes Scheduling).
|
||||
func (p *caldavProvider) GetHTMLReport(raw json.RawMessage) (string, error) {
|
||||
var d dav.Observation
|
||||
if err := json.Unmarshal(raw, &d); err != nil {
|
||||
return "", fmt.Errorf("failed to unmarshal caldav report: %w", err)
|
||||
}
|
||||
d.Kind = dav.KindCalDAV
|
||||
return dav.RenderReport(&d, "CalDAV Server")
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue