/* -*- 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 */