【发布时间】:2015-06-19 14:53:09
【问题描述】:
我来自 Ruby,目前正在研究 Go。我开始编写一些代码来检查给定主机的 TLS 支持。
var tls_versions = map[uint16]string{ tls.VersionSSL30: "SSLv3", tls.VersionTLS10: "TLSv1.0", tls.VersionTLS11: "TLSv1.1", tls.VersionTLS12: "TLSv1.2", } var denied_re = regexp.MustCompile(": 连接被拒绝") var nodns_re = regexp.MustCompile(": 没有这样的主机") var versionnotsupported_re = regexp.MustCompile(": 协议版本不支持") func checkversion(host string) (map[string]bool, error) { // {{ ret := 地图[字符串]布尔{} 对于版本:= tls.VersionSSL30;版本来自 Ruby,我发现这段代码中的错误管理非常丑陋,因为我只是一个错字/改变,因为我没有得到错误的正确原因。我试图玩反射,但无法让它做我想做的事。我想知道我是否遗漏了一些明显的东西,或者它是否是可行的方式?还是它特定于 crypto/tls 库以避免从任何问题中恢复?
感谢您的帮助。
【问题讨论】:
标签: go