12345678910111213141516171819202122232425262728293031 |
- package http_proxy
- import (
- "crypto/tls"
- "fmt"
- "sync"
- )
- var (
- certCache = make(map[string]*tls.Certificate)
- certLock = &sync.Mutex{}
- )
- func keyFor(domain string, port int) string {
- return fmt.Sprintf("%s:%d", domain, port)
- }
- func getCachedCert(domain string, port int) *tls.Certificate {
- certLock.Lock()
- defer certLock.Unlock()
- if cert, found := certCache[keyFor(domain, port)]; found {
- return cert
- }
- return nil
- }
- func setCachedCert(domain string, port int, cert *tls.Certificate) {
- certLock.Lock()
- defer certLock.Unlock()
- certCache[keyFor(domain, port)] = cert
- }
|