]> git.saurik.com Git - apple/security.git/blame - cdsa/cdsa_utilities/DbName.cpp
Security-30.1.tar.gz
[apple/security.git] / cdsa / cdsa_utilities / DbName.cpp
CommitLineData
bac41a7b
A
1/*
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
3 *
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
8 * using this file.
9 *
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
16 */
17
18
19#ifdef __MWERKS__
20#define _CPP_DBNAME
21#endif
22#include <Security/DbName.h>
23
24#include <Security/utilities.h>
25
26CssmNetAddress::CssmNetAddress(CSSM_DB_RECORDTYPE inAddressType, const CssmData &inAddress)
27{
28 AddressType = inAddressType;
29 Address.Length = inAddress.Length;
30 if (Address.Length > 0)
31 {
32 Address.Data = new uint8[Address.Length];
33 memcpy (Address.Data, inAddress.Data, Address.Length);
34 }
35 else
36 Address.Data = NULL;
37}
38
39CssmNetAddress::CssmNetAddress(const CSSM_NET_ADDRESS &other)
40{
41 AddressType = other.AddressType;
42 Address.Length = other.Address.Length;
43 if (Address.Length > 0)
44 {
45 Address.Data = new uint8[Address.Length];
46 memcpy (Address.Data, other.Address.Data, Address.Length);
47 }
48 else
49 Address.Data = NULL;
50}
51
52CssmNetAddress::~CssmNetAddress()
53{
54 if (Address.Length > 0)
55 delete Address.Data;
56}
57
58DbName::DbName(const char *inDbName, const CSSM_NET_ADDRESS *inDbLocation)
59:mDbName(&Required(inDbName)),
60mDbLocation(nil)
61{
62 if (inDbLocation)
63 {
64 mDbLocation = new CssmNetAddress(*inDbLocation);
65 }
66}
67
68DbName::DbName(const DbName &other)
69:mDbName(other.mDbName),
70mDbLocation(nil)
71{
72 if (other.mDbLocation)
73 {
74 mDbLocation = new CssmNetAddress(*other.mDbLocation);
75 }
76}
77
78DbName &
79DbName::operator =(const DbName &other)
80{
81 mDbName = other.mDbName;
82 if (other.mDbLocation)
83 {
84 mDbLocation = new CssmNetAddress(*other.mDbLocation);
85 }
86
87 return *this;
88}
89
90DbName::~DbName()
91{
92 if (mDbLocation)
93 {
94 delete mDbLocation;
95 }
96}