Mercurial > prosody-modules
comparison mod_rest/mod_rest.lua @ 3909:eb27e51cf2c9
mod_rest: Handle uncaught native errors correctly
Previously they would slip through and be returned over HTTP with 200 OK.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 26 Feb 2020 18:04:17 +0000 |
| parents | 3d0e8e32453c |
| children | 49efd1323a1b |
comparison
equal
deleted
inserted
replaced
| 3908:8ac5d9933106 | 3909:eb27e51cf2c9 |
|---|---|
| 140 module:log("debug", "Sending[rest]: %s", result.stanza:top_tag()); | 140 module:log("debug", "Sending[rest]: %s", result.stanza:top_tag()); |
| 141 response.headers.content_type = send_type; | 141 response.headers.content_type = send_type; |
| 142 return encode(send_type, result.stanza); | 142 return encode(send_type, result.stanza); |
| 143 end, | 143 end, |
| 144 function (error) | 144 function (error) |
| 145 if error.context and error.context.stanza then | 145 if not errors.is_err(error) then |
| 146 module:log("error", "Uncaught native error: %s", error); | |
| 147 return select(2, errors.coerce(nil, error)); | |
| 148 elseif error.context and error.context.stanza then | |
| 146 response.headers.content_type = send_type; | 149 response.headers.content_type = send_type; |
| 147 module:log("debug", "Sending[rest]: %s", error.context.stanza:top_tag()); | 150 module:log("debug", "Sending[rest]: %s", error.context.stanza:top_tag()); |
| 148 return encode(send_type, error.context.stanza); | 151 return encode(send_type, error.context.stanza); |
| 149 else | 152 else |
| 150 return error; | 153 return error; |
