diff options
-rw-r--r-- | plugins/mod_pep.lua | 3 | ||||
-rwxr-xr-x | prosody | 4 | ||||
-rw-r--r-- | util/muc.lua | 4 |
3 files changed, 6 insertions, 5 deletions
diff --git a/plugins/mod_pep.lua b/plugins/mod_pep.lua index 8cc4aedf..768d4a4a 100644 --- a/plugins/mod_pep.lua +++ b/plugins/mod_pep.lua @@ -30,6 +30,7 @@ module:add_feature("http://jabber.org/protocol/pubsub#publish"); local function publish(session, node, item) local disable = #item.tags ~= 1 or #item.tags[1].tags == 0; + if #item.tags == 0 then item.name = "retract"; end local bare = session.username..'@'..session.host; local stanza = st.message({from=bare, type='headline'}) :tag('event', {xmlns='http://jabber.org/protocol/pubsub#event'}) @@ -128,7 +129,7 @@ module:hook("iq/bare/http://jabber.org/protocol/pubsub:pubsub", function(event) local payload = stanza.tags[1]; if payload.name == 'pubsub' then -- <pubsub xmlns='http://jabber.org/protocol/pubsub'> payload = payload.tags[1]; - if payload and payload.name == 'publish' and payload.attr.node then -- <publish node='http://jabber.org/protocol/tune'> + if payload and (payload.name == 'publish' or payload.name == 'retract') and payload.attr.node then -- <publish node='http://jabber.org/protocol/tune'> local node = payload.attr.node; payload = payload.tags[1]; if payload then -- <item> @@ -9,9 +9,9 @@ -- Will be modified by configure script if run -- -CFG_SOURCEDIR=nil; +CFG_SOURCEDIR=os.getenv("PROSODY_SRCDIR"); CFG_CONFIGDIR=os.getenv("PROSODY_CFGDIR"); -CFG_PLUGINDIR=nil; +CFG_PLUGINDIR=os.getenv("PROSODY_PLUGINDIR"); CFG_DATADIR=os.getenv("PROSODY_DATADIR"); -- -- -- -- -- -- -- ---- -- -- -- -- -- -- -- -- diff --git a/util/muc.lua b/util/muc.lua index b3673f63..badcffce 100644 --- a/util/muc.lua +++ b/util/muc.lua @@ -209,7 +209,7 @@ local function room_handle_to_occupant(self, origin, stanza) -- PM, vCards, etc else -- change nick if self._participants[to] then log("debug", "%s couldn't change nick", current_nick); - origin.send(st.error_reply(stanza, "cancel", "conflict")); + origin.send(st.error_reply(stanza, "cancel", "conflict"):tag("x", {xmlns = "http://jabber.org/protocol/muc"})); else local data = self._participants[current_nick]; local to_nick = select(3, jid_split(to)); @@ -240,7 +240,7 @@ local function room_handle_to_occupant(self, origin, stanza) -- PM, vCards, etc end if not new_nick then log("debug", "%s couldn't join due to nick conflict: %s", from, to); - origin.send(st.error_reply(stanza, "cancel", "conflict")); + origin.send(st.error_reply(stanza, "cancel", "conflict"):tag("x", {xmlns = "http://jabber.org/protocol/muc"})); else log("debug", "%s joining as %s", from, to); local data; |