diff options
| author | Adnan Maolood <[email protected]> | 2020-12-17 17:15:24 -0500 |
|---|---|---|
| committer | Adnan Maolood <[email protected]> | 2020-12-17 17:15:24 -0500 |
| commit | a1dd8de337bcdbc4fa690a8af8ea8e4ac37508d9 (patch) | |
| tree | 8d8c8b29588d9733d615de12e0dff091cedd848c | |
| parent | Use RWMutex instead of Mutex (diff) | |
| download | go-gemini-a1dd8de337bcdbc4fa690a8af8ea8e4ac37508d9.tar.xz go-gemini-a1dd8de337bcdbc4fa690a8af8ea8e4ac37508d9.zip | |
Fix locking up of KnownHostsFile and CertificateDir
| -rw-r--r-- | cert.go | 5 | ||||
| -rw-r--r-- | tofu.go | 12 |
2 files changed, 3 insertions, 14 deletions
@@ -82,8 +82,6 @@ func (c *CertificateDir) Lookup(scope string) (tls.Certificate, bool) { // localhost.crt (certificate) and localhost.key (private key). // New certificates will be written to this directory. func (c *CertificateDir) Load(path string) error { - c.mu.Lock() - defer c.mu.Unlock() matches, err := filepath.Glob(filepath.Join(path, "*.crt")) if err != nil { return err @@ -99,8 +97,7 @@ func (c *CertificateDir) Load(path string) error { scope = strings.ReplaceAll(scope, ":", "/") c.Add(scope, cert) } - c.dir = true - c.path = path + c.SetDir(path) return nil } @@ -90,20 +90,12 @@ func (k *KnownHostsFile) writeKnownHost(w io.Writer, hostname string, f Fingerpr // It creates the file if it does not exist. // New known hosts will be appended to the file. func (k *KnownHostsFile) Load(path string) error { - k.mu.Lock() - defer k.mu.Unlock() - f, err := os.OpenFile(path, os.O_CREATE|os.O_RDONLY, 0644) + f, err := os.OpenFile(path, os.O_CREATE|os.O_RDWR, 0644) if err != nil { return err } k.Parse(f) - f.Close() - // Open the file for append-only use - f, err = os.OpenFile(path, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644) - if err != nil { - return err - } - k.out = f + k.SetOutput(f) return nil } |