1
0
mirror of https://git.sr.ht/~adnano/go-gemini synced 2024-11-10 04:41:38 +01:00

Fix locking up of KnownHostsFile and CertificateDir

This commit is contained in:
adnano 2020-12-17 17:15:24 -05:00
parent 2d4989c002
commit d85abb61db
2 changed files with 3 additions and 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
}

12
tofu.go

@ -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
}