Windows NT 4.0 source code leak
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

#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