/***********************************************************************
 * 
 *  Copyright (C) 2005-2006 Novell, Inc. All Rights Reserved.
 *
 *  This library is free software; you can redistribute it and/or
 *  modify it under the terms of the GNU Lesser General Public
 *  License as published by the Free Software Foundation; version 2.1
 *  of the License.
 *
 *  This library is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Library Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU Lesser General Public
 *  License along with this library; if not, Novell, Inc.
 * 
 *  To contact Novell about this file by physical or electronic mail, 
 *  you may find current contact information at www.novell.com.
 * 
 ***********************************************************************/


#ifndef _SSCS_UNX_IPC_CLIENT_H_
#define _SSCS_UNX_IPC_CLIENT_H_

#ifdef SSCS_LINUX_PLAT_F
#include <sys/types.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <pwd.h>
#endif

#ifdef SSCS_LINUX_PLAT_F
#include <sys/socket.h>
#include <sys/un.h>
#include <pwd.h>
#endif
#include <wchar.h>
#include "sscs_unx_cache_defines.h"

#ifndef	_SSCS_CACHE_H
#include "../include/sscs_cache.h"
#endif
#include "../include/sscs_trans.h"

// Used for global buffers.
//#define	MIN_REQUEST_BUF_LEN		1024
//#define	MIN_REPLY_BUF_LEN		4096

// Some debug stuff
#ifdef DEBUG
#define DMSG(x)	printf x
#else
#define DMSG(x)
#endif

typedef struct ipcOpenSecretStoreReqMsg
{
	unsigned short msgid;
	unsigned int msgLen;
	unsigned int version;
	unsigned int ssNameLen;
	unsigned char ssName[0];
} IPC_OPEN_SECRETSTOR_REQ_MSG;

typedef struct ipcOpenSecretStoreResMsg
{
	unsigned short msgid;
	unsigned int msgLen;
	int retVal;
	unsigned int version;
}IPC_OPEN_SECRETSTOR_RES_MSG;

typedef struct ipcCloseSecretStoreReqMsg
{
	unsigned short msgid;
	unsigned int msgLen;
}IPC_CLOSE_SECRETSTORE_REQ_MSG;

typedef struct ipcCloseSecretStoreResMsg
{
	unsigned short msgid;
	unsigned int msgLen;
	int retVal;
}IPC_CLOSE_SECRETSTORE_RES_MSG;

typedef struct ipcRemoveSecretStoreReqMsg
{
	unsigned short msgid;
	unsigned int msgLen;
}IPC_REMOVE_SECRETSTORE_REQ_MSG;

typedef struct ipcRemoveSecretStoreResMsg
{
	unsigned short msgid;
	unsigned int msgLen;
	int retVal;
}IPC_REMOVE_SECRETSTORE_RES_MSG;

#endif //_IPC_CLIENT_H_