Software /
code /
prosody
Changeset
6843:161cccfdf015
Merge 0.10->trunk
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 22 Sep 2015 01:31:52 +0200 |
parents | 6839:298182fd2387 (current diff) 6842:eed846384178 (diff) |
children | 6847:c314e9142e9d |
files | plugins/mod_private.lua plugins/mod_pubsub/mod_pubsub.lua |
diffstat | 7 files changed, 80 insertions(+), 39 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile Sat Sep 19 17:51:20 2015 +0200 +++ b/Makefile Tue Sep 22 01:31:52 2015 +0200 @@ -66,7 +66,7 @@ sed 's|certs/|$(INSTALLEDCONFIG)/certs/|' $^ > $@ prosody.version: $(wildcard prosody.release .hg/dirstate) - test -d .hg/dirstate && \ + test -f .hg/dirstate && \ hexdump -n6 -e'6/1 "%02x"' .hg/dirstate > $@ || true test -f prosody.release && \ cp prosody.release $@ || true
--- a/core/sessionmanager.lua Sat Sep 19 17:51:20 2015 +0200 +++ b/core/sessionmanager.lua Tue Sep 22 01:31:52 2015 +0200 @@ -37,9 +37,15 @@ if t then t = filter("bytes/out", tostring(t)); if t then - return w(conn, t); + local ret, err = w(conn, t); + if not ret then + session.log("error", "Write-error: %s", tostring(err)); + return false; + end + return true; end end + return true; end session.ip = conn:ip(); local conn_name = "c2s"..tostring(session):match("[a-f0-9]+$");
--- a/plugins/adhoc/mod_adhoc.lua Sat Sep 19 17:51:20 2015 +0200 +++ b/plugins/adhoc/mod_adhoc.lua Tue Sep 22 01:31:52 2015 +0200 @@ -34,7 +34,8 @@ reply:tag("feature", { var = "jabber:x:data" }):up(); event.exists = true; else - return origin.send(st.error_reply(stanza, "auth", "forbidden", "This item is not available to you")); + origin.send(st.error_reply(stanza, "auth", "forbidden", "This item is not available to you")); + return true; end elseif node == xmlns_cmd then reply:tag("identity", { name = "Ad-Hoc Commands", @@ -87,7 +88,8 @@ return true end -- User has permission now execute the command - return adhoc_handle_cmd(commands[node], origin, stanza); + adhoc_handle_cmd(commands[node], origin, stanza); + return true; end end end, 500);
--- a/plugins/mod_carbons.lua Sat Sep 19 17:51:20 2015 +0200 +++ b/plugins/mod_carbons.lua Tue Sep 22 01:31:52 2015 +0200 @@ -14,7 +14,8 @@ local state = stanza.tags[1].name; module:log("debug", "%s %sd carbons", origin.full_jid, state); origin.want_carbons = state == "enable" and stanza.tags[1].attr.xmlns; - return origin.send(st.reply(stanza)); + origin.send(st.reply(stanza)); + return true; end module:hook("iq-set/self/"..xmlns_carbons..":disable", toggle_carbons); module:hook("iq-set/self/"..xmlns_carbons..":enable", toggle_carbons);
--- a/plugins/mod_private.lua Sat Sep 19 17:51:20 2015 +0200 +++ b/plugins/mod_private.lua Tue Sep 22 01:31:52 2015 +0200 @@ -17,19 +17,21 @@ local origin, stanza = event.origin, event.stanza; local query = stanza.tags[1]; if #query.tags ~= 1 then - return origin.send(st.error_reply(stanza, "modify", "bad-format")); + origin.send(st.error_reply(stanza, "modify", "bad-format")); + return true; end local tag = query.tags[1]; local key = tag.name..":"..tag.attr.xmlns; if stanza.attr.type == "get" then local data, err = private_storage:get(origin.username, key); if data then - return origin.send(st.reply(stanza):query("jabber:iq:private"):add_child(st.deserialize(data))); + origin.send(st.reply(stanza):query("jabber:iq:private"):add_child(st.deserialize(data))); elseif err then - return origin.send(st.error_reply(stanza, "wait", "internal-server-error", err)); + origin.send(st.error_reply(stanza, "wait", "internal-server-error", err)); else - return origin.send(st.reply(stanza):add_child(query)); + origin.send(st.reply(stanza):add_child(query)); end + return true; else -- type == set local data; if #tag ~= 0 then @@ -38,8 +40,10 @@ -- TODO delete datastore if empty local ok, err = private_storage:set(origin.username, key, data); if not ok then - return origin.send(st.error_reply(stanza, "wait", "internal-server-error", err)); + origin.send(st.error_reply(stanza, "wait", "internal-server-error", err)); + return true; end - return origin.send(st.reply(stanza)); + origin.send(st.reply(stanza)); + return true; end end);
--- a/plugins/mod_pubsub/mod_pubsub.lua Sat Sep 19 17:51:20 2015 +0200 +++ b/plugins/mod_pubsub/mod_pubsub.lua Tue Sep 22 01:31:52 2015 +0200 @@ -28,7 +28,8 @@ local pubsub = stanza.tags[1]; local action = pubsub.tags[1]; if not action then - return origin.send(st.error_reply(stanza, "cancel", "bad-request")); + origin.send(st.error_reply(stanza, "cancel", "bad-request")); + return true; end local handler = handlers[stanza.attr.type.."_"..action.name]; if handler then
--- a/plugins/mod_pubsub/pubsub.lib.lua Sat Sep 19 17:51:20 2015 +0200 +++ b/plugins/mod_pubsub/pubsub.lib.lua Tue Sep 22 01:31:52 2015 +0200 @@ -50,11 +50,13 @@ local id = item and item.attr.id; if not node then - return origin.send(pubsub_error_reply(stanza, "nodeid-required")); + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; end local ok, results = service:get_items(node, stanza.attr.from, id); if not ok then - return origin.send(pubsub_error_reply(stanza, results)); + origin.send(pubsub_error_reply(stanza, results)); + return true; end local data = st.stanza("items", { node = node }); @@ -69,14 +71,16 @@ else reply = pubsub_error_reply(stanza, "item-not-found"); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.get_subscriptions(origin, stanza, subscriptions, service) local node = subscriptions.attr.node; local ok, ret = service:get_subscriptions(node, stanza.attr.from, stanza.attr.from); if not ok then - return origin.send(pubsub_error_reply(stanza, ret)); + origin.send(pubsub_error_reply(stanza, ret)); + return true; end local reply = st.reply(stanza) :tag("pubsub", { xmlns = xmlns_pubsub }) @@ -84,7 +88,8 @@ for _, sub in ipairs(ret) do reply:tag("subscription", { node = sub.node, jid = sub.jid, subscription = 'subscribed' }):up(); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_create(origin, stanza, create, service) @@ -110,7 +115,8 @@ reply = pubsub_error_reply(stanza, ret); end end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_delete(origin, stanza, delete, service) @@ -118,7 +124,8 @@ local reply, notifier; if not node then - return origin.send(pubsub_error_reply(stanza, "nodeid-required")); + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; end local ok, ret = service:delete(node, stanza.attr.from); if ok then @@ -126,13 +133,15 @@ else reply = pubsub_error_reply(stanza, ret); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_subscribe(origin, stanza, subscribe, service) local node, jid = subscribe.attr.node, subscribe.attr.jid; if not (node and jid) then - return origin.send(pubsub_error_reply(stanza, jid and "nodeid-required" or "invalid-jid")); + origin.send(pubsub_error_reply(stanza, jid and "nodeid-required" or "invalid-jid")); + return true; end --[[ local options_tag, options = stanza.tags[1]:get_child("options"), nil; @@ -163,7 +172,8 @@ function handlers.set_unsubscribe(origin, stanza, unsubscribe, service) local node, jid = unsubscribe.attr.node, unsubscribe.attr.jid; if not (node and jid) then - return origin.send(pubsub_error_reply(stanza, jid and "nodeid-required" or "invalid-jid")); + origin.send(pubsub_error_reply(stanza, jid and "nodeid-required" or "invalid-jid")); + return true; end local ok, ret = service:remove_subscription(node, stanza.attr.from, jid); local reply; @@ -172,13 +182,15 @@ else reply = pubsub_error_reply(stanza, ret); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_publish(origin, stanza, publish, service) local node = publish.attr.node; if not node then - return origin.send(pubsub_error_reply(stanza, "nodeid-required")); + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; end local item = publish:get_child("item"); local id = (item and item.attr.id); @@ -198,7 +210,8 @@ else reply = pubsub_error_reply(stanza, ret); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_retract(origin, stanza, retract, service) @@ -207,7 +220,8 @@ local item = retract:get_child("item"); local id = item and item.attr.id if not (node and id) then - return origin.send(pubsub_error_reply(stanza, node and "item-not-found" or "nodeid-required")); + origin.send(pubsub_error_reply(stanza, node and "item-not-found" or "nodeid-required")); + return true; end local reply, notifier; if notify then @@ -219,7 +233,8 @@ else reply = pubsub_error_reply(stanza, ret); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_purge(origin, stanza, purge, service) @@ -227,7 +242,8 @@ notify = (notify == "1") or (notify == "true"); local reply; if not node then - return origin.send(pubsub_error_reply(stanza, "nodeid-required")); + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; end local ok, ret = service:purge(node, stanza.attr.from, notify); if ok then @@ -235,48 +251,58 @@ else reply = pubsub_error_reply(stanza, ret); end - return origin.send(reply); + origin.send(reply); + return true; end function handlers.get_configure(origin, stanza, config, service) local node = config.attr.node; if not node then - return origin.send(pubsub_error_reply(stanza, "nodeid-required")); + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; end if not service:may(node, stanza.attr.from, "configure") then - return origin.send(pubsub_error_reply(stanza, "forbidden")); + origin.send(pubsub_error_reply(stanza, "forbidden")); + return true; end local node_obj = service.nodes[node]; if not node_obj then - return origin.send(pubsub_error_reply(stanza, "item-not-found")); + origin.send(pubsub_error_reply(stanza, "item-not-found")); + return true; end local reply = st.reply(stanza) :tag("pubsub", { xmlns = xmlns_pubsub_owner }) :tag("configure", { node = node }) :add_child(node_config_form:form(node_obj.config)); - return origin.send(reply); + origin.send(reply); + return true; end function handlers.set_configure(origin, stanza, config, service) local node = config.attr.node; if not node then - return origin.send(pubsub_error_reply(stanza, "nodeid-required")); + origin.send(pubsub_error_reply(stanza, "nodeid-required")); + return true; end if not service:may(node, stanza.attr.from, "configure") then - return origin.send(pubsub_error_reply(stanza, "forbidden")); + origin.send(pubsub_error_reply(stanza, "forbidden")); + return true; end local new_config, err = node_config_form:data(config.tags[1]); if not new_config then - return origin.send(st.error_reply(stanza, "modify", "bad-request", err)); + origin.send(st.error_reply(stanza, "modify", "bad-request", err)); + return true; end local ok, err = service:set_node_config(node, stanza.attr.from, new_config); if not ok then - return origin.send(pubsub_error_reply(stanza, err)); + origin.send(pubsub_error_reply(stanza, err)); + return true; end - return origin.send(st.reply(stanza)); + origin.send(st.reply(stanza)); + return true; end function handlers.get_default(origin, stanza, default, service) @@ -284,7 +310,8 @@ :tag("pubsub", { xmlns = xmlns_pubsub_owner }) :tag("default") :add_child(node_config_form:form(service.node_defaults)); - return origin.send(reply); + origin.send(reply); + return true; end return _M;