mirror of
https://git.openafs.org/openafs.git
synced 2025-02-01 05:57:43 +00:00
windows-hookdll-20050419
Some more tweaks for hook dll processing.
This commit is contained in:
parent
77111b8232
commit
5dd44b7a0f
@ -139,6 +139,8 @@ typedef BOOL ( APIENTRY * AfsdInitHook )(void);
|
||||
typedef BOOL ( APIENTRY * AfsdRxStartedHook )(void);
|
||||
#define AFSD_SMB_STARTED_HOOK "AfsdSmbStartedHook"
|
||||
typedef BOOL ( APIENTRY * AfsdSmbStartedHook )(void);
|
||||
#define AFSD_STARTED_HOOK "AfsdStartedHook"
|
||||
typedef BOOL ( APIENTRY * AfsdStartedHook )(void);
|
||||
#define AFSD_DAEMON_HOOK "AfsdDaemonHook"
|
||||
typedef BOOL ( APIENTRY * AfsdDaemonHook )(void);
|
||||
#define AFSD_STOPPING_HOOK "AfsdStoppingHook"
|
||||
|
@ -1107,7 +1107,7 @@ afsd_Main(DWORD argc, LPTSTR *argv)
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = FALSE;
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdInitHook initHook = ( AfsdInitHook ) GetProcAddress(hHookDll, AFSD_INIT_HOOK);
|
||||
if (initHook)
|
||||
{
|
||||
@ -1171,7 +1171,7 @@ afsd_Main(DWORD argc, LPTSTR *argv)
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = FALSE;
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdRxStartedHook rxStartedHook = ( AfsdRxStartedHook ) GetProcAddress(hHookDll, AFSD_RX_STARTED_HOOK);
|
||||
if (rxStartedHook)
|
||||
{
|
||||
@ -1209,7 +1209,7 @@ afsd_Main(DWORD argc, LPTSTR *argv)
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = FALSE;
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdSmbStartedHook smbStartedHook = ( AfsdSmbStartedHook ) GetProcAddress(hHookDll, AFSD_SMB_STARTED_HOOK);
|
||||
if (smbStartedHook)
|
||||
{
|
||||
@ -1253,6 +1253,33 @@ afsd_Main(DWORD argc, LPTSTR *argv)
|
||||
}
|
||||
}
|
||||
|
||||
/* allow an exit to be called when started */
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdStartedHook startedHook = ( AfsdStartedHook ) GetProcAddress(hHookDll, AFSD_STARTED_HOOK);
|
||||
if (startedHook)
|
||||
{
|
||||
hookRc = startedHook();
|
||||
}
|
||||
FreeLibrary(hHookDll);
|
||||
hHookDll = NULL;
|
||||
|
||||
if (hookRc == FALSE)
|
||||
{
|
||||
ServiceStatus.dwCurrentState = SERVICE_STOPPED;
|
||||
ServiceStatus.dwWin32ExitCode = NO_ERROR;
|
||||
ServiceStatus.dwCheckPoint = 0;
|
||||
ServiceStatus.dwWaitHint = 0;
|
||||
ServiceStatus.dwControlsAccepted = 0;
|
||||
SetServiceStatus(StatusHandle, &ServiceStatus);
|
||||
|
||||
/* exit if initialization failed */
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
WaitForSingleObject(WaitToTerminate, INFINITE);
|
||||
|
||||
afsi_log("Received Termination Signal, Stopping Service");
|
||||
@ -1270,7 +1297,7 @@ afsd_Main(DWORD argc, LPTSTR *argv)
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = FALSE;
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdStoppingHook stoppingHook = ( AfsdStoppingHook ) GetProcAddress(hHookDll, AFSD_STOPPING_HOOK);
|
||||
if (stoppingHook)
|
||||
{
|
||||
@ -1328,7 +1355,7 @@ afsd_Main(DWORD argc, LPTSTR *argv)
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = FALSE;
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdStoppedHook stoppedHook = ( AfsdStoppedHook ) GetProcAddress(hHookDll, AFSD_STOPPED_HOOK);
|
||||
if (stoppedHook)
|
||||
{
|
||||
|
@ -185,7 +185,7 @@ void cm_Daemon(long parm)
|
||||
hHookDll = LoadLibrary(AFSD_HOOK_DLL);
|
||||
if (hHookDll)
|
||||
{
|
||||
BOOL hookRc = FALSE;
|
||||
BOOL hookRc = TRUE;
|
||||
AfsdDaemonHook daemonHook = ( AfsdDaemonHook ) GetProcAddress(hHookDll, AFSD_DAEMON_HOOK);
|
||||
if (daemonHook)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user