Software /
code /
prosody
Changeset
971:dd736391bd41
Merge
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 08 Apr 2009 23:20:45 +0100 |
parents | 970:5516f9e66482 (current diff) 969:9ab6934fb1ff (diff) |
children | 972:144d0ad17389 973:b091a1a7273b |
files | |
diffstat | 3 files changed, 12 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/core/presencemanager.lua Wed Apr 08 23:20:22 2009 +0100 +++ b/core/presencemanager.lua Wed Apr 08 23:20:45 2009 +0100 @@ -28,7 +28,7 @@ function handle_presence(origin, stanza, from_bare, to_bare, core_route_stanza, inbound) local type = stanza.attr.type; - if type and type ~= "unavailable" then + if type and type ~= "unavailable" and type ~= "error" then if inbound then handle_inbound_presence_subscriptions_and_probes(origin, stanza, from_bare, to_bare, core_route_stanza); else
--- a/core/stanza_router.lua Wed Apr 08 23:20:22 2009 +0100 +++ b/core/stanza_router.lua Wed Apr 08 23:20:45 2009 +0100 @@ -124,7 +124,7 @@ component_handle_stanza(origin, stanza); elseif hosts[host] and hosts[host].type == "component" then -- directed at a component component_handle_stanza(origin, stanza); - elseif origin.type == "c2s" and stanza.name == "presence" and stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" then + elseif origin.type == "c2s" and stanza.name == "presence" and stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" and stanza.attr.type ~= "error" then handle_outbound_presence_subscriptions_and_probes(origin, stanza, from_bare, to_bare, core_route_stanza); elseif hosts[host] and hosts[host].type == "local" and stanza.name == "iq" and not resource then -- directed at bare JID core_handle_stanza(origin, stanza); @@ -144,7 +144,7 @@ if origin.type == "c2s" or origin.type == "s2sin" then if origin.type == "c2s" then if stanza.name == "presence" and origin.roster then - if stanza.attr.type == nil or stanza.attr.type == "unavailable" then + if stanza.attr.type == nil or stanza.attr.type == "unavailable" and stanza.attr.type ~= "error" then handle_normal_presence(origin, stanza, core_route_stanza); else log("warn", "Unhandled c2s presence: %s", tostring(stanza)); @@ -188,7 +188,7 @@ return component_handle_stanza(origin, stanza); end - if stanza.name == "presence" and (stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable") then resource = nil; end + if stanza.name == "presence" and (stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" and stanza.attr.type ~= "error") then resource = nil; end local host_session = hosts[host] if host_session and host_session.type == "local" then @@ -199,9 +199,9 @@ if not res then -- if we get here, resource was not specified or was unavailable if stanza.name == "presence" then - if stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" then + if stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" and stanza.attr.type ~= "error" then handle_inbound_presence_subscriptions_and_probes(origin, stanza, from_bare, to_bare, core_route_stanza); - else -- sender is available or unavailable + elseif not resource then -- sender is available or unavailable or error for _, session in pairs(user.sessions) do -- presence broadcast to all user resources. if session.full_jid then -- FIXME should this be just for available resources? Do we need to check subscription? stanza.attr.to = session.full_jid; -- reset at the end of function @@ -244,8 +244,8 @@ -- TODO deal with storage errors end end - else - -- TODO send IQ error + elseif stanza.attr.type == "get" or stanza.attr.type == "set" then + origin.send(st.error_reply(stanza, "cancel", "service-unavailable")); end else -- User + resource is online... @@ -256,7 +256,7 @@ -- user not online if user_exists(node, host) then if stanza.name == "presence" then - if stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" then + if stanza.attr.type ~= nil and stanza.attr.type ~= "unavailable" and stanza.attr.type ~= "error" then handle_inbound_presence_subscriptions_and_probes(origin, stanza, from_bare, to_bare, core_route_stanza); else -- TODO send unavailable presence or unsubscribed
--- a/plugins/mod_debug.lua Wed Apr 08 23:20:22 2009 +0100 +++ b/plugins/mod_debug.lua Wed Apr 08 23:20:45 2009 +0100 @@ -10,7 +10,7 @@ local connlisteners_register = require "net.connlisteners".register; -local console_listener = { default_port = 5582; default_mode = "*l"; }; +local console_listener = { default_port = 5583; default_mode = "*l"; }; local sha256, missingglobal = require "util.hashes".sha256; @@ -102,7 +102,8 @@ end -connlisteners_register('console', console_listener); +connlisteners_register('debug', console_listener); +require "net.connlisteners".start("debug"); -- Console commands -- -- These are simple commands, not valid standalone in Lua