int mongo_util_pool_refresh(mongo_server *server, time_t timeout TSRMLS_DC) { if (server->connected) { return SUCCESS; } // make sure we're disconnected before reconnecting mongo_util_pool_close(server, CHECK_CONNS TSRMLS_CC); // pass the reduced timeout variable we had set stack_monitor *monitor; if ((monitor = mongo_util_pool__get_monitor(server TSRMLS_CC)) == 0) { return FAILURE; } timeout = (monitor->timeout > 0) ? monitor->timeout : MONGO_RS_TIMEOUT; if (mongo_util_pool_init(server, timeout TSRMLS_CC) == FAILURE) { return FAILURE; } if (mongo_util_pool_get(server, 0 TSRMLS_CC) == FAILURE) { return FAILURE; } // if we get here, we successfully reconnected return SUCCESS; }
int mongo_util_pool_refresh(mongo_server *server, time_t timeout TSRMLS_DC) { if (server->connected) { return SUCCESS; } // make sure we're disconnected before reconnecting mongo_util_pool_close(server, CHECK_CONNS TSRMLS_CC); if (mongo_util_pool_init(server, timeout TSRMLS_CC) == FAILURE) { return FAILURE; } if (mongo_util_pool_get(server, 0 TSRMLS_CC) == FAILURE) { return FAILURE; } // if we get here, we successfully reconnected return SUCCESS; }
mongo_server* mongo_util_server_copy(const mongo_server *source, mongo_server *dest, int persist TSRMLS_DC) { // we assume if def was persistent it will still be persistent and visa versa if (dest) { php_mongo_server_free(dest, persist TSRMLS_CC); } dest = (mongo_server*)pemalloc(sizeof(mongo_server), persist); memset(dest, 0, sizeof(mongo_server)); dest->host = pestrdup(source->host, persist); dest->port = source->port; dest->label = pestrdup(source->label, persist); if (source->username && source->password && source->db) { dest->username = pestrdup(source->username, persist); dest->password = pestrdup(source->password, persist); dest->db = pestrdup(source->db, persist); } mongo_util_pool_get(dest, 0 TSRMLS_CC); return dest; }