Example #1
0
 * Abstract:
 *
 *        Likewise Site Manager
 * 
 *        Inter-process communication (Server)
 *
 *        Global variables
 *
 * Authors: Krishna Ganugapati ([email protected])
 *          Sriram Nambakam ([email protected])
 */
#include "includes.h"

static LWMsgDispatchSpec gMessageHandlers[] =
{
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DC_TIME, LWNetSrvIpcGetDCTime),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DC_NAME, LWNetSrvIpcGetDCName),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DOMAIN_CONTROLLER, LWNetSrvIpcGetDomainController),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DC_LIST, LWNetSrvIpcGetDCList),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_RESOLVE_NAME, LWNetSrvIpcResolveName),
    LWMSG_DISPATCH_END
};

LWMsgDispatchSpec*
LWNetSrvGetDispatchSpec(
    void
    )
{
    return gMessageHandlers;
}
Example #2
0
 * Abstract:
 *
 *        Registry
 *
 *        Server API main
 *
 * Authors: Krishna Ganugapati ([email protected])
 *          Sriram Nambakam ([email protected])
 *          Wei Fu ([email protected])
 */
#include "api.h"


static LWMsgDispatchSpec gMessageHandlers[] =
{
    LWMSG_DISPATCH_BLOCK(REG_Q_ENUM_ROOT_KEYSW, RegSrvIpcEnumRootKeysW),
    LWMSG_DISPATCH_BLOCK(REG_Q_ENUM_VALUEW, RegSrvIpcEnumValueW),
    LWMSG_DISPATCH_BLOCK(REG_Q_GET_VALUEW, RegSrvIpcGetValueW),
    LWMSG_DISPATCH_BLOCK(REG_Q_OPEN_KEYW_EX, RegSrvIpcOpenKeyExW),
    LWMSG_DISPATCH_BLOCK(REG_Q_SET_VALUEW_EX, RegSrvIpcSetValueExW),
    LWMSG_DISPATCH_BLOCK(REG_Q_CREATE_KEY_EX, RegSrvIpcCreateKeyEx),
    LWMSG_DISPATCH_BLOCK(REG_Q_CLOSE_KEY, RegSrvIpcCloseKey),
    LWMSG_DISPATCH_BLOCK(REG_Q_DELETE_KEY, RegSrvIpcDeleteKey),
    LWMSG_DISPATCH_BLOCK(REG_Q_DELETE_KEY_VALUE, RegSrvIpcDeleteKeyValue),
    LWMSG_DISPATCH_BLOCK(REG_Q_DELETE_TREE, RegSrvIpcDeleteTree),
    LWMSG_DISPATCH_BLOCK(REG_Q_DELETE_VALUE, RegSrvIpcDeleteValue),
    LWMSG_DISPATCH_BLOCK(REG_Q_ENUM_KEYW_EX, RegSrvIpcEnumKeyExW),
    LWMSG_DISPATCH_BLOCK(REG_Q_QUERY_INFO_KEYW, RegSrvIpcQueryInfoKeyW),
    LWMSG_DISPATCH_BLOCK(REG_Q_QUERY_MULTIPLE_VALUES, RegSrvIpcQueryMultipleValues),
    LWMSG_DISPATCH_BLOCK(REG_Q_SET_KEY_SECURITY, RegSrvIpcSetKeySecurity),
    LWMSG_DISPATCH_BLOCK(REG_Q_GET_KEY_SECURITY, RegSrvIpcGetKeySecurity),
Example #3
0
        sreply->err = errno;
        out->tag = FSERV_ERROR_RES;
        out->data = sreply;
    }
    else
    {
        out->tag = FSERV_VOID_RES;
        out->data = NULL;
    }

error:

    return status;
}

/* Dispatch spec */
static LWMsgDispatchSpec fserv_dispatch[] =
{
    LWMSG_DISPATCH_BLOCK(FSERV_OPEN_REQ, fserv_open_srv),
    LWMSG_DISPATCH_BLOCK(FSERV_WRITE_REQ, fserv_write_srv),
    LWMSG_DISPATCH_BLOCK(FSERV_READ_REQ, fserv_read_srv),
    LWMSG_DISPATCH_BLOCK(FSERV_CLOSE_REQ, fserv_close_srv),
    LWMSG_DISPATCH_END
};

LWMsgDispatchSpec*
fserver_get_dispatch(void)
{
    return fserv_dispatch;
}
Example #4
0
 * Abstract:
 *
 *        Likewise Site Manager
 * 
 *        Inter-process communication (Server)
 *
 *        Global variables
 *
 * Authors: Krishna Ganugapati ([email protected])
 *          Sriram Nambakam ([email protected])
 */
#include "includes.h"

static LWMsgDispatchSpec gMessageHandlers[] =
{
    LWMSG_DISPATCH_BLOCK(LWNET_Q_SET_LOG_LEVEL, LWNetSrvIpcSetLogLevel),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_LOG_INFO, LWNetSrvIpcGetLogInfo),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DC_TIME, LWNetSrvIpcGetDCTime),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DC_NAME, LWNetSrvIpcGetDCName),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DOMAIN_CONTROLLER, LWNetSrvIpcGetDomainController),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_GET_DC_LIST, LWNetSrvIpcGetDCList),
    LWMSG_DISPATCH_BLOCK(LWNET_Q_RESOLVE_NAME, LWNetSrvIpcResolveName),
    LWMSG_DISPATCH_END
};

LWMsgDispatchSpec*
LWNetSrvGetDispatchSpec(
    void
    )
{
    return gMessageHandlers;
    pthread_mutex_lock(&handle->lock);
    reply->counter = handle->counter;
    pthread_mutex_unlock(&handle->lock);
    
    pthread_mutex_destroy(&handle->lock);
    lwmsg_session_unregister_handle(session, handle);

    reply_msg->tag = COUNTER_CLOSE_SUCCESS;
    reply_msg->data = reply;

    return status;
}

LWMsgDispatchSpec counter_dispatch[] =
{
    LWMSG_DISPATCH_BLOCK(COUNTER_OPEN, counter_srv_open),
    LWMSG_DISPATCH_BLOCK(COUNTER_ADD, counter_srv_add),
    LWMSG_DISPATCH_BLOCK(COUNTER_READ, counter_srv_read),
    LWMSG_DISPATCH_BLOCK(COUNTER_CLOSE, counter_srv_close),
    LWMSG_DISPATCH_END
};

typedef struct
{
    LWMsgPeer* client;
    CounterHandle* handle;
    int iters;
    pthread_mutex_t lock;
    pthread_cond_t event;
    int volatile go;
} Data;