static void database_cache_try_connect(void) { memset( &memcached_data, 0, sizeof(memcached_data) ); memcached_data.mc = mc_new(); if ( memcached_data.mc ) { if ( !mc_server_add(memcached_data.mc, db_server_host, db_server_port) ) { memcached_data.active = 1; } } if ( memcached_data.active==0 ) { cw_log(LOG_WARNING,"Cannot initialize memcache for server %s:%s.\n", db_server_host, db_server_port); if ( memcached_data.mc ) mc_free(memcached_data.mc); } else { cw_log(LOG_NOTICE,"Memcache INITIALIZED\n"); } memcached_data.ctx = mc_global_ctxt(); mcm_err_filter_del(memcached_data.ctx, MCM_ERR_LVL_INFO); mcm_err_filter_del(memcached_data.ctx, MCM_ERR_LVL_NOTICE); memcached_data.ctx->mcErr = database_cache_error_handler; //ctxt->mcHashKey = hash_key; //ctxt->mcServerFind = server_find; memcached_data.has_error = 0; }
static int l_sipmemcache_server_add(lua_State *L) { struct sipmemcache *o; const char *host; const char *port; int ret; o = luaL_checkudata(L, 1, "siplua.memcache"); host = luaL_checkstring(L, 2); port = luaL_checkstring(L, 3); if (o->finalized || !o->mc) { lua_pushnil(L); } else { ret = mc_server_add(o->mc, host, port); if (ret) lua_pushboolean(L, 0); else lua_pushboolean(L, 1); } return 1; }