From 744884127cd019454174cc768a98bc0e7cd8f5a3 Mon Sep 17 00:00:00 2001 From: adnano Date: Mon, 28 Sep 2020 14:26:09 -0400 Subject: [PATCH] Fix client example error handling --- examples/client/client.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/examples/client/client.go b/examples/client/client.go index 5582597..be7fe23 100644 --- a/examples/client/client.go +++ b/examples/client/client.go @@ -56,6 +56,7 @@ func init() { return cert } // Otherwise, generate a certificate + fmt.Println("Generating client certificate for", hostname) duration := time.Hour cert, err := gmi.NewCertificate(hostname, duration) if err != nil { @@ -107,8 +108,10 @@ func sendRequest(req *gmi.Request) error { case gmi.StatusClassPermanentFailure: return fmt.Errorf("Permanent failure: %s", resp.Meta) case gmi.StatusClassCertificateRequired: - fmt.Println("Generating client certificate for", req.Hostname()) - return nil // TODO: Generate and store client certificate + // Note that this should not happen unless the server responds with + // CertificateRequired even after we send a certificate. + // CertificateNotAuthorized and CertificateNotValid are handled here. + return fmt.Errorf("Certificate required: %s", resp.Meta) } panic("unreachable") }