Software / code / prosody
Comparison
core/moduleapi.lua @ 10705:2cffb5ce9f7a
moduleapi: Fix handling of replies to :send_iq from internal modules
Unclear exactly why, but replies to some queries to local modules would
be discarded by stanza_router. This appears to fix it.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 22 Mar 2020 22:32:26 +0100 |
| parent | 10595:17bab303daf5 |
| child | 10706:0230ceecb8a9 |
comparison
equal
deleted
inserted
replaced
| 10704:06307833684b | 10705:2cffb5ce9f7a |
|---|---|
| 434 text = "Could not store IQ tracking data" | 434 text = "Could not store IQ tracking data" |
| 435 })); | 435 })); |
| 436 return; | 436 return; |
| 437 end | 437 end |
| 438 | 438 |
| 439 self:send(stanza, origin); | 439 local wrapped_origin = setmetatable({ |
| 440 -- XXX Needed in some cases for replies to work correctly when sending queries internally. | |
| 441 send = function (stanza) | |
| 442 resolve({ stanza = stanza }); | |
| 443 end; | |
| 444 }, { | |
| 445 __index = origin or hosts[self.host]; | |
| 446 }); | |
| 447 | |
| 448 self:send(stanza, wrapped_origin); | |
| 440 end); | 449 end); |
| 441 | 450 |
| 442 p:finally(function () | 451 p:finally(function () |
| 443 local iq = iq_cache:get(cache_key); | 452 local iq = iq_cache:get(cache_key); |
| 444 if iq then | 453 if iq then |