aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authoradnano <[email protected]>2020-09-21 19:17:10 -0400
committeradnano <[email protected]>2020-09-21 19:17:10 -0400
commit39552c0f8fe0dbdb5491f4dcaba84ddbc44a7f61 (patch)
tree2568e67b4ce0505bd7a4e1a4843a27412842b5a1 /examples
parentUpdate Client documentation (diff)
downloadgo-gemini-39552c0f8fe0dbdb5491f4dcaba84ddbc44a7f61.tar.xz
go-gemini-39552c0f8fe0dbdb5491f4dcaba84ddbc44a7f61.zip
Provide Handler with client certificate information
Diffstat (limited to 'examples')
-rw-r--r--examples/client/client.go14
-rw-r--r--examples/server/server.go10
2 files changed, 15 insertions, 9 deletions
diff --git a/examples/client/client.go b/examples/client/client.go
index 6289e95..3864789 100644
--- a/examples/client/client.go
+++ b/examples/client/client.go
@@ -13,6 +13,7 @@ import (
)
var client gemini.Client
+var cert tls.Certificate
func init() {
// Configure a client side certificate.
@@ -22,17 +23,20 @@ func init() {
// openssl ecparam -genkey -name secp384r1 -out client.key
// openssl req -new -x509 -sha256 -key client.key -out client.crt -days 3650
//
- config := tls.Config{}
- cert, err := tls.LoadX509KeyPair("examples/client/client.crt", "examples/client/client.key")
+ var err error
+ cert, err = tls.LoadX509KeyPair("examples/client/client.crt", "examples/client/client.key")
if err != nil {
log.Fatal(err)
}
- config.Certificates = append(config.Certificates, cert)
- client.TLSConfig = config
}
func makeRequest(url string) {
- resp, err := client.Request(url)
+ req, err := gemini.NewRequest(url)
+ if err != nil {
+ log.Fatal(err)
+ }
+ req.Certificates = append(req.Certificates, cert)
+ resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
diff --git a/examples/server/server.go b/examples/server/server.go
index 9165898..1040af9 100644
--- a/examples/server/server.go
+++ b/examples/server/server.go
@@ -4,9 +4,9 @@ package main
import (
"crypto/tls"
- "git.sr.ht/~adnano/go-gemini"
"log"
- "net/url"
+
+ "git.sr.ht/~adnano/go-gemini"
)
func main() {
@@ -23,13 +23,15 @@ func main() {
log.Fatal(err)
}
config.Certificates = append(config.Certificates, cert)
+ config.ClientAuth = tls.RequestClientCert
mux := &gemini.Mux{}
- mux.HandleFunc("/", func(url *url.URL) *gemini.Response {
+ mux.HandleFunc("/", func(req *gemini.RequestInfo) *gemini.Response {
+ log.Printf("Request for %s with certificates %v", req.URL.String(), req.Certificates)
return &gemini.Response{
Status: gemini.StatusSuccess,
Meta: "text/gemini",
- Body: []byte("You requested " + url.String()),
+ Body: []byte("You requested " + req.URL.String()),
}
})