diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mod_presence.lua | 3 | ||||
-rw-r--r-- | plugins/mod_storage_internal.lua | 3 | ||||
-rw-r--r-- | plugins/mod_storage_none.lua | 7 | ||||
-rw-r--r-- | plugins/mod_storage_sql.lua | 6 | ||||
-rw-r--r-- | plugins/mod_storage_sql2.lua | 4 |
5 files changed, 17 insertions, 6 deletions
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 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) 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; |