]>
git.saurik.com Git - apple/mdnsresponder.git/blob - mDNSWindows/DLLX/DNSSDRecord.cpp
1 /* -*- Mode: C; tab-width: 4 -*-
3 * Copyright (c) 2009 Apple Computer, Inc. All rights reserved.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 Change History (most recent first):
19 $Log: DNSSDRecord.cpp,v $
20 Revision 1.1 2009/05/26 04:43:54 herscher
21 <rdar://problem/3948252> COM component that can be used with any .NET language and VB.
27 #include "DNSSDRecord.h"
28 #include "StringServices.h"
29 #include <DebugServices.h>
34 STDMETHODIMP
CDNSSDRecord::Update(DNSSDFlags flags
, VARIANT rdata
, ULONG ttl
)
36 std::vector
< BYTE
> byteArray
;
37 const void * byteArrayPtr
= NULL
;
38 DNSServiceErrorType err
= 0;
42 // Convert the VARIANT
43 ok
= VariantToByteArray( &rdata
, byteArray
);
44 require_action( ok
, exit
, err
= kDNSServiceErr_Unknown
);
46 err
= DNSServiceUpdateRecord( m_serviceObject
->GetSubordRef(), m_rref
, flags
, ( uint16_t ) byteArray
.size(), byteArray
.size() > 0 ? &byteArray
[ 0 ] : NULL
, ttl
);
47 require_noerr( err
, exit
);
55 STDMETHODIMP
CDNSSDRecord::Remove(DNSSDFlags flags
)
57 DNSServiceErrorType err
= 0;
59 err
= DNSServiceRemoveRecord( m_serviceObject
->GetSubordRef(), m_rref
, flags
);
60 require_noerr( err
, exit
);