#ifdef __MWERKS__
#define _CPP_DBNAME
#endif
#include <Security/DbName.h>
#include <Security/utilities.h>
CssmNetAddress::CssmNetAddress(CSSM_DB_RECORDTYPE inAddressType, const CssmData &inAddress)
{
AddressType = inAddressType;
Address.Length = inAddress.Length;
if (Address.Length > 0)
{
Address.Data = new uint8[Address.Length];
memcpy (Address.Data, inAddress.Data, Address.Length);
}
else
Address.Data = NULL;
}
CssmNetAddress::CssmNetAddress(const CSSM_NET_ADDRESS &other)
{
AddressType = other.AddressType;
Address.Length = other.Address.Length;
if (Address.Length > 0)
{
Address.Data = new uint8[Address.Length];
memcpy (Address.Data, other.Address.Data, Address.Length);
}
else
Address.Data = NULL;
}
CssmNetAddress::~CssmNetAddress()
{
if (Address.Length > 0)
delete Address.Data;
}
DbName::DbName(const char *inDbName, const CSSM_NET_ADDRESS *inDbLocation)
:mDbName(&Required(inDbName)),
mDbLocation(nil)
{
if (inDbLocation)
{
mDbLocation = new CssmNetAddress(*inDbLocation);
}
}
DbName::DbName(const DbName &other)
:mDbName(other.mDbName),
mDbLocation(nil)
{
if (other.mDbLocation)
{
mDbLocation = new CssmNetAddress(*other.mDbLocation);
}
}
DbName &
DbName::operator =(const DbName &other)
{
mDbName = other.mDbName;
if (other.mDbLocation)
{
mDbLocation = new CssmNetAddress(*other.mDbLocation);
}
return *this;
}
DbName::~DbName()
{
if (mDbLocation)
{
delete mDbLocation;
}
}