--------------------- PatchSet 3456 Date: 2001/12/05 20:01:21 Author: serassio Branch: cygwin-svc Tag: (none) Log: Fixed a wrong reference to ChangeServiceConfig2 WIN32 system call when running on Windows NT 4.0 Members: src/win32.c:1.1.50.6.2.17->1.1.50.6.2.18 Index: squid/src/win32.c =================================================================== RCS file: /cvsroot/squid-sf//squid/src/win32.c,v retrieving revision 1.1.50.6.2.17 retrieving revision 1.1.50.6.2.18 diff -u -r1.1.50.6.2.17 -r1.1.50.6.2.18 --- squid/src/win32.c 2 Dec 2001 21:10:30 -0000 1.1.50.6.2.17 +++ squid/src/win32.c 5 Dec 2001 20:01:21 -0000 1.1.50.6.2.18 @@ -62,6 +62,13 @@ #define WIN32_VERSION "2.5" #define COMMANDLINE "CommandLine" #define CONFIGFILE "ConfigFile" +#undef ChangeServiceConfig2 +typedef BOOL (WINAPI * PFChangeServiceConfig2) (SC_HANDLE, DWORD, LPVOID); +#ifdef UNICODE +#define CHANGESERVICECONFIG2 "ChangeServiceConfig2W" +#else +#define CHANGESERVICECONFIG2 "ChangeServiceConfig2A" +#endif #define DATABASEPATH "DataBasePath" static SC_ACTION Squid_SCAction[1]= { SC_ACTION_RESTART, 60000 }; static SERVICE_DESCRIPTION Squid_ServiceDescription = { SOFTWARENAME " " VERSION " WWW Proxy Server" }; @@ -596,12 +603,16 @@ if (schService) { if ((WIN32_OS_version == _WIN_OS_WIN2K) || (WIN32_OS_version == _WIN_OS_WINXP)) { + HMODULE ADVAPI32Handle; + PFChangeServiceConfig2 ChangeServiceConfig2; DWORD dwInfoLevel = SERVICE_CONFIG_DESCRIPTION; + ADVAPI32Handle = GetModuleHandle("advapi32"); + ChangeServiceConfig2 = (PFChangeServiceConfig2) GetProcAddress(ADVAPI32Handle, CHANGESERVICECONFIG2); ChangeServiceConfig2(schService, dwInfoLevel, &Squid_ServiceDescription); dwInfoLevel = SERVICE_CONFIG_FAILURE_ACTIONS; ChangeServiceConfig2(schService, dwInfoLevel, &Squid_ServiceFailureActions); - } + } CloseServiceHandle(schService); /* Now store the config file location in the registry */ if (!ConfigFile)