mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
5.0 KiB
148 lines
5.0 KiB
#ifndef _BROWTEST
|
|
#define _BROWTEST
|
|
|
|
#ifndef UNICODE
|
|
#define UNICODE
|
|
#endif
|
|
|
|
#include "browfunc.h"
|
|
|
|
#define BROWTESTINFILE "browtest.inp"
|
|
#define BROWTESTLOGFILE "browtest.log"
|
|
#define BROWTESTSUMMARYFILE "browtest.sum"
|
|
#define MAXCHARPERLINE 256
|
|
#define MAXTRANSPORTS 16
|
|
|
|
#define COMMENTCHAR ';'
|
|
#define NEWLINECHAR '\n'
|
|
#define QUOTECHAR '"'
|
|
#define SPACECHAR ' '
|
|
|
|
#define COMMASTR ","
|
|
#define NEWLINESTR "\n"
|
|
#define QUOTESTR "\""
|
|
#define SPACETABSTR " \t"
|
|
|
|
#define SUBNET1 1
|
|
#define SUBNET2 2
|
|
|
|
#define BROWSER TEXT("BROWSER")
|
|
#define NETLOGON TEXT("NETLOGON")
|
|
#define WORKSTATION TEXT("LanmanWorkstation")
|
|
|
|
#define CNSLASHLEN CNLEN+2 // ComputerName with "\\"
|
|
|
|
#define BASESLEEPTIME (40*1000) // 40 sec's
|
|
#define UPDATESLEEPTIME (15*60*1000) // 15 minutes
|
|
|
|
#define TOSCREEN 0x1UL
|
|
#define TOLOGFILE 0x2UL
|
|
#define TOSUMMARYFILE 0x4UL
|
|
|
|
#define TOSCREENANDLOG (TOSCREEN | TOLOGFILE)
|
|
#define TOLOGANDSUMMARY (TOLOGFILE | TOSUMMARYFILE)
|
|
#define TOALL (TOSCREEN | TOLOGFILE | TOSUMMARYFILE)
|
|
|
|
|
|
#define MAXPROTOCOLS 5
|
|
#define MAXOSTYPES 8
|
|
#define MAXTESTEDDOMAINS 5
|
|
|
|
typedef struct _OSProp{
|
|
CHAR *Type;
|
|
INT iPreference;
|
|
}OSPROP;
|
|
|
|
|
|
typedef struct _MACHINEINFO{
|
|
TCHAR wcDomainName[DNLEN+1];
|
|
TCHAR wcMachineName[CNLEN+1];
|
|
INT iOsType;
|
|
INT iOsPreference;
|
|
DWORD dwServerBits;
|
|
INT iSubnet;
|
|
INT Protocols[MAXPROTOCOLS];
|
|
BOOL BrowserServiceStarted;
|
|
struct _MACHINEINFO *Next;
|
|
}MACHINEINFO, *LPMACHINEINFO;
|
|
|
|
//
|
|
// Heads of the lists for the 2 subnets
|
|
//
|
|
|
|
typedef struct _XportInfo{
|
|
UNICODE_STRING Transport;
|
|
INT index;
|
|
}XPORTINFO;
|
|
|
|
|
|
|
|
typedef struct _DOMAININFO{
|
|
TCHAR wcDomainName[DNLEN+1];
|
|
LPMACHINEINFO lpMInfo;
|
|
}DOMAININFO, *LPDOMAININFO;
|
|
|
|
|
|
|
|
#define VALUETYPE_INTEGER 1
|
|
#define VALUETYPE_ULONG 2
|
|
#define VALUETYPE_STRING 3
|
|
#define VALUETYPE_IGNORE 4
|
|
#define VALUETYPE_HELP 5
|
|
#define VALUETYPE_BOOL 6
|
|
|
|
typedef struct _COMMANDTABLE {
|
|
CHAR Command[10];
|
|
INT ValueType ;
|
|
VOID *Value ;
|
|
} COMMAND_TABLE;
|
|
|
|
|
|
#define SHUTSVCPATH TEXT("%SystemRoot%\\shutsvc.exe")
|
|
#define SHUTSVCNAME TEXT("BrShut_serv")
|
|
|
|
#define STOPANDSTARTRDR 0
|
|
#define REBOOTMACHINE 1
|
|
|
|
|
|
#define NTOSTYPESBASE 4
|
|
#define ASOSTYPESBASE 6
|
|
#define IsNTMachine(a)((a->iOsType >= NTOSTYPESBASE) ? TRUE : FALSE)
|
|
#define IsASMachine(a)((a->iOsType >= ASOSTYPESBASE) ? TRUE : FALSE)
|
|
|
|
|
|
#define PrintString(FLAG, PrintStr) { \
|
|
if(WaitForSingleObject(ConsoleMutex, INFINITE) != WAIT_FAILED) { \
|
|
if(FLAG & TOSCREEN) printf("%s", PrintStr); \
|
|
if(FLAG & TOLOGFILE) fprintf(fplog,"%s", PrintStr); \
|
|
if(FLAG & TOSUMMARYFILE) fprintf(fpsum,"%s", PrintStr); \
|
|
fflush(NULL); \
|
|
ReleaseMutex( ConsoleMutex ); \
|
|
} \
|
|
}
|
|
|
|
|
|
VOID AddToList(LPMACHINEINFO, LPMACHINEINFO);
|
|
BOOL CheckAccessPermissionOnAllMachines();
|
|
VOID CheckBrowseListsOfMasterAndBackUps(XPORTINFO, LPTSTR, LPTSTR, TCHAR [MAXBACKUPS][CNSLASHLEN+1], ULONG, BOOL);
|
|
BOOL CheckBrServiceOnMachinesInList();
|
|
VOID CleanMem();
|
|
BOOL DoesMachineHaveThisTransport(LPTSTR, XPORTINFO, LPMACHINEINFO);
|
|
VOID DomSpanningMulSubNetsTests(XPORTINFO *, INT);
|
|
BOOL DoSingleDomainTests(XPORTINFO *, INT);
|
|
BOOL FindAllTransports(UNICODE_STRING *, DWORD *);
|
|
VOID ForceElectionAndFindWhoWins(XPORTINFO *, INT, LPTSTR, TCHAR [MAXPROTOCOLS][CNLEN+1], INT);
|
|
VOID Initialize(UNICODE_STRING *, INT *);
|
|
BOOL LocalMachineIsMultihomed(UNICODE_STRING *, INT);
|
|
BOOL NewMasterIsCorrect(TCHAR [MAXPROTOCOLS][CNLEN+1], INT, LPTSTR, XPORTINFO, LPMACHINEINFO);
|
|
VOID ParseCommandLine(INT, CHAR **);
|
|
VOID PrintList(MACHINEINFO);
|
|
|
|
BOOL StartBrowserFunctionalTest(UNICODE_STRING *, INT);
|
|
BOOL StopBrowserOnCurrentMaster(LPTSTR, LPTSTR, XPORTINFO *,
|
|
INT, TCHAR [MAXPROTOCOLS][CNLEN+1]);
|
|
BOOL StopBrowsersAndFindWhoBecomesMaster(LPTSTR, LPTSTR, XPORTINFO *,
|
|
INT, TCHAR [MAXPROTOCOLS][CNLEN+1]);
|
|
VOID Usage(CHAR *);
|
|
|
|
#endif
|