summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/mDNSMacOSX/helper.h
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/mDNSMacOSX/helper.h')
-rw-r--r--mDNSResponder/mDNSMacOSX/helper.h97
1 files changed, 83 insertions, 14 deletions
diff --git a/mDNSResponder/mDNSMacOSX/helper.h b/mDNSResponder/mDNSMacOSX/helper.h
index 04332eff..eedf7380 100644
--- a/mDNSResponder/mDNSMacOSX/helper.h
+++ b/mDNSResponder/mDNSMacOSX/helper.h
@@ -18,7 +18,71 @@
#ifndef H_HELPER_H
#define H_HELPER_H
-#define kmDNSHelperServiceName "com.apple.mDNSResponderHelper"
+#include <os/log.h>
+
+#define kHelperService "com.apple.mDNSResponder_Helper"
+
+#define kmDNSHelperProgramArgs CFSTR("com.apple.mDNSResponderHelper")
+#define kPreferencesKey_mDNSHelperLog CFSTR("mDNSHelperDebugLogging")
+
+#define kHelperMode "HelperMode"
+#define kHelperReplyStatus "HelperReplyStatusToClient"
+#define kHelperErrCode "HelperErrorCodefromCall"
+
+#define kPrefsNameKey "PreferencesNameKey"
+#define kPrefsOldName "PreferencesOldName"
+#define kPrefsNewName "PreferencesNewName"
+
+extern int mDNSHelperLogEnabled;
+
+extern os_log_t log_handle;
+
+typedef enum
+{
+ bpf_request = 1,
+ set_name = 2,
+ p2p_packetfilter = 3,
+ user_notify = 4,
+ power_req = 5,
+ send_wakepkt = 6,
+ set_localaddr_cacheentry = 7,
+ send_keepalive = 8,
+ retreive_tcpinfo = 9,
+ keychain_getsecrets = 10,
+ autotunnel_setkeys = 11,
+ request_other,
+} HelperModes;
+
+typedef enum
+{
+ kHelperReply_ACK = 0,
+} HelperReplyStatusCodes;
+
+
+typedef enum
+{
+ kHelperErr_NoErr = 0,
+ kHelperErr_DefaultErr = -1,
+ kHelperErr_NotConnected = -2,
+ kHelperErr_NoResponse = -3,
+ kHelperErr_UndefinedMode = -4,
+ kHelperErr_ApiErr = -5,
+ kHelperErr_InvalidTunnelSetKeysOperation = -6,
+ kHelperErr_InvalidNetworkAddress = -7,
+ kHelperErr_ResultTooLarge = -8,
+ kHelperErr_RacoonConfigCreationFailed = -9,
+ kHelperErr_IPsecPolicySocketCreationFailed = -10,
+ kHelperErr_IPsecPolicyCreationFailed = -11,
+ kHelperErr_IPsecPolicySetFailed = -12,
+ kHelperErr_IPsecRemoveSAFailed = -13,
+ kHelperErr_IPsecDisabled = -14,
+ kHelperErr_RoutingSocketCreationFailed = -15,
+ kHelperErr_RouteDeletionFailed = -16,
+ kHelperErr_RouteAdditionFailed = -17,
+ kHelperErr_RacoonStartFailed = -18,
+ kHelperErr_RacoonNotificationFailed = -19,
+} HelperErrorCodes;
+
enum mDNSPreferencesSetNameKey
{
@@ -38,6 +102,7 @@ enum mDNSAutoTunnelSetKeysReplaceDelete
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).
@@ -49,36 +114,40 @@ enum mDNSKeyChainAttributes
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 mStatus mDNSHelperInit(void);
+
+
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 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 void mDNSSendKeepalive(v6addr_t sadd, v6addr_t dadd, uint16_t lport, uint16_t rport, unsigned seq, unsigned ack, uint16_t win);
+extern void mDNSSendKeepalive(const v6addr_t sadd, const v6addr_t dadd, uint16_t lport, uint16_t rport, unsigned seq, unsigned ack, uint16_t win);
extern int mDNSRetrieveTCPInfo(int family, v6addr_t laddr, uint16_t lport, v6addr_t raddr, uint16_t rport, uint32_t *seq, uint32_t *ack, uint16_t *win, int32_t *intfid);
-extern void mDNSGetRemoteMAC(mDNS *const m, int family, v6addr_t raddr);
-extern void mDNSStoreSPSMACAddress(int family, v6addr_t spsaddr, char *ifname);
+
+extern void RequestBPF(void);
+extern void PreferencesSetName(int key, const char* old, const char* new);
+extern void PacketFilterControl(uint32_t command, const char * ifname, uint32_t count, pfArray_t portArray, pfArray_t protocolArray);
+extern void UserNotify(const char *title, const char *msg); // Both strings are UTF-8 text
+extern void PowerRequest(int key, int interval, int *error);
+extern void SendWakeupPacket(unsigned int ifid, const char *eth_addr, const char *ip_addr, int iteration);
+extern void SetLocalAddressCacheEntry(int ifindex, int family, const v6addr_t ip, const ethaddr_t eth, int *err);
+extern void SendKeepalive(const v6addr_t sadd6, const v6addr_t dadd6, uint16_t lport, uint16_t rport, uint32_t seq, uint32_t ack, uint16_t win);
+extern void RetrieveTCPInfo(int family, const v6addr_t laddr, uint16_t lport, const v6addr_t raddr, uint16_t rport, uint32_t *seq, uint32_t *ack, uint16_t *win, int32_t *intfid, int *err);
+extern void KeychainGetSecrets(__unused unsigned int *numsecrets,__unused unsigned long *secrets, __unused unsigned int *secretsCnt, __unused int *err);
+extern int HelperAutoTunnelSetKeys(int replacedelete, const v6addr_t loc_inner, const v6addr_t loc_outer6, uint16_t loc_port, const v6addr_t rmt_inner,
+ const v6addr_t rmt_outer6, uint16_t rmt_port, const char *id, int *err);
+extern void helper_exit(void);
#endif /* H_HELPER_H */