blob: ac974a5345d17cf7ad3f709abd4f232a6bc83fa9 [file] [log] [blame]
/* -*- Mode: C; tab-width: 4 -*-
*
* Copyright (c) 2007 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.
Change History (most recent first):
$Log: helper.h,v $
Revision 1.18 2009/04/20 20:40:14 cheshire
<rdar://problem/6786150> uDNS: Running location cycling caused configd and mDNSResponder to deadlock
Changed mDNSPreferencesSetName (and similar) routines from MIG "routine" to MIG "simpleroutine"
so we don't deadlock waiting for a result that we're just going to ignore anyway
Revision 1.17 2009/03/20 22:12:28 mcguire
<rdar://problem/6703952> Support CFUserNotificationDisplayNotice in mDNSResponderHelper
Make the call to the helper a simpleroutine: don't wait for an unused return value
Revision 1.16 2009/03/20 20:52:22 cheshire
<rdar://problem/6703952> Support CFUserNotificationDisplayNotice in mDNSResponderHelper
Revision 1.15 2009/03/14 01:42:56 mcguire
<rdar://problem/5457116> BTMM: Fix issues with multiple .Mac accounts on the same machine
Revision 1.14 2009/01/22 02:14:27 cheshire
<rdar://problem/6515626> Sleep Proxy: Set correct target MAC address, instead of all zeroes
Revision 1.13 2009/01/14 01:38:43 mcguire
<rdar://problem/6492710> Write out DynamicStore per-interface SleepProxyServer info
Revision 1.12 2009/01/12 22:26:13 mkrochma
Change DynamicStore location from BonjourSleepProxy/DiscoveredServers to SleepProxyServers
Revision 1.11 2008/12/05 02:35:24 mcguire
<rdar://problem/6107390> Write to the DynamicStore when a Sleep Proxy server is available on the network
Revision 1.10 2008/11/04 23:54:09 cheshire
Added routine mDNSSetARP(), used to replace an SPS client's entry in our ARP cache with
a dummy one, so that IP traffic to the SPS client initiated by the SPS machine can be
captured by our BPF filters, and used as a trigger to wake the sleeping machine.
Revision 1.9 2008/10/24 01:42:36 cheshire
Added mDNSPowerRequest helper routine to request a scheduled wakeup some time in the future
Revision 1.8 2008/10/20 22:01:28 cheshire
Made new Mach simpleroutine "mDNSRequestBPF"
Revision 1.7 2008/09/27 00:58:11 cheshire
Added mDNSRequestBPF declaration
Revision 1.6 2007/09/20 22:33:17 cheshire
Tidied up inconsistent and error-prone naming -- used to be mDNSResponderHelper in
some places and mDNSResponder.helper in others; now mDNSResponderHelper everywhere
Revision 1.5 2007/09/07 22:44:03 mcguire
<rdar://problem/5448420> Move CFUserNotification code to mDNSResponderHelper
Revision 1.4 2007/09/04 22:32:58 mcguire
<rdar://problem/5453633> BTMM: BTMM overwrites /etc/racoon/remote/anonymous.conf
Revision 1.3 2007/08/23 21:51:44 cheshire
Made code layout style consistent with existing project style; added $Log header
Revision 1.1 2007/08/08 22:34:58 mcguire
<rdar://problem/5197869> Security: Run mDNSResponder as user id mdnsresponder instead of root
*/
#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
};
#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 mDNSSetARP(int ifindex, const v4addr_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 mDNSAutoTunnelInterfaceUpDown(int updown, v6addr_t addr);
extern void mDNSConfigureServer(int updown, const domainname *const fqdn);
extern int mDNSAutoTunnelSetKeys(int replacedelete, v6addr_t local_inner,
v4addr_t local_outer, short local_port, v6addr_t remote_inner,
v4addr_t remote_outer, short remote_port, const domainname *const fqdn);
#endif /* H_HELPER_H */