【发布时间】:2021-12-27 23:27:47
【问题描述】:
在添加功能之前,我正在为germinal 编写一些特征测试。为此,我更喜欢使用let 表单和临时影子配置而不是 setq 它。
但是,对于某些配置,这并不像我预期的那样工作。 *germinal-host*可以被shadow,但是证书配置*germinal-cert*不能:
CL-USER> (let ((germinal:*germinal-cert* "/foo/bar"))
(print germinal:*germinal-cert*)
(germinal:start :background nil))
"/foo/bar" ;; Germinal listening on 0.0.0.0 port 1965
gemini-handler error: SSL initialization error: Can't load certificate /etc/germinal/cert.pem
SSL error queue is empty.
我是否错过了在测试期间配置生发客户端的正确方法?我可以全局 setq 我想要的值,但我希望配置仅在测试期间被覆盖,因此使用 let。
【问题讨论】:
-
好吧,我想我明白了。所有配置特殊变量都被隐藏起来 - 例如,
*germinal-host*和*germinal-cert*。但是,前一个“有效”的原因是它在它被隐藏的上下文中使用 - 在服务器创建时。但是,usocket使用自己的上下文 - 不是隐藏特殊变量的上下文 - 来处理连接。
标签: common-lisp gemini-protocol