Skip to content

Commit

Permalink
Make milter header handling compatible with rspamd 3.3 (#30)
Browse files Browse the repository at this point in the history
  • Loading branch information
pvagner committed Oct 10, 2022
1 parent b6c57fc commit 946a799
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
2 changes: 2 additions & 0 deletions Changes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
### Unreleased

- Update milter headers handling to be compatible with rspamd 3.3 preserving compatibility with older versions


### [1.1.8] - 2022-06-06

Expand Down
23 changes: 17 additions & 6 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,15 +185,26 @@ exports.do_milter_headers = function (connection, data) {
}

if (data.milter.add_headers) {
connection.logdebug("milter.add_headers: " + JSON.stringify(data.milter.add_headers), plugin);
Object.keys(data.milter.add_headers).forEach((key) => {
const header_value = data.milter.add_headers[key];
if (!header_value) return;

if (typeof header_value === 'object') {
connection.transaction.add_header(key, header_value.value);
const header_values = data.milter.add_headers[key];
if (!header_values) return;

if (Object.prototype.toString.call(header_values) == '[object Array]') {
header_values.forEach(function (header_value, header_index) {
if (typeof header_value === 'object') {
connection.transaction.add_header(key, header_value.value);
}
else {
connection.transaction.add_header(key, header_value);
}
});
}
else if (typeof header_values === 'object') {
connection.transaction.add_header(key, header_values.value);
}
else {
connection.transaction.add_header(key, header_value);
connection.transaction.add_header(key, header_values);
}
})
}
Expand Down

0 comments on commit 946a799

Please sign in to comment.