PasswordServerPrefsDefs.h [plain text]
#ifndef __PasswordServerPrefsDefs__
#define __PasswordServerPrefsDefs__
#ifdef __cplusplus
extern "C" {
#endif
#include <stdbool.h>
#include <time.h>
#include <sasl/sasl.h>
#define kPWPrefsVersion 3
#define kPWExternalToolPath "/usr/sbin/authserver/tools"
#define kPWPrefsFile "/Library/Preferences/com.apple.passwordserver.plist"
#define kMaxListenerPorts 10
#define kMaxSASLPlugins 30
#define kKerberosCacheScaleLimit 95000 // the number of principals that can be stored in memory for replication
#define kPWPrefsKey_PassiveReplicationOnly "PassiveReplicationOnly"
#define kPWPrefsKey_ProvideReplicationOnly "ProvideReplicationOnly"
#define kPWPrefsKey_BadTrialDelay "BadTrialDelay"
#define kPWPrefsKey_TimeSkewMaxSeconds "TimeSkewMaxSeconds"
#define kPWPrefsKey_SyncInterval "SyncInterval"
#define kPWPrefsKey_ListenerPorts "ListenerPorts"
#define kPWPrefsKey_ListenerInterfaces "ListenerInterfaces"
#define kPWPrefsValue_ListenerEnet "Ethernet"
#define kPWPrefsValue_ListenerLocal "Local"
#define kPWPrefsValue_ListenerUDSocket "UNIX Domain Socket"
#define kPWPrefsKey_TestSpillBucket "TestSpillBucket"
#define kPWPrefsKey_SASLRealm "SASLRealm"
#define kPWPrefsKey_ExternalTool "ExternalCommand"
#define kPWPrefsValue_ExternalToolNone "Disabled"
#define kPWPrefsKey_KerberosCacheLimit "KerberosCacheLimit"
#define kPWPrefsKey_SyncSASLPluginList "SyncSASLPlugInList"
#define kPWPrefsKey_SASLPluginList "SASLPluginStates"
#define kPWPrefsKey_DeleteWaitInMinutes "DeleteWaitInMinutes"
#define kPWPrefsKey_PurgeInMinutes "PurgeInMinutes"
#define kPWPrefsKey_PrefsVersion "Preference File Version"
#define kPWPrefsKey_DebugLogOptions "Debug Log Options"
#define kPWPrefsValue_LogChangeList "Change List"
#define kPWPrefsValue_LogQuit "Quit Command"
typedef enum ListenerTypes {
kPWPrefsNoListeners = 0x00,
kPWPrefsEnet = 0x01,
kPWPrefsLocal = 0x02,
kPWPrefsUnixDomainSocket = 0x04,
kPWPrefsEnetAndLocal = 0x03,
kPWPrefsEnetAndUDS = 0x05,
kPWPrefsLocalAndUDS = 0x06,
kPWPrefsAll = 0x07
} ListenerTypes;
typedef enum SASLPluginStatus {
kSASLPluginStateUnlisted,
kSASLPluginStateAllowed,
kSASLPluginStateDisabled
} SASLPluginStatus;
typedef struct SASLPluginEntry {
char name[SASL_MECHNAMEMAX + 1];
SASLPluginStatus state;
} SASLPluginEntry;
typedef struct PWSDebugLogOptions {
bool changeList;
bool quit;
} PWSDebugLogOptions;
typedef struct PasswordServerPrefs {
bool passiveReplicationOnly; bool provideReplicationOnly; unsigned long badTrialDelay; unsigned long timeSkewMaxSeconds; unsigned long syncInterval;
unsigned short listenerPort[kMaxListenerPorts + 1];
ListenerTypes listenerTypeFlags;
bool externalToolSet;
char externalToolPath[256];
bool testSpillBucket;
bool realmSet;
char realm[256];
unsigned long kerberosCacheLimit;
bool syncSASLPluginList;
time_t deleteWait;
time_t purgeWait;
SASLPluginEntry saslPluginState[kMaxSASLPlugins + 1];
int prefsVersion;
PWSDebugLogOptions logOptions;
} PasswordServerPrefs;
bool pwsf_SetSASLPluginState( const char *inMechName, bool enable );
#ifdef __cplusplus
};
#endif
#endif