diff options
author | Kim Alvefur <zash@zash.se> | 2020-09-26 17:16:34 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2020-09-26 17:16:34 +0200 |
commit | cfb933ba988b70d98c8694be2beb7c346e93f947 (patch) | |
tree | c95c7a9d17114faf5f603eefb6dc23d9d41db0f5 | |
parent | 3e3ce993e6b3573f96ebbadae405ba753c4a5c8f (diff) | |
download | prosody-cfb933ba988b70d98c8694be2beb7c346e93f947.tar.gz prosody-cfb933ba988b70d98c8694be2beb7c346e93f947.zip |
util.error: Add well-known field 'extra'
A place for various extra fields and edge cases of the stanza error data
model, e.g. the URI field of <gone>
-rw-r--r-- | spec/util_error_spec.lua | 8 | ||||
-rw-r--r-- | util/error.lua | 2 |
2 files changed, 10 insertions, 0 deletions
diff --git a/spec/util_error_spec.lua b/spec/util_error_spec.lua index ca053285..136f8b12 100644 --- a/spec/util_error_spec.lua +++ b/spec/util_error_spec.lua @@ -66,5 +66,13 @@ describe("util.error", function () end); end); + describe("extra", function () + it("keeps some extra fields", function () + local err = errors.new({condition="gone",text="Sorry mate, it's all gone",extra={uri="file:///dev/null"}}); + assert.is_table(err.extra); + assert.equal("file:///dev/null", err.extra.uri); + end); + end) + end); diff --git a/util/error.lua b/util/error.lua index cfb35350..e0b1f9a6 100644 --- a/util/error.lua +++ b/util/error.lua @@ -43,6 +43,7 @@ local function new(e, context, registry, source) type = e.type; condition = e.condition; text = e.text; + extra = e.extra; }; else template = {}; @@ -61,6 +62,7 @@ local function new(e, context, registry, source) condition = template.condition or "undefined-condition"; text = template.text; code = template.code; + extra = template.extra; context = context; source = source; |