Software /
code /
prosody
Comparison
core/stanza_router.lua @ 570:f40928c94933
Fixed: Stopped tryint to send error replies on unauthed connections
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Sat, 06 Dec 2008 07:24:15 +0500 |
parent | 519:cccd610a0ef9 |
child | 615:4ae3e81513f3 |
comparison
equal
deleted
inserted
replaced
560:6c07f15a34f4 | 570:f40928c94933 |
---|---|
119 -- This function handles stanzas which are not routed any further, | 119 -- This function handles stanzas which are not routed any further, |
120 -- that is, they are handled by this server | 120 -- that is, they are handled by this server |
121 function core_handle_stanza(origin, stanza) | 121 function core_handle_stanza(origin, stanza) |
122 -- Handlers | 122 -- Handlers |
123 if modules_handle_stanza(stanza.attr.to or origin.host, origin, stanza) then return; end | 123 if modules_handle_stanza(stanza.attr.to or origin.host, origin, stanza) then return; end |
124 if origin.type == "c2s" or origin.type == "c2s_unauthed" then | 124 if origin.type == "c2s" or origin.type == "s2sin" then |
125 local session = origin; | 125 if origin.type == "c2s" then |
126 | 126 if stanza.name == "presence" and origin.roster then |
127 if stanza.name == "presence" and origin.roster then | 127 if stanza.attr.type == nil or stanza.attr.type == "unavailable" then |
128 if stanza.attr.type == nil or stanza.attr.type == "unavailable" then | 128 handle_normal_presence(origin, stanza, core_route_stanza); |
129 handle_normal_presence(origin, stanza, core_route_stanza); | 129 else |
130 log("warn", "Unhandled c2s presence: %s", tostring(stanza)); | |
131 if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" then | |
132 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? | |
133 end | |
134 end | |
130 else | 135 else |
131 log("warn", "Unhandled c2s presence: %s", tostring(stanza)); | 136 log("warn", "Unhandled c2s stanza: %s", tostring(stanza)); |
132 if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" then | 137 if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then |
133 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? | 138 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? |
134 end | 139 end |
135 end | 140 end |
136 else | 141 else -- s2s stanzas |
137 log("warn", "Unhandled c2s stanza: %s", tostring(stanza)); | 142 log("warn", "Unhandled s2s stanza: %s", tostring(stanza)); |
138 if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then | 143 if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then |
139 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? | 144 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? |
140 end | 145 end |
141 end -- TODO handle other stanzas | 146 end |
142 else | 147 else |
143 log("warn", "Unhandled origin: %s", origin.type); | 148 log("warn", "Unhandled %s stanza: %s", origin.type, tostring(stanza)); |
144 if (stanza.attr.xmlns == "jabber:client" or stanza.attr.xmlns == "jabber:server") and stanza.attr.type ~= "error" and stanza.attr.type ~= "result" then | |
145 -- s2s stanzas can get here | |
146 origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); -- FIXME correct error? | |
147 end | |
148 end | 149 end |
149 end | 150 end |
150 | 151 |
151 function core_route_stanza(origin, stanza) | 152 function core_route_stanza(origin, stanza) |
152 -- Hooks | 153 -- Hooks |