CCacheDataClassicIntf.cp [plain text]
/*
* CCICCacheDataAEStubs.cp
*
* $Header: /cvs/kfm/KerberosFramework/CredentialsCache/Sources/ClassicImplementations/CCacheDataClassicIntf.cp,v 1.5 2003/03/17 20:46:33 lxs Exp $
*/
#include "CCacheDataClassicIntf.h"
#include "CCacheDataMachIPCStubs.h"
#include "CredsDataMachIPCStubs.h"
#include "FlattenCredentials.h"
CCICCacheDataClassicInterface::CCICCacheDataClassicInterface (
CCIUInt32 inEventID,
const AppleEvent* inEvent,
AppleEvent* outReply):
CCIClassicInterface (inEventID, inEvent, outReply) {
}
CCICCacheDataClassicInterface::~CCICCacheDataClassicInterface () {
}
void
CCICCacheDataClassicInterface::HandleEvent () {
switch (mEventID) {
case ccClassic_CCache_Destroy:
Destroy ();
break;
case ccClassic_CCache_SetDefault:
SetDefault ();
break;
case ccClassic_CCache_SetPrincipal:
SetPrincipal ();
break;
#if CCache_v2_compat
case ccClassic_CCache_CompatSetPrincipal:
CompatSetPrincipal ();
break;
#endif
case ccClassic_CCache_StoreConvertedCredentials:
StoreCredentials ();
break;
#if CCache_v2_compat
case ccClassic_CCache_CompatStoreConvertedCredentials:
StoreCredentials ();
break;
#endif
case ccClassic_CCache_RemoveCredentials:
RemoveCredentials ();
break;
case ccClassic_CCache_Move:
Move ();
break;
default:
#warning do error
;
}
}
void CCICCacheDataClassicInterface::Destroy ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
ccache.Destroy ();
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::SetDefault ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
ccache.SetDefault ();
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::SetPrincipal ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
CCIUInt32 version;
mReceiveBuffer.Get (version);
std::string principal;
mReceiveBuffer.Get (principal);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
ccache.SetPrincipal (version, principal);
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::CompatSetPrincipal ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
CCIUInt32 version;
mReceiveBuffer.Get (version);
std::string principal;
mReceiveBuffer.Get (principal);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
ccache.CompatSetPrincipal (version, principal);
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::StoreCredentials ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
std::strstream flatCredentials;
mReceiveBuffer.Get (flatCredentials);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
ccache.StoreFlattenedCredentials (flatCredentials);
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::CompatStoreCredentials ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
std::strstream flatCredentials;
mReceiveBuffer.Get (flatCredentials);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
ccache.StoreFlattenedCredentials (flatCredentials);
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::RemoveCredentials ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
CCIUniqueID credentialsID;
mReceiveBuffer.Get (credentialsID);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
CCICredentialsDataMachIPCStub credentials (credentialsID, ccapi_version_4);
ccache.RemoveCredentials (credentials);
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}
void CCICCacheDataClassicInterface::Move ()
{
CCIResult result = ccNoError;
try {
ExtractMessage ();
CCIUInt32 serverID;
mReceiveBuffer.Get (serverID);
CheckServerID (serverID);
CCIUInt32 seqNo;
mReceiveBuffer.Get (seqNo);
CCIUniqueID ccacheID;
mReceiveBuffer.Get (ccacheID);
CCIUniqueID destinationID;
mReceiveBuffer.Get (destinationID);
CCICCacheDataMachIPCStub ccache (ccacheID, ccapi_version_4);
CCICCacheDataMachIPCStub destination (destinationID, ccapi_version_4);
ccache.Move (destination);
mSendBuffer.Put (result);
AddDiffsToReply (mSendBuffer, serverID, seqNo);
PrepareReply ();
return;
} CatchForClassicReturn_ (result);
mSendBuffer.Reset ();
mSendBuffer.Put (result);
PrepareReply ();
}