Support file specification in a dataset starting with './' and '../' in addition to '/'. Update man pages to indicate it is general and not just fo KeyTable*.

This commit is contained in:
Scott Kitterman
2019-10-30 13:56:59 -04:00
parent 1337ac1e1a
commit 9c9ab7d5d0
3 changed files with 6 additions and 3 deletions
+1 -1
View File
@@ -278,7 +278,7 @@ def _dataset_to_list(dataset):
# This is a flat file dataset, which are key value:value stores # This is a flat file dataset, which are key value:value stores
ds = [] ds = []
dsd = {} dsd = {}
if dataset[0] == '/': if dataset[0] == '/' or dataset[:2] == './' or dataset[:3] == '../':
dsname = dataset dsname = dataset
elif dataset[:5] == 'file:': elif dataset[:5] == 'file:':
dsname = dataset[5:] dsname = dataset[5:]
+1 -1
View File
@@ -175,7 +175,7 @@ def read_keytable(tabledict, milterconfig):
import dkim import dkim
import syslog import syslog
for dictkey, values in tabledict.items(): for dictkey, values in tabledict.items():
if values[-1][:1] == '/': if values[-1][:1] == '/' or values[-1][:2] == './' or values[-1][:3] == '../':
key = read_keyfile(values[-1], milterconfig) key = read_keyfile(values[-1], milterconfig)
tabledict[dictkey] = [values[0], values[1], key] tabledict[dictkey] = [values[0], values[1], key]
return tabledict return tabledict
+4 -1
View File
@@ -182,7 +182,10 @@ should be separated by colons.
.TP .TP
.I i) .I i)
If the string contains none of these prefixes but starts with a slash ("/") If the string contains none of these prefixes but starts with a slash ("/")
character, it is presumed to be a flat file as described above. character, or "./" or "../", it is presumed to be a flat file as described
above. Note: In OpenDKIM "./" and "../" only apply to KeyTable, but for
dkimpy-milter it is generally applicable and KeyTable specification is not
a special case.
.TP .TP
.I j) .I j)
If the string begins with "csl:", the string is treated as a comma-separated If the string begins with "csl:", the string is treated as a comma-separated