【发布时间】:2017-05-17 10:49:51
【问题描述】:
我想对 Go crypto/tls 标准库进行一些更改。
在供应商文件夹中制作 crypto/tls 的副本是一种好方法吗?
它几乎可以工作,似乎在我编译应用程序(Caddy 网络服务器)时使用了 vendored 副本。除了一个错误,我得到:
go/src/github.com/user/caddy/caddytls/httphandler.go:40:不能使用“vendor/crypto/tls”.Config 文字(类型 *“vendor/crypto/tls”.Config)作为类型*"crypto/tls". 字段值中的配置
有没有一种方法可以解决这个错误?不过对我来说这听起来不太好。
我原以为总是会使用出售的副本,但似乎有些东西仍在使用标准的 crypto/tls 库? (我认为“net/http”是。我也必须提供这个吗?)
【问题讨论】:
-
“我想对 Go crypto/tls 标准库进行一些更改。”我希望你不要。
-
对于使用内置
crypto/tls的所有代码,您将无法获得匹配的类型,因为就 Go 而言,它是一个不同的包。如果您也是供应商球童,这可能会起作用。如果你真的需要修改crypto/tls(我也希望你不要),我认为通过例如处理这个会更简单。用 go 的补丁版本构建一个容器(我猜你可以称它为标准库供应商?) -
这将是全有或全无 - 如果你想使用 stdlib 的修改版本(它的任何部分),你必须 fork Go;这就是使它成为 标准 库的原因。还有第三次投票支持不修改加密/tls。