Mercurial > prosody-modules
comparison mod_storage_mongodb/mod_storage_mongodb.lua @ 509:bf2ad6d6c778
mod_storage_mongodb: (un)lock globals around require; only auth if we need to
author | James Callahan <james@chatid.com> |
---|---|
date | Mon, 19 Dec 2011 10:36:50 +1100 |
parents | 9831506dcfd6 |
children | 2469f779b3f7 |
comparison
equal
deleted
inserted
replaced
508:9831506dcfd6 | 509:bf2ad6d6c778 |
---|---|
1 local next = next; | 1 local next = next; |
2 local setmetatable = setmetatable; | 2 local setmetatable = setmetatable; |
3 | 3 |
4 local params = assert ( module:get_option("mongodb") , "mongodb configuration not found" ); | 4 local params = assert ( module:get_option("mongodb") , "mongodb configuration not found" ); |
5 | 5 |
6 prosody.unlock_globals(); | |
6 local mongo = require "mongo"; | 7 local mongo = require "mongo"; |
8 prosody.lock_globals(); | |
7 | 9 |
8 local conn | 10 local conn |
9 | 11 |
10 local keyval_store = {}; | 12 local keyval_store = {}; |
11 keyval_store.__index = keyval_store; | 13 keyval_store.__index = keyval_store; |
46 | 48 |
47 function driver:open(store, typ) | 49 function driver:open(store, typ) |
48 if not conn then | 50 if not conn then |
49 conn = assert ( mongo.Connection.New ( true ) ); | 51 conn = assert ( mongo.Connection.New ( true ) ); |
50 assert ( conn:connect ( params.server ) ); | 52 assert ( conn:connect ( params.server ) ); |
51 assert ( conn:auth ( params ) ); | 53 if params.username then |
54 assert ( conn:auth ( params ) ); | |
55 end | |
52 end | 56 end |
53 | 57 |
54 if not typ then -- default key-value store | 58 if not typ then -- default key-value store |
55 return setmetatable({ store = store }, keyval_store); | 59 return setmetatable({ store = store }, keyval_store); |
56 end; | 60 end; |