From e0d69d3e10bae3f108a58c12ca6a3ac3974827d0 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 20 Mar 2012 12:11:38 +0100 Subject: ommongodb: basic error reporting --- plugins/ommongodb/ommongodb.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'plugins/ommongodb/ommongodb.c') diff --git a/plugins/ommongodb/ommongodb.c b/plugins/ommongodb/ommongodb.c index a8429b1b..a247909d 100644 --- a/plugins/ommongodb/ommongodb.c +++ b/plugins/ommongodb/ommongodb.c @@ -123,6 +123,21 @@ CODESTARTdbgPrintInstInfo ENDdbgPrintInstInfo +/* report error that occured during *last* operation + */ +static void +reportMongoError(instanceData *pData) +{ + gchar *err; + if(mongo_sync_cmd_get_last_error(pData->conn, (gchar*)pData->db, &err)) { + errmsg.LogError(0, RS_RET_ERR, "ommongodb: error: %s", err); + } else { + errmsg.LogError(0, RS_RET_ERR, "ommongodb: we had an error, but can " + "not obtain specifics"); + } +} + + /* The following function is responsible for initializing a * MySQL connection. * Initially added 2004-10-28 mmeckelein @@ -137,9 +152,10 @@ static rsRetVal initMongoDB(instanceData *pData, int bSilent) pData->conn = mongo_sync_connect(server, pData->port, TRUE); if(pData->conn == NULL) { - if(!bSilent) - errmsg.LogError(0, RS_RET_SUSPENDED, - "can not initialize MongoDB handle"); + if(!bSilent) { + reportMongoError(pData); + dbgprintf("ommongodb: can not initialize MongoDB handle"); + } ABORT_FINALIZE(RS_RET_SUSPENDED); } @@ -212,11 +228,13 @@ rsRetVal writeMongoDB_msg(msg_t *pMsg, instanceData *pData) if(doc == NULL) { dbgprintf("ommongodb: error creating BSON doc\n"); + reportMongoError(pData); ABORT_FINALIZE(RS_RET_ERR); } bson_finish(doc); if(!mongo_sync_cmd_insert(pData->conn, (char*)pData->dbNcoll, doc, NULL)) { dbgprintf("ommongodb: insert error\n"); + reportMongoError(pData); ABORT_FINALIZE(RS_RET_ERR); } -- cgit