huntlabs / libmemcached

A wrapper library for Memcached with D
4 stars 1 forks source link

memcached_set of libmemcached failing #3

Open Giri9598 opened 5 years ago

Giri9598 commented 5 years ago

Hi, I am new to libmemcached and facing below issue at the line memcached_set (), please help me if someone has solution to it Error: Couldn't store key: getaddrinfo() or getnameinfo() HOSTNAME LOOKUP FAILURE

include "..\libmemcached-1.0\memcached.h"

typedef memcached_st(__cdecl MYPROC)(memcached_st); typedef memcached_server_list_st(__cdecl mem_server_lis_app)(memcached_server_list_st, const char , in_port_t, memcached_return_t ); typedef memcached_return_t(cdecl memc_server_push)(memcached_st , const memcached_server_list_st); typedef const char* (cdecl memcached_err)(const memcached_st , memcached_return_t ); typedef memcached_return_t(__cdecl memcach_set)(memcached_st ptr, const char key, size_t key_length, const char , size_t, time_t, uint32_t);

int main() { struct memcached_server_st servers = NULL; struct memcached_st memc=NULL; memcached_return_t rc; char key = (char)"keystring"; char value = (char)"keyvalue"; char *retrieved_value; size_t value_length; uint32_t flags;

HINSTANCE hinstLib;

BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;

// Get a handle to the DLL module.

hinstLib = LoadLibrary(TEXT("libmemcached.dll"));

if (hinstLib != NULL)
{

    MYPROC ProcAdd;
    ProcAdd = (MYPROC)GetProcAddress(hinstLib, "memcached_create");
    // If the function address is valid, call the function.
    if (NULL != ProcAdd)
    {
        fRunTimeLinkSuccess = TRUE;
        memc = (ProcAdd)(NULL);
    }

    mem_server_lis_app mem_ser_lis_app;
    mem_ser_lis_app = (mem_server_lis_app)GetProcAddress(hinstLib, "memcached_server_list_append");
    if (NULL != mem_ser_lis_app)
    {
        servers = mem_ser_lis_app(servers, "127.0.0.1", 11211, &rc);
    }

    memc_server_push memc_serv_push;
    memc_serv_push = (memc_server_push)GetProcAddress(hinstLib, "memcached_server_push");
    if (NULL != memc_serv_push)
    {
        rc = memc_serv_push(memc, servers);
    }

    memcached_err err;
    err= (memcached_err)GetProcAddress(hinstLib, "memcached_strerror");
    if (rc == MEMCACHED_SUCCESS)
        fprintf(stderr, "Added server successfully\n");
    else
        fprintf(stderr, "Couldn't add server: %s\n", err(memc, rc));

    memcach_set memcachSet;
    memcachSet= (memcach_set)GetProcAddress(hinstLib, "memcached_set");
    rc = memcachSet(memc, key, strlen(key), value, strlen(value), (time_t)0, (uint32_t)0);
    if (rc == MEMCACHED_SUCCESS)
        fprintf(stderr, "Key stored successfully\n");
    else
        fprintf(stderr, "Couldn't store key: %s\n", err(memc, rc));

}

Sleep(4000);
fFreeResult = FreeLibrary(hinstLib);
return 0;

}