package checker import "net" // starttlsUpgrader performs the plaintext portion of a STARTTLS upgrade on // conn, leaving conn ready for tls.Client(conn, …).Handshake(). On success // the returned function returns nil; on failure it returns a descriptive // error (wrap errStartTLSNotOffered when the server advertises no STARTTLS). type starttlsUpgrader func(conn net.Conn, sni string) error var starttlsUpgraders = map[string]starttlsUpgrader{} func registerStartTLS(protocol string, upgrader starttlsUpgrader) { starttlsUpgraders[protocol] = upgrader }