]> Sergey Matveev's repositories - tofuproxy.git/blobdiff - tls.go
Compatibility with raw IPv6 addresses as hostname
[tofuproxy.git] / tls.go
diff --git a/tls.go b/tls.go
index ffd5084e28695822b346352f2e65461b1b9879a6..0fb4ae14c2c69dddc554b77f16861ec00005e10a 100644 (file)
--- a/tls.go
+++ b/tls.go
@@ -1,7 +1,7 @@
 /*
-tofuproxy -- flexible HTTP proxy, TLS terminator, X.509 certificates
-             manager, WARC/Gemini browser
-Copyright (C) 2021 Sergey Matveev <stargrave@stargrave.org>
+tofuproxy -- flexible HTTP/HTTPS proxy, TLS terminator, X.509 TOFU
+             manager, WARC/geminispace browser
+Copyright (C) 2021-2022 Sergey Matveev <stargrave@stargrave.org>
 
 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
@@ -25,8 +25,9 @@ import (
        "fmt"
        "log"
        "net/http"
-       "strings"
        "time"
+
+       ttls "go.stargrave.org/tofuproxy/tls"
 )
 
 var (
@@ -57,7 +58,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
                req.Proto,
                http.StatusOK, http.StatusText(http.StatusOK),
        )))
-       host := strings.Split(req.Host, ":")[0]
+       host, _, _ := ttls.SplitHostPort(req.Host)
        hostCertsM.Lock()
        keypair, ok := hostCerts[host]
        if !ok || !keypair.cert.NotAfter.After(time.Now().Add(time.Hour)) {