aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authoradnano <[email protected]>2020-09-25 19:53:50 -0400
committeradnano <[email protected]>2020-09-25 19:53:50 -0400
commit53d84882ea0c33a12e1e009d58003ecde3a5aa98 (patch)
tree563f2729b2626ba72d552f38608946f919e8e21a /examples
parentReorganize (diff)
downloadgo-gemini-53d84882ea0c33a12e1e009d58003ecde3a5aa98.tar.xz
go-gemini-53d84882ea0c33a12e1e009d58003ecde3a5aa98.zip
Implement configurable Client
Diffstat (limited to 'examples')
-rw-r--r--examples/client/client.go19
1 files changed, 17 insertions, 2 deletions
diff --git a/examples/client/client.go b/examples/client/client.go
index a90af18..353359c 100644
--- a/examples/client/client.go
+++ b/examples/client/client.go
@@ -5,6 +5,7 @@ package main
import (
"bufio"
"crypto/tls"
+ "crypto/x509"
"fmt"
"log"
"os"
@@ -12,7 +13,18 @@ import (
"git.sr.ht/~adnano/go-gemini"
)
-var cert tls.Certificate
+var (
+ client = &gemini.Client{
+ VerifyCertificate: func(cert *x509.Certificate) error {
+ // if gemini.Fingerprint(cert) != expected {
+ // return errors.New("invalid server certificate")
+ // }
+ return nil
+ },
+ }
+
+ cert tls.Certificate
+)
func init() {
// Configure a client side certificate.
@@ -35,11 +47,14 @@ func makeRequest(url string) {
log.Fatal(err)
}
req.Certificate = cert
- resp, err := gemini.Do(req)
+
+ resp, err := client.Send(req)
if err != nil {
log.Fatal(err)
}
+ fmt.Println(gemini.Fingerprint(resp.TLS.PeerCertificates[0]))
+
fmt.Println("Status code:", resp.Status)
fmt.Println("Meta:", resp.Meta)