Software / code / prosody-modules
Comparison
mod_storage_mongodb/mod_storage_mongodb.lua @ 508:9831506dcfd6
mod_storage_mongodb: move database connecting to inside driver:open
| author | James Callahan <james@chatid.com> |
|---|---|
| date | Wed, 14 Dec 2011 12:56:07 +1100 |
| parent | 507:46f578da4ff0 |
| child | 509:bf2ad6d6c778 |
comparison
equal
deleted
inserted
replaced
| 507:46f578da4ff0 | 508:9831506dcfd6 |
|---|---|
| 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 local mongo = require "mongo"; | 6 local mongo = require "mongo"; |
| 7 | 7 |
| 8 local conn = mongo.Connection.New ( true ); | 8 local conn |
| 9 conn:connect ( params.server ); | |
| 10 conn:auth ( params ); | |
| 11 | 9 |
| 12 local keyval_store = {}; | 10 local keyval_store = {}; |
| 13 keyval_store.__index = keyval_store; | 11 keyval_store.__index = keyval_store; |
| 14 | 12 |
| 15 function keyval_store:get(username) | 13 function keyval_store:get(username) |
| 45 end | 43 end |
| 46 | 44 |
| 47 local driver = { name = "mongodb" }; | 45 local driver = { name = "mongodb" }; |
| 48 | 46 |
| 49 function driver:open(store, typ) | 47 function driver:open(store, typ) |
| 48 if not conn then | |
| 49 conn = assert ( mongo.Connection.New ( true ) ); | |
| 50 assert ( conn:connect ( params.server ) ); | |
| 51 assert ( conn:auth ( params ) ); | |
| 52 end | |
| 53 | |
| 50 if not typ then -- default key-value store | 54 if not typ then -- default key-value store |
| 51 return setmetatable({ store = store }, keyval_store); | 55 return setmetatable({ store = store }, keyval_store); |
| 52 end; | 56 end; |
| 53 return nil, "unsupported-store"; | 57 return nil, "unsupported-store"; |
| 54 end | 58 end |