#ifndef _SLPDefines_
#define _SLPDefines_
#pragma once
#include <Carbon/Carbon.h>
#define kSLPdPath "/tmp/slp_ipc"
#define CONFIG_DA_HEART_BEAT 10800 // (3 hours) DA Heartbeat,
#define v2_Default_Scope "DEFAULT"
#define kSLPPluginNotInitialized -1
enum
{
kLogOptionRegDereg = 0x01000000,
kLogOptionExpirations = 0x02000000,
kLogOptionServiceRequests = 0x04000000,
kLogOptionDAInfoRequests = 0x08000000,
kLogOptionRejections = 0x10000000,
kLogOptionRAdminInteraction = 0x20000000,
kLogOptionErrors = 0x00000080,
kLogOptionDebuggingMessages = 0x40000000,
kLogOptionAllMessages = 0x80000000
};
#if 0
#define v2_Port_Number 427
#define v2_Multicast_Address_String "239.255.255.253"
#define v2_Multicast_Address_Num 0xEFFFFFFD
#define v2_Spec_Version 2
#define v2_Default_Scope "DEFAULT"
#define kIsDATag "net.slp.isDA"
#define kRegistrationLifetimeTag "net.slp.RegistrationLifetime"
#define kDADynamicAddresses "net.slp.DADynamicAddresses" #define kDAAddresses "net.slp.DAAddresses" #define kLoggingLevelBitMap "net.slp.LoggingLevel"
#define kProxyForOtherDAs "net.slp.ProxyForOtherDAs"
#define kDAHeartBeatTag "net.slp.DAHeartBeat"
#define kUseScopesTag "net.slp.useScopes"
#define kTraceDATrafficTag "net.slp.traceDATraffic"
#define kTraceMsgTag "net.slp.traceMsg"
#define kTraceDropTag "net.slp.traceDrop"
#define kTraceRegTag "net.slp.traceReg"
#define kTraceErrorsTag "net.slp.traceErrors"
#define kTraceDebug "net.slp.traceDebug"
#define kSerializedRegURLTag "net.slp.serializedRegURL"
#define kIsBroadcastOnlyTag "net.slp.isBroadcastOnly"
#define kPassiveDADetectionTag "net.slp.passiveDADetection"
#define kMulticastTTLTag "net.slp.multicastTTL"
#define kDAActiveDiscoveryIntervalTag "net.slp.DAActiveDiscoveryInterval"
#define kMulticastMaximumWaitTag "net.slp.multicastMaximumWait"
#define kMulticastTimeoutsTag "net.slp.multicastTimeouts"
#define kDADiscoveryTimeoutsTag "net.slp.DADiscoveryTimeouts"
#define kRandomWaitBoundTag "net.slp.randomWaitBound"
#define kDatagramTimeouts "net.slp.datagramTimeouts"
#define kLocaleTag "net.slp.locale"
#define kSecurityEnabledTag "net.slp.securityEnabled"
#define kMTUTag "net.slp.MTU"
#define kTypeHintTag "net.slp.typeHint"
#define kInterfacesTag "net.slp.interfaces"
#define kDAAttributesTag "net.slp.DAAttributes"
#define kSAAttributesTag "net.slp.SAAttributes"
#define kMaxResultsTag "net.slp.maxResults"
#define kSARequestServiceType "service:service-agent"
#define kDARequestServiceType "service:directory-agent"
enum
{
kLogDATraffic = 0x00010000,
kLogMsg = 0x00020000,
kLogDrop = 0x00040000,
kLogRegDebug = 0x00100000, kLogReqDebug = 0x00200000, kLogDebug = 0xFFFFFFFF,
kLogOptionRegDereg = 0x01000000,
kLogOptionExpirations = 0x02000000,
kLogOptionServiceRequests = 0x04000000,
kLogOptionDAInfoRequests = 0x08000000,
kLogOptionRejections = 0x10000000,
kLogOptionRAdminInteraction = 0x20000000,
kLogOptionErrors = 0x00000080,
kLogOptionDebuggingMessages = 0x40000000
};
#define kStandardEventsSet kLogOptionRegDereg + kLogOptionServiceRequests + kLogOptionDAInfoRequests + kLogOptionErrors
#define kErrorsOnlySet kLogOptionErrors
#define kDebuggingSet kLogOptionDebuggingMessages
#define kPluginInfoServiceType "service:x-MacSLPInfo"
#define kTimeOfStartupServiceType "service:x-MacSLPInfo:startuptime"
#define kNumSLPInstancesServiceType "service:x-MacSLPInfo:numberofclients"
#define kSLPPreferencesServiceType "service:x-MacSLPInfo:preferences"
#define kCurRegServicesServiceType "service:x-MacSLPInfo:curregservices"
#define kAttributeDelimiter ";"
#define kVersionTag "Version"
#define kOSVersionTag "OSVersion"
#define kNumRegServicesTag "NumRegServices"
#define kStartupTimeTag "Time Of Startup"
#define kNumSLPInstancesTag "Number of SLP Clients"
#define kSLPPreferencesTag "Current Preferences"
#define kCurRegServicesTag "Current Types of Registered Services"
#define kLocalizedStrings 128
enum {
kLocalServicesStringID = 1
};
const UInt8 DEFAULT_VERSION = 2;
const UInt8 DEFAULT_DIALECT = 0;
const UInt16 DEFAULT_LANGUAGE_CODE = 0x656e; const UInt16 DEFAULT_CHAR_ENCODING = 3;
const UInt8 DEFAULT_BIT_MAP = 0;
const UInt8 SrvReq = 1;
const UInt8 SrvRply = 2;
const UInt8 SrvReg = 3;
const UInt8 SrvDereg = 4;
const UInt8 SrvAck = 5;
const UInt8 AttrRqst = 6;
const UInt8 AttrRply = 7;
const UInt8 DAAdvert = 8;
const UInt8 SrvTypeRqst = 9;
const UInt8 SrvTypeRply = 10;
const UInt8 SAAdvert = 11;
const UInt8 PluginInfoReq = 0xFF;
#define IANA ""
unsigned short RangedRdm( unsigned short min, unsigned short max );
#endif
#define CONFIG_INTERVAL_0 60 // Cache replies by XID.
#define CONFIG_INTERVAL_1 10800 // registration Lifetime,
#define CONFIG_INTERVAL_2 1 // Retry multicast query
#define CONFIG_INTERVAL_3 30 // Max time to wait for a
#define CONFIG_INTERVAL_4 3 // Wait to rgister on reboot
#define CONFIG_INTERVAL_5 3 // Retransmit DA discovery,
#define CONFIG_INTERVAL_6 5 // Give up on requests sent to DA
#define CONFIG_INTERVAL_7 15 // Give up on DA discovery
#define CONFIG_INTERVAL_8 15 // Give up on requests sent to SAs
#define CONFIG_INTERVAL_9 10800 // (3 hours) DA Heartbeat,
#define CONFIG_INTERVAL_10 RangedRdm(1,3)
#define CONFIG_INTERVAL_11 RangedRdm(1,3)
#define CONFIG_INTERVAL_12 300 // (ie. 5 seconds)
#if 0
#define CONFIG_CLOSE_DOWN 60*60*5 // five minutes
#define CONFIG_DA_FIND 900 // seconds between active da discoveries
#define CONFIG_RETRY 2 // seconds between retransmitting unicast requests
#define CONFIG_RETRY_MAX 15 // seconds to give up on unicast transmission
enum {
kReservedBit1 = 0x0100,
kReservedBit2 = 0x0200,
kReservedBit3 = 0x0400,
kReservedBit4 = 0x0800,
kReservedBit5 = 0x1000,
kRequestMulticast = 0x2000,
kFreshRegistration = 0x4000,
kOverFlowBit = 0x8000
};
#define kTimeToListenForReplyToRequest 2 // two seconds
#define kTimeToGiveUpOnDAResponse 2*CONFIG_INTERVAL_6 // let's double the suggested SLP Spec
#define kTimeToGiveUpOnDAConnection 15 // fifteen seconds
#define kLifeTimeValue 3600 // an hour?
#define kDelayWaitingForBindToPort 1000 // in ticks
#define kSLPListenerTimeoutValue 99999 // in ticks
#define kTimeBetweenTTLTimeChecks 1800 // in ticks (30 seconds)
#define kDiffBetweenMacOSSecsAndSLPSecs
#define kTimeToWaitBeforeUpdatingCacheAfterDeregistration 60 // in ticks (1 second)
enum AgentStatus {
kUninitialized = -1,
kQuitting = 0,
kRunning = 1
};
#endif
#endif