mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
config: Support "" values for drop_characters and suffix_separators
If the `drop_characters` or `suffix_separators` options are set to "", currently instead of the empty string, their default value is used instead. This is a bug, and it also happens on other config options, but because the others have to be set in order for chasquid to function, it's not a problem in practice. Thanks Björn Busse (bbusse@github) for finding and reporting this problem, on irc and in https://github.com/albertito/chasquid/issues/25. This patch fixes the problem by marking these fields explicitly optional, which enables presence testing, as described in the protobuf documentation: https://github.com/protocolbuffers/protobuf/blob/master/docs/field_presence.md.
This commit is contained in:
@@ -24,6 +24,10 @@ func mustCreateConfig(t *testing.T, contents string) (string, string) {
|
||||
return tmpDir, tmpDir + "/chasquid.conf"
|
||||
}
|
||||
|
||||
func TestEmptyStruct(t *testing.T) {
|
||||
testLogConfig(&Config{})
|
||||
}
|
||||
|
||||
func TestEmptyConfig(t *testing.T) {
|
||||
tmpDir, path := mustCreateConfig(t, "")
|
||||
defer testlib.RemoveIfOk(t, tmpDir)
|
||||
@@ -54,6 +58,7 @@ func TestFullConfig(t *testing.T) {
|
||||
submission_address: ":10002"
|
||||
monitoring_address: ":1111"
|
||||
max_data_size_mb: 26
|
||||
suffix_separators: ""
|
||||
`
|
||||
|
||||
tmpDir, path := mustCreateConfig(t, confStr)
|
||||
@@ -63,6 +68,7 @@ func TestFullConfig(t *testing.T) {
|
||||
hostname: "proust"
|
||||
submission_address: ":999"
|
||||
dovecot_auth: true
|
||||
drop_characters: ""
|
||||
`
|
||||
|
||||
expected := &Config{
|
||||
@@ -79,8 +85,8 @@ func TestFullConfig(t *testing.T) {
|
||||
|
||||
DataDir: "/var/lib/chasquid",
|
||||
|
||||
SuffixSeparators: "+",
|
||||
DropCharacters: ".",
|
||||
SuffixSeparators: proto.String(""),
|
||||
DropCharacters: proto.String(""),
|
||||
|
||||
MailLogPath: "<syslog>",
|
||||
|
||||
|
||||
Reference in New Issue
Block a user