diff options
author | Paweł Chmielowski <pchmielowski@process-one.net> | 2020-04-09 09:22:24 +0200 |
---|---|---|
committer | Paweł Chmielowski <pchmielowski@process-one.net> | 2020-04-16 13:05:42 +0200 |
commit | c11922e2a22d356b74e003b547771040b48a8190 (patch) | |
tree | 2f3da0390ec4a1ef0f1248f94c87e3dca442280a /src | |
parent | Resending unacked stanzas should send even archived msgs if mod_offline is en... (diff) |
Make session iq response have from be set to server jid
It looks like old version of Smack don't accept request that are have
from sent to sender jid, but are only working when jid is set to server
address. This is also how it looks in old xmpp rfc examples.
Diffstat (limited to 'src')
-rw-r--r-- | src/ejabberd_c2s.erl | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index f533fbed3..9e0274cf8 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -491,7 +491,11 @@ handle_authenticated_packet(Pkt, #{lserver := LServer, jid := JID, #iq{type = set, sub_els = [_]} -> try xmpp:try_subtag(Pkt2, #xmpp_session{}) of #xmpp_session{} -> - send(State2, xmpp:make_iq_result(Pkt2)); + % It seems that some client are expecting to have response + % to session request be sent from server jid, let's make + % sure it is that. + Pkt3 = xmpp:set_to(Pkt2, jid:make(<<>>, LServer, <<>>)), + send(State2, xmpp:make_iq_result(Pkt3)); _ -> check_privacy_then_route(State2, Pkt2) catch _:{xmpp_codec, Why} -> |