#ifndef __CPSPlugInUtils_h__
#define __CPSPlugInUtils_h__ 1
#include <DirectoryService/DirServices.h>
#include <DirectoryService/DirServicesUtils.h>
#include <DirectoryService/DirServicesConst.h>
#include <DirectoryServiceCore/CBuff.h>
#include <DirectoryServiceCore/CDataBuff.h>
#include <DirectoryServiceCore/CAttributeList.h>
#include <DirectoryServiceCore/SharedConsts.h>
#include <DirectoryServiceCore/PluginData.h>
#include <DirectoryServiceCore/CDSServerModule.h>
#include <DirectoryServiceCore/CSharedData.h>
#include <CoreFoundation/CoreFoundation.h>
#include <PasswordServer/AuthFile.h>
#include <PasswordServer/PSUtilitiesDefs.h>
#include "CPSPluginDefines.h"
#define kMoreHeaderReserveSize (CAST_BLOCK * 5)
typedef struct BonjourServiceCBData {
CFRunLoopRef runLoop;
bool checking;
SInt32 errorCode;
} BonjourServiceCBData;
typedef struct BonjourBrowserCBData {
CFRunLoopRef runLoop;
bool checking;
SInt32 errorCode;
CFMutableArrayRef serverArray;
} BonjourBrowserCBData;
__BEGIN_DECLS
SInt32 PWSErrToDirServiceError( PWServerError inError );
SInt32 PolicyErrToDirServiceError( int inPolicyError );
SInt32 SASLErrToDirServiceError( int inSASLError );
bool CheckServerVersionMin( int serverVers[], int reqMajor, int reqMinor, int reqBugFix, int reqTiny );
bool RSAPublicKeysEqual( const char *rsaKeyStr1, const char *rsaKeyStr2 );
long GetServerListFromBonjourForKeyHash( const char *inKeyHash, CFRunLoopRef inRunLoop, CFMutableArrayRef *outServerList );
void BrowseForPasswordServers( CFRunLoopRef inRunLoop );
__END_DECLS
#endif