From 15b3071bebceb195dbf057093dcddf1109b7d4eb Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 20 Jun 2014 16:10:04 +0200 Subject: mod_presence: Fire a presence/initial event on initial presence --- plugins/mod_presence.lua | 3 +++ 1 file changed, 3 insertions(+) (limited to 'plugins') diff --git a/plugins/mod_presence.lua b/plugins/mod_presence.lua index 2899bd7e..32a25b59 100644 --- a/plugins/mod_presence.lua +++ b/plugins/mod_presence.lua @@ -137,6 +137,9 @@ function handle_normal_presence(origin, stanza) origin.directed = nil; end else + if not origin.presence then + module:fire_event("presence/initial", { origin = origin, stanza = stanza } ); + end origin.presence = stanza; stanza:tag("delay", { xmlns = "urn:xmpp:delay", from = host, stamp = datetime.datetime() }):up(); if origin.priority ~= priority then -- cgit v1.2.3 From 578ceff99eb7d50617f715f7e53f8e59387d758b Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 20 Jun 2014 16:16:33 +0200 Subject: mod_storage_sql2: Don't ignore failure in keyval_store:get() (thanks daurnimator) --- plugins/mod_storage_sql2.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/mod_storage_sql2.lua b/plugins/mod_storage_sql2.lua index 249c72a7..0531c905 100644 --- a/plugins/mod_storage_sql2.lua +++ b/plugins/mod_storage_sql2.lua @@ -198,7 +198,9 @@ local keyval_store = {}; keyval_store.__index = keyval_store; function keyval_store:get(username) user,store = username,self.store; - return select(2, engine:transaction(keyval_store_get)); + local ok, result = engine:transaction(keyval_store_get); + if not ok then return ok, result; end + return result; end function keyval_store:set(username, data) user,store = username,self.store; -- cgit v1.2.3 From 2ba9c6ce77c348bb773258c1dbd5883d7d5f5989 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 20 Jun 2014 16:22:23 +0200 Subject: mod_storage_{none,internal,sql}: Return error for unsupported (everything but keyval) store types --- plugins/mod_storage_internal.lua | 3 +++ plugins/mod_storage_none.lua | 7 +++++-- plugins/mod_storage_sql.lua | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) (limited to 'plugins') diff --git a/plugins/mod_storage_internal.lua b/plugins/mod_storage_internal.lua index 972ecbee..ade4f0a6 100644 --- a/plugins/mod_storage_internal.lua +++ b/plugins/mod_storage_internal.lua @@ -6,6 +6,9 @@ local driver = {}; local driver_mt = { __index = driver }; function driver:open(store, typ) + if typ and typ ~= "keyval" then + return nil, "unsupported-store"; + end return setmetatable({ store = store, type = typ }, driver_mt); end function driver:get(user) diff --git a/plugins/mod_storage_none.lua b/plugins/mod_storage_none.lua index 8f2d2f56..fa925b76 100644 --- a/plugins/mod_storage_none.lua +++ b/plugins/mod_storage_none.lua @@ -1,8 +1,11 @@ local driver = {}; local driver_mt = { __index = driver }; -function driver:open(store) - return setmetatable({ store = store }, driver_mt); +function driver:open(store, typ) + if typ and typ ~= "keyval" then + return nil, "unsupported-store"; + end + return setmetatable({ store = store, type = typ }, driver_mt); end function driver:get(user) return {}; diff --git a/plugins/mod_storage_sql.lua b/plugins/mod_storage_sql.lua index 7b810ab8..a5bb5bfa 100644 --- a/plugins/mod_storage_sql.lua +++ b/plugins/mod_storage_sql.lua @@ -380,10 +380,10 @@ end local driver = {}; function driver:open(store, typ) - if not typ then -- default key-value store - return setmetatable({ store = store }, keyval_store); + if typ and typ ~= "keyval" then + return nil, "unsupported-store"; end - return nil, "unsupported-store"; + return setmetatable({ store = store }, keyval_store); end function driver:stores(username) -- cgit v1.2.3