]> Sergey Matveev's repositories - tofuproxy.git/blobdiff - fifos/list.go
No redo, refactor project building, simplify it
[tofuproxy.git] / fifos / list.go
index 8625a814450af01213402b65d732ff1b6d2f6e52..80bfb14b9ae700c3208bae9cf4a7365052361841 100644 (file)
@@ -1,6 +1,7 @@
 /*
-tofuproxy -- flexible HTTP/WARC proxy with TLS certificates management
-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-2023 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
@@ -35,7 +36,7 @@ func list(l *sync.RWMutex, m map[string]string, p string) {
                }
                l.RLock()
                for host, hsh := range m {
-                       if _, err = fd.WriteString(fmt.Sprintf("%s\t%s\n", host, hsh)); err != nil {
+                       if _, err = fmt.Fprintf(fd, "%s\t%s\n", host, hsh); err != nil {
                                break
                        }
                }
@@ -60,7 +61,7 @@ func listHTTPAuth(p string) {
                }
                caches.HTTPAuthCacheM.RLock()
                for host, creds := range caches.HTTPAuthCache {
-                       if _, err = fd.WriteString(fmt.Sprintf("%s\t%s\n", host, creds[0])); err != nil {
+                       if _, err = fmt.Fprintf(fd, "%s\t%s\n", host, creds[0]); err != nil {
                                break
                        }
                }
@@ -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 = fmt.Fprintf(fd, "%s\t%s\n", host, subj); err != nil {
                                break
                        }
                }