blob: c7dabc55c8ce967b43a42b65e8eb0e8d41b50cd4 [file] [log] [blame]
/* -*- Mode: C; tab-width: 4 -*-
*
* Copyright (c) 2007-2012 Apple Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef H_HELPER_H
#define H_HELPER_H
#define kmDNSHelperServiceName "com.apple.mDNSResponderHelper"
enum mDNSDynamicStoreSetConfigKey
{
kmDNSMulticastConfig = 1,
kmDNSDynamicConfig,
kmDNSPrivateConfig,
kmDNSBackToMyMacConfig,
kmDNSSleepProxyServersState
};
enum mDNSPreferencesSetNameKey
{
kmDNSComputerName = 1,
kmDNSLocalHostName
};
enum mDNSUpDown
{
kmDNSUp = 1,
kmDNSDown
};
enum mDNSAutoTunnelSetKeysReplaceDelete
{
kmDNSAutoTunnelSetKeysReplace = 1,
kmDNSAutoTunnelSetKeysDelete
};
// helper parses the system keychain and returns the information to mDNSResponder.
// It returns four attributes. Attributes are defined after how they show up in
// keychain access utility (the actual attribute name to retrieve these are different).
enum mDNSKeyChainAttributes
{
kmDNSKcWhere, // Where
kmDNSKcAccount, // Account
kmDNSKcKey, // Key
kmDNSKcName // Name
};
#define ERROR(x, y) x,
enum mDNSHelperErrors
{
mDNSHelperErrorBase = 2300,
#include "helper-error.h"
mDNSHelperErrorEnd
};
#undef ERROR
#include "mDNSEmbeddedAPI.h"
#include "helpermsg-types.h"
extern const char *mDNSHelperError(int errornum);
extern void mDNSRequestBPF(void);
extern int mDNSPowerRequest(int key, int interval);
extern int mDNSSetLocalAddressCacheEntry(int ifindex, int family, const v6addr_t ip, const ethaddr_t eth);
extern void mDNSNotify(const char *title, const char *msg); // Both strings are UTF-8 text
extern void mDNSDynamicStoreSetConfig(int key, const char *subkey, CFPropertyListRef value);
extern void mDNSPreferencesSetName(int key, domainlabel *old, domainlabel *new);
extern int mDNSKeychainGetSecrets(CFArrayRef *secrets);
extern void mDNSConfigureServer(int updown, const char *const prefix, const domainname *const fqdn);
extern int mDNSAutoTunnelSetKeys(int replacedelete, v6addr_t local_inner,
v6addr_t local_outer, short local_port, v6addr_t remote_inner,
v6addr_t remote_outer, short remote_port, const char *const prefix, const domainname *const fqdn);
extern void mDNSSendWakeupPacket(unsigned ifid, char *eth_addr, char *ip_addr, int iteration);
extern void mDNSPacketFilterControl(uint32_t command, char * ifname, uint32_t count, pfArray_t portArray, pfArray_t protocolArray);
extern int mDNSSendKeepalive(v6addr_t sadd, v6addr_t dadd, uint16_t lport, uint16_t rport, unsigned seq, unsigned ack, uint16_t win);
extern int mDNSInterfaceAdvtIoctl(const char *ifname, int op);
#endif /* H_HELPER_H */