]> Sergey Matveev's repositories - tofuproxy.git/blobdiff - fifos/list.go
gemini:// support
[tofuproxy.git] / fifos / list.go
index 8625a814450af01213402b65d732ff1b6d2f6e52..d8f77adc3430721f35f60587539eb9041966c2a0 100644 (file)
@@ -1,5 +1,6 @@
 /*
-tofuproxy -- flexible HTTP/WARC proxy with TLS certificates management
+tofuproxy -- flexible HTTP proxy, TLS terminator, X.509 certificates
+             manager, WARC/Gemini browser
 Copyright (C) 2021 Sergey Matveev <stargrave@stargrave.org>
 
 This program is free software: you can redistribute it and/or modify
@@ -77,11 +78,15 @@ func listTLSAuth(p string) {
                }
                caches.TLSAuthCacheM.RLock()
                for host, tlsCert := range caches.TLSAuthCache {
-                       cert, err := x509.ParseCertificate(tlsCert.Certificate[0])
-                       if err != nil {
-                               log.Fatalln(err)
+                       subj := "NONE"
+                       if len(tlsCert.Certificate) != 0 {
+                               cert, err := x509.ParseCertificate(tlsCert.Certificate[0])
+                               if err != nil {
+                                       log.Fatalln(err)
+                               }
+                               subj = cert.Subject.String()
                        }
-                       if _, err = fd.WriteString(fmt.Sprintf("%s\t%s\n", host, cert.Subject)); err != nil {
+                       if _, err = fd.WriteString(fmt.Sprintf("%s\t%s\n", host, subj)); err != nil {
                                break
                        }
                }