windows-eventlog-20051219
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 8 Jan 2006 00:30:40 +0000 (00:30 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 8 Jan 2006 00:30:40 +0000 (00:30 +0000)
For afsd_service.exe, properly use the Event Log by constructing
message strings stored in a MESSAGETEXT resource.  This patch also
removes a large number of debugging related event messages that
should never have been seen by an end user.   That data is now
logged to the trace.log where it should have been logged initially.

Similar changes need to be implemented for afslogon.dll and afscreds.exe

The afsd_eventlog.[ch] files should be broken out into its own library
so that it can be reused efficiently.

The afsreg.h header was cleaned up to ensure name consistency and to
remove the last vestiges of "IBM AFS".

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

Do not change "AFS Client" to "OpenAFS Client" unless the installers
are also updated.

====================

remove temporary files upon clean

13 files changed:
src/WINNT/afsd/NTMakefile
src/WINNT/afsd/afsd.h
src/WINNT/afsd/afsd_eventlog.c
src/WINNT/afsd/afsd_eventlog.h
src/WINNT/afsd/afsd_eventmessages.mc
src/WINNT/afsd/afsd_service.c
src/WINNT/afsd/afsd_service.rc
src/WINNT/afsd/cm_config.c
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_dnlc.c
src/WINNT/afsd/smb.c
src/WINNT/afsd/smb3.c
src/WINNT/afsreg/afsreg.h

index 7f66f37..e491822 100644 (file)
@@ -504,7 +504,7 @@ $(OUT)\unlog.res: unlog.rc AFS_component_version_number.h
 
 $(OUT)\afscpcc.res: afscpcc.rc AFS_component_version_number.h
 
-afsd_eventmessages.rc: afsd_eventmessages.h
+afsd_eventmessages.rc: $(INCFILEDIR)\afsd_eventmessages.h
 
 $(OUT)\afsd_service.res: afsd_service.rc afsd_eventmessages.rc AFS_component_version_number.h
 
@@ -520,6 +520,8 @@ clean::
        $(DEL) afsrpc.h
        $(DEL) afsrpc_?.*
         $(DEL) afsd_eventmessages.h
+        $(DEL) afsd_eventmessages.rc
+        $(DEL) MSG?????.bin
        $(DEL) $(CONF_DLLFILE)
        $(DEL) $(LOGON_DLLFILE)
        $(DEL) $(LOG95_DLLFILE)
index 18b1213..f0423b4 100644 (file)
@@ -66,13 +66,15 @@ BOOL APIENTRY About(HWND, unsigned int, unsigned int, long);
 #include "afsd_init.h"
 #ifdef DJGPP
 #include "afs/afsmsg95.h"
+#else
+#include "afsd_eventlog.h"
 #endif
 
 #include <afs/vldbint.h>
 #include <afs/afsint.h>
 
-#define AFS_DAEMON_SERVICE_NAME "TransarcAFSDaemon"
-#define AFS_DAEMON_EVENT_NAME "AFS Client"
+#define AFS_DAEMON_SERVICE_NAME AFSREG_CLT_SVC_NAME
+#define AFS_DAEMON_EVENT_NAME   AFSREG_CLT_SW_NAME
 
 void afs_exit();
 
index f7f932f..6bb7078 100644 (file)
 #include <windows.h>
 #include <stdarg.h>
 #include <string.h>
+#include <strsafe.h>
 #include <WINNT/afsreg.h>
+#include "afsd.h"
 #include "afsd_eventlog.h"
 
-static CHAR    szKeyName[] = AFSREG_APPLOG_SUBKEY "\\" AFSREG_CLT_SVC_NAME;
-
 static BOOL    GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize);
 static BOOL    AddEventSource(void);
 
 static BOOL
 GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize)
 {
-       HKEY    hKey = NULL; 
-       DWORD   dwData = 0;
-       BOOL    bRet = TRUE;
+    HKEY       hKey = NULL; 
+    DWORD      dwData = 0;
+    BOOL       bRet = TRUE;
 
-       do {
-               
-               // Open key
-               if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, AFSREG_SVR_SVC_SUBKEY, 0, KEY_QUERY_VALUE, &hKey ) )
-               {               
-                       bRet = FALSE;
-                       break;
-               }
-
-               // prepare user's buffer and read into it
-               dwData = *pdwPathBufSize;
-               memset(lpPathBuf, '\0', dwData);
-               if ( RegQueryValueEx( 
-                               hKey,                   // handle to key
-                               "ImagePath",            // value name
-                               NULL,                   // reserved
-                               NULL,                   // type buffer
-                               (LPBYTE) lpPathBuf,     // data buffer
-                               &dwData))               // size of data buffer
-               {
-                       bRet = FALSE;
-                       break;
-               }
+    do {
+       // Open key
+       if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_SUBKEY, 0, KEY_QUERY_VALUE, &hKey ) )
+       {               
+           bRet = FALSE;
+           break;
+       }
+
+       // prepare user's buffer and read into it
+       dwData = *pdwPathBufSize;
+       memset(lpPathBuf, '\0', dwData);
+       if ( RegQueryValueEx( hKey,                     // handle to key
+                             "ImagePath",              // value name
+                             NULL,                     // reserved
+                             NULL,                     // type buffer
+                             (LPBYTE) lpPathBuf,       // data buffer
+                             &dwData))         // size of data buffer
+       {       
+           bRet = FALSE;
+           break;
+       }
                
-               *pdwPathBufSize = dwData;
+       *pdwPathBufSize = dwData;
 
-       } while (0);
+    } while (0);
                                
-       if (hKey != NULL)
-               RegCloseKey(hKey); 
-       
-       return bRet;
+    if (hKey != NULL)
+       RegCloseKey(hKey); 
+
+    return bRet;
 } 
 
 //
@@ -65,151 +63,265 @@ GetServicePath(LPTSTR lpPathBuf, PDWORD pdwPathBufSize)
 static BOOL
 AddEventSource()
 {
-       HKEY    hKey = NULL; 
-       UCHAR   szBuf[MAX_PATH]; 
-       DWORD   dwData, dwDisposition; 
-       BOOL    bRet = TRUE;
-
-       do {
-               // Let's see if key already exists as a subkey under the 
-               // Application key in the EventLog registry key.  If not,
-               // create it.
-               if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, szKeyName, 0,
-                                  KEY_QUERY_VALUE, &hKey ) )
-               {               
-                       // nope - create it             
-                       if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, szKeyName, 0,
-                                           NULL, REG_OPTION_NON_VOLATILE,
-                                           KEY_ALL_ACCESS, NULL, &hKey,
-                                           &dwDisposition)) 
-                       {
-                               bRet = FALSE;
-                               break;
-                       }
-                                               
-                       // Set the name of the message file
-                       // Get "ImagePath" from TransarcAFSDaemon service
-                       memset(szBuf, '\0', MAX_PATH);
-                       dwData = MAX_PATH;
-                       GetServicePath(szBuf, &dwData);
-
-                       // Add the name to the EventMessageFile subkey. 
-                       if ( RegSetValueEx(
-                                       hKey,                   // subkey handle 
-                                       AFSREG_SVR_APPLOG_MSGFILE_VALUE,        // value name 
-                                       0,                      // must be zero 
-                                       REG_EXPAND_SZ,          // value type 
-                                       (LPBYTE) szBuf,         // pointer to value data 
-                                       (DWORD)strlen(szBuf) + 1))      // length of value data
-                       {
-                               bRet = FALSE;
-                               break;
-                       }
-                       // Set the supported event types in the TypesSupported subkey. 
-                       dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | 
-                                               EVENTLOG_INFORMATION_TYPE; 
-                       if ( RegSetValueEx(
-                                       hKey,                   // subkey handle 
-                                       AFSREG_SVR_APPLOG_MSGTYPE_VALUE,        // value name 
-                                       0,                      // must be zero 
-                                       REG_DWORD,              // value type 
-                                       (LPBYTE) &dwData,       // pointer to value data 
-                                       sizeof(DWORD)))         // length of value data
-                       {
-                               bRet = FALSE;
-                               break;
-                       }
-               }
-
-               else
-               {
-                       // key was opened - read it
-                       memset(szBuf, '\0', MAX_PATH);
-                       dwData = MAX_PATH;
-                       if ( RegQueryValueEx( 
-                                       hKey,                   // handle to key
-                                       AFSREG_SVR_APPLOG_MSGFILE_VALUE,        // value name
-                                       NULL,                   // reserved
-                                       NULL,                   // type buffer
-                                       (LPBYTE) szBuf,         // data buffer
-                                       &dwData))               // size of data buffer
-                       {
-                               bRet = FALSE;
-                               break;
-                       }
-               }
-               
-       } while (0);
+    HKEY       hKey = NULL, hLogKey; 
+    UCHAR      szBuf[MAX_PATH]; 
+    DWORD      dwData, dwDisposition; 
+    BOOL       bRet = TRUE;
+
+    do {
+       if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, AFSREG_APPLOG_SUBKEY, 0,
+                          KEY_QUERY_VALUE, &hLogKey ) )
+       {                       
+           // nope - create it         
+           if ( RegCreateKeyEx(HKEY_LOCAL_MACHINE, AFSREG_APPLOG_SUBKEY, 0,
+                                NULL, REG_OPTION_NON_VOLATILE,
+                                KEY_ALL_ACCESS, NULL, &hLogKey,
+                                &dwDisposition)) 
+           {   
+               bRet = FALSE;
+               break;
+           }
+       }
+
+       // Let's see if key already exists as a subkey under the 
+       // Application key in the EventLog registry key.  If not,
+       // create it.
+       if ( RegOpenKeyEx( hLogKey, AFSREG_CLT_APPLOG_SUBKEY, 0,
+                          KEY_QUERY_VALUE, &hKey ) )
+       {                       
+           // nope - create it         
+           if ( RegCreateKeyEx(hLogKey, AFSREG_CLT_APPLOG_SUBKEY, 0,
+                                NULL, REG_OPTION_NON_VOLATILE,
+                                KEY_ALL_ACCESS, NULL, &hKey,
+                                &dwDisposition)) 
+           {   
+               bRet = FALSE;
+               break;
+           }
+
+           // Set the name of the message file
+           // Get "ImagePath" from TransarcAFSDaemon service
+           memset(szBuf, '\0', MAX_PATH);
+           dwData = MAX_PATH;
+           GetServicePath(szBuf, &dwData);
+
+           // Add the name to the EventMessageFile subkey. 
+           if ( RegSetValueEx( hKey,                   // subkey handle 
+                               AFSREG_APPLOG_MSGFILE_VALUE,    // value name 
+                               0,                      // must be zero 
+                               REG_EXPAND_SZ,          // value type 
+                               (LPBYTE) szBuf,         // pointer to value data 
+                               (DWORD)strlen(szBuf) + 1))      // length of value data
+           {   
+               bRet = FALSE;
+               break;
+           }
+
+           // Set the supported event types in the TypesSupported subkey. 
+           dwData = EVENTLOG_ERROR_TYPE | EVENTLOG_WARNING_TYPE | 
+               EVENTLOG_INFORMATION_TYPE; 
+
+           if ( RegSetValueEx( hKey,                   // subkey handle 
+                               AFSREG_APPLOG_MSGTYPE_VALUE,    // value name 
+                               0,                      // must be zero 
+                               REG_DWORD,              // value type 
+                               (LPBYTE) &dwData,       // pointer to value data 
+                               sizeof(DWORD)))         // length of value data
+           {   
+               bRet = FALSE;
+               break;
+           }
+       }
+       else
+       {
+           // key was opened - read it
+           memset(szBuf, '\0', MAX_PATH);
+           dwData = MAX_PATH;
+           if ( RegQueryValueEx( hKey,                 // handle to key
+                                 AFSREG_APPLOG_MSGFILE_VALUE,  // value name
+                                 NULL,                 // reserved
+                                 NULL,                 // type buffer
+                                 (LPBYTE) szBuf,               // data buffer
+                                 &dwData))             // size of data buffer
+           {   
+               bRet = FALSE;
+               break;
+           }
+       }
+    } while (0);
                                
-       if (hKey != NULL)
-               RegCloseKey(hKey); 
+    if (hKey != NULL)
+       RegCloseKey(hKey); 
 
-       return bRet;
-} 
+    if (hLogKey != NULL)
+       RegCloseKey(hLogKey); 
+
+    return bRet;
+}      
 
 // Log an event with a formatted system message as the (only) substitution
 // string, from the given message ID.
 VOID
 LogEventMessage(WORD wEventType, DWORD dwEventID, DWORD dwMessageID)
 {
-       LPTSTR msgBuf;
+    LPTSTR msgBuf;
 
-       FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM
-                     | FORMAT_MESSAGE_ALLOCATE_BUFFER,
-                     NULL, dwMessageID, 0, (LPTSTR)&msgBuf, 0, NULL);
-       LogEvent(wEventType, dwEventID, msgBuf, NULL);
-       LocalFree(msgBuf);
+    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER,
+                  NULL, dwMessageID, 0, (LPTSTR)&msgBuf, 0, NULL);
+    LogEvent(wEventType, dwEventID, msgBuf, NULL);
+    LocalFree(msgBuf);
 }
 
 //
 // Use the ReportEvent API to write an entry to the system event log.
 //
-#define MAXSTRINGARGS 100
+#define MAXARGS 8
+#define STRLEN  64
 VOID
-LogEvent(WORD wEventType, DWORD dwEventID, LPTSTR lpString, ...)
+LogEvent(WORD wEventType, DWORD dwEventID, ...)
 {
-       va_list listStrings;
-       HANDLE  hEventSource;
-       LPTSTR lpStrings[MAXSTRINGARGS];
-       WORD wNumStrings;
-
-       // Ensure that our event source is properly initialized.
-       if (!AddEventSource())
-               return;
-
-       // Get a handle to the event log.
-       hEventSource = RegisterEventSource(NULL, AFSREG_CLT_SVC_PARAM_KEY);
-       if (hEventSource == NULL)
-               return;
-
-       // Construct the array of substitution strings.
-       va_start(listStrings, lpString);
-       for (wNumStrings = 0;
-            lpString != NULL && wNumStrings < MAXSTRINGARGS;
-            wNumStrings++)
-       {
-               lpStrings[wNumStrings] = lpString;
-               // Advance to the next argument.
-               lpString = va_arg(listStrings, LPTSTR);
-       }
-       va_end(listStrings);
-
-       // Make sure we were not given too many args.
-       if (wNumStrings >= MAXSTRINGARGS)
-               return;
-
-       // Log the event.
-       ReportEvent(hEventSource,               // handle of event source
-                   wEventType,                 // event type
-                   0,                          // event category
-                   dwEventID,                  // event ID
-                   NULL,                       // current user's SID
-                   wNumStrings,                // strings in lpszStrings
-                   0,                          // no bytes of raw data
-                   lpStrings,                  // array of error strings
-                   NULL);                      // no raw data
-
-       DeregisterEventSource(hEventSource);
-}
+    va_list    listArgs;
+    HANDLE     hEventSource;
+    LPTSTR     lpArgs[MAXARGS];
+    CHAR       lpStrings[MAXARGS][STRLEN];
+    WORD       wNumArgs = 0;
+    WORD       wNumStrings = 0;
+       DWORD   code;
+
+    // Ensure that our event source is properly initialized.
+    if (!AddEventSource())
+       return;
+
+    // Get a handle to the event log.
+    hEventSource = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
+    if (hEventSource == NULL)
+       return;
+
+    // Construct the array of substitution strings.
+    va_start(listArgs, dwEventID);
+
+    switch ( dwEventID ) {
+    case MSG_FLUSH_NO_SHARE_NAME:
+    case MSG_FLUSH_NO_MEMORY:
+    case MSG_FLUSH_IMPERSONATE_ERROR:
+    case MSG_FLUSH_UNEXPECTED_EVENT:
+    case MSG_UNHANDLED_EXCEPTION:
+    case MSG_SMB_ZERO_TRANSACTION_COUNT:
+    case MSG_SERVICE_START_PENDING:
+    case MSG_SERVICE_INCORRECT_VERSIONS:
+    case MSG_SERVICE_RUNNING:
+    case MSG_SERVICE_STOPPING:
+    case MSG_SERVICE_ERROR_STOP:
+       break;
+    case MSG_FLUSH_BAD_SHARE_NAME:
+    case MSG_FLUSH_OPEN_ENUM_ERROR:
+    case MSG_FLUSH_ENUM_ERROR:
+    case MSG_FLUSH_FAILED:
+    case MSG_RX_HARD_DEAD_TIME_EXCEEDED:
+    case MSG_SERVICE_ERROR_STOP_WITH_MSG:
+       wNumArgs = 1;
+       lpArgs[0] = va_arg(listArgs, LPTSTR);
+       break;
+    case MSG_TIME_FLUSH_PER_VOLUME:
+    case MSG_TIME_FLUSH_TOTAL:
+       wNumArgs = 2;
+       lpArgs[0] = va_arg(listArgs, LPTSTR);
+       lpArgs[1] = va_arg(listArgs, LPTSTR);
+       break;
+    case MSG_SERVER_REPORTS_VNOVOL:
+    case MSG_SERVER_REPORTS_VMOVED:
+    case MSG_SERVER_REPORTS_VOFFLINE:
+    case MSG_SERVER_REPORTS_VSALVAGE:
+    case MSG_SERVER_REPORTS_VNOSERVICE:
+    case MSG_SERVER_REPORTS_VIO:
+       wNumArgs = 2;
+       lpArgs[0] = va_arg(listArgs, LPTSTR);
+       StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,afs_int32));
+       lpArgs[1] = lpStrings[1];
+       break;
+    case MSG_BAD_SMB_PARAM:
+       wNumArgs = 5;
+       lpArgs[0] = va_arg(listArgs, LPTSTR);
+       StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[2],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[3],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[4],STRLEN,"%d",va_arg(listArgs,WORD));
+       lpArgs[1] = lpStrings[1];
+       lpArgs[2] = lpStrings[2];
+       lpArgs[3] = lpStrings[3];
+       lpArgs[4] = lpStrings[4];
+       break;
+    case MSG_BAD_SMB_PARAM_WITH_OFFSET:
+       wNumArgs = 6;
+       lpArgs[0] = va_arg(listArgs, LPTSTR);
+       StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[2],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[3],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[4],STRLEN,"%d",va_arg(listArgs,int));
+       StringCbPrintf(lpStrings[5],STRLEN,"%d",va_arg(listArgs,WORD));
+       lpArgs[1] = lpStrings[1];
+       lpArgs[2] = lpStrings[2];
+       lpArgs[3] = lpStrings[3];
+       lpArgs[4] = lpStrings[4];
+       lpArgs[5] = lpStrings[5];
+       break;
+    case MSG_BAD_SMB_TOO_SHORT:
+    case MSG_BAD_SMB_INVALID:
+    case MSG_BAD_SMB_INCOMPLETE:
+       wNumArgs = 1;
+       StringCbPrintf(lpStrings[0],STRLEN,"%d",va_arg(listArgs,WORD));
+       lpArgs[0] = lpStrings[0];
+       break;
+    case MSG_SMB_SESSION_START:
+       wNumArgs = 1;
+       StringCbPrintf(lpStrings[0],STRLEN,"%d",va_arg(listArgs,long));
+       lpArgs[0] = lpStrings[0];
+       break;
+    case MSG_BAD_SMB_WRONG_SESSION:
+       wNumArgs = 2;
+       StringCbPrintf(lpStrings[0],STRLEN,"%d",va_arg(listArgs,DWORD));
+       StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,WORD));
+       lpArgs[0] = lpStrings[0];
+       lpArgs[1] = lpStrings[1];
+       break;
+    case MSG_BAD_VCP:
+       wNumArgs = 4;
+       StringCbPrintf(lpStrings[0],STRLEN,"%d",va_arg(listArgs,UCHAR));
+       StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,UCHAR));
+       StringCbPrintf(lpStrings[2],STRLEN,"%d",va_arg(listArgs,UCHAR));
+       StringCbPrintf(lpStrings[3],STRLEN,"%d",va_arg(listArgs,UCHAR));
+       lpArgs[0] = lpStrings[0];
+       lpArgs[1] = lpStrings[1];
+       lpArgs[2] = lpStrings[2];
+       lpArgs[3] = lpStrings[3];
+       break;
+    case MSG_SERVICE_ERROR_STOP_WITH_MSG_AND_LOCATION:
+       wNumArgs = 3;
+       lpArgs[0] = va_arg(listArgs, LPTSTR);
+       StringCbPrintf(lpStrings[1],STRLEN,"%d",va_arg(listArgs,int));
+       lpArgs[1] = lpStrings[1];
+       lpArgs[2] = va_arg(listArgs,LPTSTR);
+       break;
+    }
+    va_end(listArgs);
+
+    // Make sure we were not given too many args.
+    if (wNumArgs >= MAXARGS)
+       return;
+
+    // Log the event.
+    code = ReportEvent(hEventSource,           // handle of event source
+                wEventType,            // event type
+                0,                     // event category
+                dwEventID,             // event ID
+                NULL,                  // current user's SID
+                wNumArgs,              // strings in lpszArgs
+                0,                     // no bytes of raw data
+                wNumArgs ? lpArgs : NULL,              // array of error strings
+                NULL);                 // no raw data
+
+
+    DeregisterEventSource(hEventSource);
+}      
+
+
index 614d2d8..c8e7ad0 100644 (file)
@@ -8,6 +8,5 @@
 #include "afsd_eventmessages.h"
 
 VOID LogEventMessage(WORD wEventType, DWORD dwEventID, DWORD dwMessageID);
-VOID LogEvent(WORD wEventType, DWORD dwEventID, LPTSTR lpString, ...);
-
+VOID LogEvent(WORD wEventType, DWORD dwEventID, ...);
 #endif /* __AFSD_EVENTLOG_H_ */
index 37f86ac..33d5638 100644 (file)
@@ -4,6 +4,9 @@
 ;// This file contains the message definitions for the
 ;// TransarcAFSDaemon service to facilitate system event logging.
 ;//
+;// Do not edit the header file.  It is autogenerated from
+;// afsd_eventmessages.mc.  If you edit afsd_eventmessages.mc
+;// be sure to ensure the consistency of the data types in LogEvent()
 ;//
 ;
 ;#ifndef __AFSD_EVENTMESSAGES_H_
@@ -25,7 +28,7 @@ FacilityNames=(System=0x0:FACILITY_SYSTEM
 
 LanguageNames=(English=0x409:MSG00409)
 
-MessageId=0x1
+MessageId=0x1001
 Severity=Informational
 Facility=System
 SymbolicName=MSG_TIME_FLUSH_PER_VOLUME
@@ -106,4 +109,209 @@ Flush volumes thread received unrecognized event.
 .
 
 
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SERVER_REPORTS_VNOVOL
+Language=English
+Server %1 reported volume %2 as not attached.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SERVER_REPORTS_VMOVED
+Language=English
+Server %1 reported volume %2 as moved.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SERVER_REPORTS_VOFFLINE
+Language=English
+Server %1 reported volume %2 as offline.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SERVER_REPORTS_VSALVAGE
+Language=English
+Server %1 reported volume %2 as needs salvage.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SERVER_REPORTS_VNOSERVICE
+Language=English
+Server %1 reported volume %2 as not in service.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SERVER_REPORTS_VIO
+Language=English
+Server %1 reported volume %2 as temporarily unaccessible.
+.
+
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_RX_HARD_DEAD_TIME_EXCEEDED
+Language=English
+Hard Dead Time exceeded when communicating with server %1
+.
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_BAD_SMB_PARAM
+Language=English
+File %1 Line %2 Bad SMB param %3 out of %4, ncb len %5.
+.
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_BAD_SMB_PARAM_WITH_OFFSET
+Language=English
+File %1 Line %2 Bad SMB param %3 offset %4 out of %5, ncb len %6.
+.
+
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_BAD_SMB_TOO_SHORT
+Language=English
+SMB message too short, len %1.
+.
+
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_BAD_SMB_WRONG_SESSION
+Language=English
+SMB request straddled session startup, took %1 ms, ncb length %2.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_BAD_SMB_INVALID
+Language=English
+Invalid SMB message, length %1.
+.
+
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_BAD_SMB_INCOMPLETE
+Language=English
+Incomplete SMB message, length %1.
+.
+
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_BAD_VCP
+Language=English
+VCP could not be found:
+LSNs[idx_session]=[%1]
+lanas[idx_session]=[%2]
+ncbp->ncb_lsn=[%3]
+ncbp->ncb_lana_num=[%4]
+.
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_UNHANDLED_EXCEPTION
+Language=English
+Unhandled exception.  Examine OpenAFS log files for further details.
+.
+
+MessageId=
+Severity=Informational
+Facility=System
+SymbolicName=MSG_SMB_SESSION_START
+Language=English
+SMB session startup, %1 ongoing ops.
+.
+
+MessageId=
+Severity=Warning
+Facility=System
+SymbolicName=MSG_SMB_ZERO_TRANSACTION_COUNT
+Language=English
+Transaction2 word count = 0.
+.
+
+
+MessageId=
+Severity=Informational
+Facility=System
+SymbolicName=MSG_SERVICE_START_PENDING
+Language=English
+OpenAFS Start Pending.
+.
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_SERVICE_INCORRECT_VERSIONS
+Language=English
+OpenAFS Start Failed due to version inconsistency.  See afsd_init.log for details.
+.
+
+MessageId=
+Severity=Informational
+Facility=System
+SymbolicName=MSG_SERVICE_RUNNING
+Language=English
+OpenAFS Running.
+.
+
+MessageId=
+Severity=Informational
+Facility=System
+SymbolicName=MSG_SERVICE_STOPPING
+Language=English
+OpenAFS Stopping.
+.
+
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_SERVICE_ERROR_STOP
+Language=English
+OpenAFS Stopping due to error: Unknown reason.
+.
+
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_SERVICE_ERROR_STOP_WITH_MSG
+Language=English
+OpenAFS Stopping due to error: %1.
+.
+
+
+MessageId=
+Severity=Error
+Facility=System
+SymbolicName=MSG_SERVICE_ERROR_STOP_WITH_MSG_AND_LOCATION
+Language=English
+OpenAFS Stopping due to error (%1:%2): %3.
+.
+
 ;#endif /* __AFSD_EVENTMESSAGES_H_ 1 */
index 9992708..65ebe5c 100644 (file)
@@ -59,20 +59,11 @@ int powerEventsRegistered = 0;
  */
 static void afsd_notifier(char *msgp, char *filep, long line)
 {
-    char tbuffer[512];
-    char *ptbuf[1];
-    HANDLE h;
-
     if (filep)
-        sprintf(tbuffer, "Error at file %s, line %d: %s",
+       LogEvent(EVENTLOG_ERROR_TYPE, MSG_SERVICE_ERROR_STOP_WITH_MSG_AND_LOCATION, 
                  filep, line, msgp);
     else
-        sprintf(tbuffer, "Error at unknown location: %s", msgp);
-
-    h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-    ptbuf[0] = tbuffer;
-    ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, line, NULL, 1, 0, ptbuf, NULL);
-    DeregisterEventSource(h);
+       LogEvent(EVENTLOG_ERROR_TYPE, MSG_SERVICE_ERROR_STOP_WITH_MSG, msgp);
 
     GlobalStatus = line;
 
@@ -1089,13 +1080,7 @@ afsd_Main(DWORD argc, LPTSTR *argv)
     SetServiceStatus(StatusHandle, &ServiceStatus);
 #endif
 
-    {       
-    HANDLE h; char *ptbuf[1];
-    h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-    ptbuf[0] = "AFS start pending";
-    ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
-    DeregisterEventSource(h);
-    }
+    LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_SERVICE_START_PENDING);
 
 #ifdef REGISTER_POWER_NOTIFICATIONS
     {
@@ -1134,14 +1119,8 @@ afsd_Main(DWORD argc, LPTSTR *argv)
         ServiceStatus.dwControlsAccepted = 0;
         SetServiceStatus(StatusHandle, &ServiceStatus);
 
-               {       
-               HANDLE h; char *ptbuf[1];
-               h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-               ptbuf[0] = "Incorrect module versions loaded";
-               ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
-               DeregisterEventSource(h);
-               }
-                       
+       LogEvent(EVENTLOG_ERROR_TYPE, MSG_SERVICE_INCORRECT_VERSIONS);
+
         /* exit if initialization failed */
         return;
     }
@@ -1301,13 +1280,8 @@ afsd_Main(DWORD argc, LPTSTR *argv)
         ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP | SERVICE_ACCEPT_SHUTDOWN | SERVICE_ACCEPT_POWEREVENT | SERVICE_ACCEPT_PARAMCHANGE;
         SetServiceStatus(StatusHandle, &ServiceStatus);
 #endif  
-        {
-           HANDLE h; char *ptbuf[1];
-            h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-            ptbuf[0] = "AFS running";
-            ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, ptbuf, NULL);
-            DeregisterEventSource(h);
-        }
+
+       LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_SERVICE_RUNNING);
     }
 
     /* allow an exit to be called when started */
@@ -1347,14 +1321,10 @@ afsd_Main(DWORD argc, LPTSTR *argv)
 
     afsi_log("Received Termination Signal, Stopping Service");
 
-    {   
-        HANDLE h; char *ptbuf[1];
-       h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-       ptbuf[0] = "AFS quitting";
-       ReportEvent(h, GlobalStatus ? EVENTLOG_ERROR_TYPE : EVENTLOG_INFORMATION_TYPE,
-                0, 0, NULL, 1, 0, ptbuf, NULL);
-        DeregisterEventSource(h);
-    }
+    if ( GlobalStatus )
+       LogEvent(EVENTLOG_ERROR_TYPE, MSG_SERVICE_ERROR_STOP);
+    else
+       LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_SERVICE_STOPPING);
 
     /* allow an exit to be called prior to stopping the service */
     hHookDll = LoadLibrary(AFSD_HOOK_DLL);
index b2443e9..7ad4598 100644 (file)
@@ -9,12 +9,14 @@
 
 /* Define VERSIONINFO resource */
 
-#define  AFS_VERINFO_FILE_DESCRIPTION "AFS Client Daemon"
+#define  AFS_VERINFO_FILE_DESCRIPTION "OpenAFS Client Service"
 #define AFS_VERINFO_NAME "afsd_service"
 #define AFS_VERINFO_FILENAME "afsd_service.exe"
 
 #include "AFS_component_version_number.h"
 #include "..\..\config\NTVersioninfo.rc"
 
+#include "afsd_eventmessages.rc"
+
 1       ICON    OpenAFS.ico
 
index 28512af..ab8e5d7 100644 (file)
@@ -49,80 +49,6 @@ extern int errno;
 #define AFS_CELLSERVDB AFS_CELLSERVDB_UNIX
 #endif /* DJGPP || WIN95 */
 
-static DWORD TraceOption = 0;
-
-/* This really needs to be initialized at DLL Init */
-#define TRACE_OPTION_EVENT 4
-
-#define ISCONFIGTRACE(v) ( ((v) & TRACE_OPTION_EVENT)==TRACE_OPTION_EVENT)
-
-void DebugEvent0_local(char *a) 
-{
-       HANDLE h; char *ptbuf[1];
-       if (!ISCONFIGTRACE(TraceOption))
-               return;
-       h = RegisterEventSource(NULL, a);
-       ptbuf[0] = a;
-       ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);
-       DeregisterEventSource(h);
-}
-
-#define MAXBUF_ 512
-
-void DebugEvent_local(char *a,char *b,...) 
-{
-       HANDLE h; char *ptbuf[1],buf[MAXBUF_+1];
-       va_list marker;
-       if (!ISCONFIGTRACE(TraceOption))
-               return;
-       h = RegisterEventSource(NULL, a);
-       va_start(marker,b);
-       _vsnprintf(buf,MAXBUF_,b,marker);
-       ptbuf[0] = buf;
-       ReportEvent(h, EVENTLOG_INFORMATION_TYPE, 0, 0, NULL, 1, 0, (const char **)ptbuf, NULL);\
-       DeregisterEventSource(h);
-       va_end(marker);
-}
-
-#define REG_CLIENT_PARMS_KEY            TEXT("SYSTEM\\CurrentControlSet\\Services\\TransarcAFSDaemon\\Parameters")
-#define REG_CLIENT_TRACE_OPTION_PARM   TEXT("TraceOption")
-
-#ifdef COMMENT
-BOOL WINAPI DllMain (HANDLE hModule, DWORD fdwReason, LPVOID lpReserved)
-{
-    switch (fdwReason)
-    {
-    case DLL_PROCESS_ATTACH: {
-        DWORD LSPtype, LSPsize;
-        HKEY NPKey;
-
-        (void) RegOpenKeyEx(HKEY_LOCAL_MACHINE, AFSREG_CLT_SVC_PARAM_SUBKEY,
-                             0, KEY_QUERY_VALUE, &NPKey);
-        LSPsize=sizeof(TraceOption);
-        RegQueryValueEx(NPKey, REG_CLIENT_TRACE_OPTION_PARM, NULL,
-                        &LSPtype, (LPBYTE)&TraceOption, &LSPsize);
-
-        RegCloseKey (NPKey);
-        break;
-    }
-
-    case DLL_THREAD_ATTACH:
-        break;
-
-    case DLL_THREAD_DETACH:
-        break;
-
-    case DLL_PROCESS_DETACH:
-        break;
-
-    default:
-        return FALSE;
-    }
-
-    return TRUE;   // successful DLL_PROCESS_ATTACH
-}
-#endif /* COMMENT */
-
 static long cm_ParsePair(char *lineBufferp, char *leftp, char *rightp)
 {
     char *tp;
@@ -179,7 +105,7 @@ static long cm_ParsePair(char *lineBufferp, char *leftp, char *rightp)
 static int
 IsWindowsModule(const char * name)
 {
-    char * p;
+    const char * p;
     int i;
 
     /* Do not perform searches for probable Windows modules */
@@ -264,10 +190,10 @@ long cm_SearchCellFile(char *cellNamep, char *newCellNamep,
 
     bestp = fopen(wdir, "r");
     
-#ifdef DEBUG
-    DebugEvent_local("AFS- cm_searchfile fopen", "Handle[%x], wdir[%s]", bestp, wdir);
+#ifdef CELLSERV_DEBUG
+    osi_Log2(afsd_logp,"cm_searchfile fopen handle[%p], wdir[%s]", bestp, 
+            osi_LogSaveString(afsd_logp,wdir));
 #endif
-
     /* have we seen the cell line for the guy we're looking for? */
     inRightCell = 0;
     while (1) {
@@ -322,9 +248,9 @@ long cm_SearchCellFile(char *cellNamep, char *newCellNamep,
                    strcpy(newCellNamep, lineBuffer+1);
                 inRightCell = 1;
                tracking = 0;
-#ifdef DEBUG
-                DebugEvent_local("AFS- cm_searchfile is cell", "inRightCell[%x], linebuffer[%s]", 
-                                inRightCell, lineBuffer);
+#ifdef CELLSERV_DEBUG                
+               osi_Log2(afsd_logp, "cm_searchfile is cell inRightCell[%p], linebuffer[%s]",
+                        inRightCell, osi_LogSaveString(afsd_logp,lineBuffer));
 #endif
            }
            else if (strnicmp(lineBuffer+1, cellNamep,
@@ -366,15 +292,11 @@ long cm_SearchCellFile(char *cellNamep, char *newCellNamep,
                /* add the server to the VLDB list */
                 WSASetLastError(0);
                 thp = gethostbyname(valuep);
-#ifdef DEBUG
-                {
-                    int iErr = WSAGetLastError();
-                    DebugEvent_local("AFS- cm_searchfile inRightCell", 
-                                     "thp[%x], valuep[%s], WSAGetLastError[%d]", 
-                                     thp, valuep, iErr);
-                }
+#ifdef CELLSERV_DEBUG
+               osi_Log3(afsd_logp,"cm_searchfile inRightCell thp[%p], valuep[%s], WSAGetLastError[%d]",
+                        thp, osi_LogSaveString(afsd_logp,valuep), WSAGetLastError());
 #endif
-                if (thp) {
+               if (thp) {
                    memcpy(&vlSockAddr.sin_addr.s_addr, thp->h_addr,
                             sizeof(long));
                     vlSockAddr.sin_family = AF_INET;
@@ -428,11 +350,9 @@ long cm_SearchCellByDNS(char *cellNamep, char *newCellNamep, int *ttl,
     int numServers;
     int i;
     struct sockaddr_in vlSockAddr;
-
-#ifdef DEBUG
-    DebugEvent_local("AFS SearchCellDNS-","Doing search for [%s]", cellNamep);
+#ifdef CELLSERV_DEBUG
+    osi_Log1(afsd_logp,"SearchCellDNS-Doing search for [%s]", osi_LogSaveString(afsd_logp,cellNamep));
 #endif
-
     if ( IsWindowsModule(cellNamep) )
        return -1;
     rc = getAFSServer(cellNamep, cellHostAddrs, cellHostNames, &numServers, ttl);
index bf8a7f1..6149768 100644 (file)
 #include <malloc.h>
 #include <osi.h>
 #include <rx/rx.h>
-#ifndef DJGPP
-#include <rx/rxkad.h>
-#else
 #include <rx/rxkad.h>
-#endif
-
 #include "afsd.h"
 
 osi_rwlock_t cm_connLock;
@@ -153,7 +148,8 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
     int dead_session;
     long timeUsed, timeLeft;
     long code;
-        
+    char addr[16];
+
     osi_Log2(afsd_logp, "cm_Analyze connp 0x%p, code 0x%x",
              connp, errorCode);
 
@@ -336,31 +332,46 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
     else if (errorCode == VNOVOL || errorCode == VMOVED || errorCode == VOFFLINE ||
              errorCode == VSALVAGE || errorCode == VNOSERVICE || errorCode == VIO) 
     {       
-#ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-        char s[100];
-#endif
         char addr[16];
         char *format;
-
+#ifndef DJGPP
+       DWORD msgID;
+#endif
         switch ( errorCode ) {
         case VNOVOL:
+#ifndef DJGPP
+           msgID = MSG_SERVER_REPORTS_VNOVOL;
+#endif
             format = "Server %s reported volume %d as not attached.";
             break;
         case VMOVED:
+#ifndef DJGPP
+           msgID = MSG_SERVER_REPORTS_VMOVED;
+#endif
             format = "Server %s reported volume %d as moved.";
             break;
         case VOFFLINE:
+#ifndef DJGPP
+           msgID = MSG_SERVER_REPORTS_VOFFLINE;
+#endif
             format = "Server %s reported volume %d as offline.";
             break;
         case VSALVAGE:
+#ifndef DJGPP
+           msgID = MSG_SERVER_REPORTS_VSALVAGE;
+#endif
             format = "Server %s reported volume %d as needs salvage.";
             break;
         case VNOSERVICE:
+#ifndef DJGPP
+           msgID = MSG_SERVER_REPORTS_VNOSERVICE;
+#endif
             format = "Server %s reported volume %d as not in service.";
             break;
         case VIO:
+#ifndef DJGPP
+           msgID = MSG_SERVER_REPORTS_VIO;
+#endif
             format = "Server %s reported volume %d as temporarily unaccessible.";
             break;
         }
@@ -371,16 +382,10 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
                  ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
                  ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
                  ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24)); 
-        osi_Log2(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume);
-        
+
+       osi_Log2(afsd_logp, format, osi_LogSaveString(afsd_logp,addr), fidp->volume);
 #ifndef DJGPP
-        /* Create Event Log message */
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-        sprintf(s, format, addr, fidp->volume);
-        ptbuf[0] = s;
-        ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1009, NULL,
-                     1, 0, ptbuf, NULL);
-        DeregisterEventSource(h);
+       LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume);
 #endif
 
         /* Mark server offline for this volume */
@@ -423,20 +428,21 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
          * this is to prevent the SMB session from timing out
          * In addition, we log an event to the event log 
          */
+
+        /* Log server being offline for this volume */
+        sprintf(addr, "%d.%d.%d.%d", 
+                 ((serverp->addr.sin_addr.s_addr & 0xff)),
+                 ((serverp->addr.sin_addr.s_addr & 0xff00)>> 8),
+                 ((serverp->addr.sin_addr.s_addr & 0xff0000)>> 16),
+                 ((serverp->addr.sin_addr.s_addr & 0xff000000)>> 24)); 
+
 #ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-        char s[100];
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-        sprintf(s, "cm_Analyze: HardDeadTime exceeded.");
-        ptbuf[0] = s;
-        ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1009, NULL,
-                     1, 0, ptbuf, NULL);
-        DeregisterEventSource(h);
+       LogEvent(EVENTLOG_WARNING_TYPE, MSG_RX_HARD_DEAD_TIME_EXCEEDED, addr);
 #endif /* !DJGPP */
          
         retry = 0;
-        osi_Log0(afsd_logp, "cm_Analyze: hardDeadTime exceeded");
+        osi_Log1(afsd_logp, "cm_Analyze: hardDeadTime exceeded addr[%s]",
+                osi_LogSaveString(afsd_logp,addr));
     }
     else if (errorCode >= -64 && errorCode < 0) {
         /* mark server as down */
index 237177e..184ca71 100644 (file)
@@ -38,21 +38,6 @@ static int cm_debugDnlc = 0; /* debug dnlc */
  *     1.  If nameHash[i] is NULL, list is empty
  *     2.  A single element in a hash bucket has itself as prev and next.
  */
-#ifndef DJGPP
-#define dnlcNotify(x,debug){                    \
-                        HANDLE  hh;             \
-                        char *ptbuf[1];         \
-                        ptbuf[0] = x;           \
-                       if ( debug ) {          \
-                            hh = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);   \
-                            ReportEvent(hh,EVENTLOG_ERROR_TYPE,0,__LINE__,  \
-                               NULL, 1, 0, ptbuf, NULL);                   \
-                            DeregisterEventSource(hh);                 \
-                       }                                               \
-                     }  
-#else
-#define dnlcNotify(x,debug)
-#endif /* !DJGPP */
 
 /* Must be called with cm_dnlcLock write locked */
 static cm_nc_t * 
@@ -80,7 +65,6 @@ GetMeAnEntry()
     tnc = cm_data.nameHash[nameptr];
     if (!tnc)   
     {
-       dnlcNotify("null tnc in GetMeAnEntry",1);
        osi_Log0(afsd_logp,"null tnc in GetMeAnEntry");
        return 0;
     }
@@ -158,7 +142,6 @@ cm_dnlcEnter ( cm_scache_t *adp,
            dnlcstats.cycles++;
            lock_ReleaseWrite(&cm_dnlcLock);
 
-           dnlcNotify("DNLC cycle",1);
            if ( cm_debugDnlc )
                 osi_Log0(afsd_logp, "DNLC cycle");
            cm_dnlcPurge();
@@ -275,7 +258,6 @@ cm_dnlcLookup (cm_scache_t *adp, cm_lookupSearch_t* sp)
            dnlcstats.cycles++;
            lock_ReleaseRead(&cm_dnlcLock);
 
-           dnlcNotify("DNLC cycle",1); 
            if ( cm_debugDnlc ) 
                osi_Log0(afsd_logp, "DNLC cycle"); 
            cm_dnlcPurge();
@@ -315,7 +297,6 @@ RemoveEntry (cm_nc_t *tnc, unsigned int key)
 {
     if (!tnc->prev) /* things on freelist always have null prev ptrs */
     {
-       dnlcNotify("Bogus dnlc freelist", 1);
        osi_Log0(afsd_logp,"Bogus dnlc freelist");
        return 1;   /* error */
     }
@@ -384,7 +365,6 @@ cm_dnlcRemove (cm_scache_t *adp, char *aname)
            dnlcstats.cycles++;
            lock_ReleaseWrite(&cm_dnlcLock);
 
-           dnlcNotify("DNLC cycle",1); 
            if ( cm_debugDnlc ) 
                osi_Log0(afsd_logp, "DNLC cycle"); 
            cm_dnlcPurge();
index db1a211..2a80dab 100644 (file)
@@ -984,9 +984,9 @@ smb_user_t *smb_FindUID(smb_vc_t *vcp, unsigned short uid, int flags)
     for(uidp = vcp->usersp; uidp; uidp = uidp->nextp) {
         if (uid == uidp->userID) {
             uidp->refCount++;
-            osi_LogEvent("AFS smb_FindUID (Find by UID)",NULL," VCP[0x%p] found-uid[%d] name[%s]",
-                          vcp, uidp->userID, 
-                          osi_LogSaveString(smb_logp, (uidp->unp) ? uidp->unp->name : ""));
+            osi_Log3(smb_logp, "smb_FindUID vcp[0x%p] found-uid[%d] name[%s]",
+                    vcp, uidp->userID, 
+                    osi_LogSaveString(smb_logp, (uidp->unp) ? uidp->unp->name : ""));
             break;
         }
     }
@@ -1000,7 +1000,9 @@ smb_user_t *smb_FindUID(smb_vc_t *vcp, unsigned short uid, int flags)
         vcp->usersp = uidp;
         lock_InitializeMutex(&uidp->mx, "user_t mutex");
         uidp->userID = uid;
-        osi_LogEvent("AFS smb_FindUID (Find by UID)",NULL,"VCP[0x%p] new-uid[%d] name[%s]",vcp,uidp->userID,(uidp->unp ? uidp->unp->name : ""));
+        osi_Log3(smb_logp, "smb_FindUID vcp[0x%p] new-uid[%d] name[%s]",
+                vcp, uidp->userID, 
+                osi_LogSaveString(smb_logp,uidp->unp ? uidp->unp->name : ""));
     }
     lock_ReleaseWrite(&smb_rctLock);
     return uidp;
@@ -1042,7 +1044,8 @@ smb_user_t *smb_FindUserByNameThisSession(smb_vc_t *vcp, char *usern)
             continue;
         if (stricmp(uidp->unp->name, usern) == 0) {
             uidp->refCount++;
-            osi_LogEvent("AFS smb_FindUserByNameThisSession",NULL,"VCP[0x%x] uid[%d] match-name[%s]",vcp,uidp->userID,usern);
+            osi_Log3(smb_logp,"smb_FindUserByNameThisSession vcp[0x%p] uid[%d] match-name[%s]",
+                    vcp,uidp->userID,osi_LogSaveString(smb_logp,usern));
             break;
         } else
             continue;
@@ -2016,22 +2019,16 @@ unsigned int smb_GetSMBParm(smb_packet_t *smbp, int parm)
     parmCount = *smbp->wctp;
 
     if (parm >= parmCount) {
-        char s[100];
-#ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-#endif  
-        sprintf(s, "Bad SMB param %d out of %d, ncb len %d",
-                 parm, parmCount, smbp->ncb_length);
-#ifndef DJGPP   
-        ptbuf[0] = s;
-        ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 1006, NULL,
-                     1, smbp->ncb_length, ptbuf, smbp);
-        DeregisterEventSource(h);
-#endif
-        osi_Log3(smb_logp,"Bad SMB param %d out of %d, ncb len %d",
+       char s[100];
+
+       sprintf(s, "Bad SMB param %d out of %d, ncb len %d",
+                parm, parmCount, smbp->ncb_length);
+       osi_Log3(smb_logp,"Bad SMB param %d out of %d, ncb len %d",
                  parm, parmCount, smbp->ncb_length);
+#ifndef DJGPP
+       LogEvent(EVENTLOG_ERROR_TYPE, MSG_BAD_SMB_PARAM, 
+                __FILE__, __LINE__, parm, parmCount, smbp->ncb_length);
+#endif /* !DJGPP */
         osi_panic(s, __FILE__, __LINE__);
     }
     parmDatap = smbp->wctp + (2*parm) + 1;
@@ -2049,19 +2046,13 @@ unsigned int smb_GetSMBOffsetParm(smb_packet_t *smbp, int parm, int offset)
 
     if (parm * 2 + offset >= parmCount * 2) {
         char s[100];
-#ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-#endif
+
         sprintf(s, "Bad SMB param %d offset %d out of %d, ncb len %d",
                 parm, offset, parmCount, smbp->ncb_length);
 #ifndef DJGPP
-        ptbuf[0] = s;
-        ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 1006, NULL,
-                    1, smbp->ncb_length, ptbuf, smbp);
-        DeregisterEventSource(h);
-#endif
+       LogEvent(EVENTLOG_ERROR_TYPE, MSG_BAD_SMB_PARAM_WITH_OFFSET, 
+                __FILE__, __LINE__, parm, offset, parmCount, smbp->ncb_length);
+#endif /* !DJGPP */
         osi_Log4(smb_logp, "Bad SMB param %d offset %d out of %d, ncb len %d",
                 parm, offset, parmCount, smbp->ncb_length);
         osi_panic(s, __FILE__, __LINE__);
@@ -6727,18 +6718,10 @@ void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp,
     if (ncbp->ncb_length < offsetof(struct smb, vdata)) {
         /* log it and discard it */
 #ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-        char s[100];
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-        sprintf(s, "SMB message too short, len %d", ncbp->ncb_length);
-        ptbuf[0] = s;
-        ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1007, NULL,
-                     1, ncbp->ncb_length, ptbuf, inp);
-        DeregisterEventSource(h);
-#else /* DJGPP */
-        osi_Log1(smb_logp, "SMB message too short, len %d", ncbp->ncb_length);
+       LogEvent(EVENTLOG_WARNING_TYPE, MSG_BAD_SMB_TOO_SHORT, 
+                __FILE__, __LINE__, ncbp->ncb_length);
 #endif /* !DJGPP */
+       osi_Log1(smb_logp, "SMB message too short, len %d", ncbp->ncb_length);
         return;
     }
 
@@ -6799,10 +6782,8 @@ void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp,
                 code = smb_ReceiveCoreWriteRaw (vcp, inp, outp,
                                                  rwcp);
             else {
-                osi_LogEvent("AFS Dispatch %s",(myCrt_Dispatch(inp->inCom)),"vcp 0x%p lana %d lsn %d",vcp,vcp->lana,vcp->lsn);
                 osi_Log4(smb_logp,"Dispatch %s vcp 0x%p lana %d lsn %d",myCrt_Dispatch(inp->inCom),vcp,vcp->lana,vcp->lsn);
                 code = (*(dp->procp)) (vcp, inp, outp);
-                osi_LogEvent("AFS Dispatch return",NULL,"Code 0x%x",code);
                 osi_Log4(smb_logp,"Dispatch return  code 0x%x vcp 0x%p lana %d lsn %d",code,vcp,vcp->lana,vcp->lsn);
 #ifdef LOG_PACKET
                 if ( code == CM_ERROR_BADSMB ||
@@ -6812,21 +6793,13 @@ void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp,
             }   
 
             if (oldGen != sessionGen) {
-#ifndef DJGPP
-                HANDLE h;
-                char *ptbuf[1];
-                char s[100];
                 newTime = GetCurrentTime();
-                h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-                sprintf(s, "Pkt straddled session startup, took %d ms, ncb length %d",
-                         newTime - oldTime, ncbp->ncb_length);
-                ptbuf[0] = s;
-                ReportEvent(h, EVENTLOG_WARNING_TYPE, 0,
-                             1005, NULL, 1, ncbp->ncb_length, ptbuf, smbp);
-                DeregisterEventSource(h);
+#ifndef DJGPP
+               LogEvent(EVENTLOG_WARNING_TYPE, MSG_BAD_SMB_WRONG_SESSION, 
+                        newTime - oldTime, ncbp->ncb_length);
 #endif /* !DJGPP */
-                osi_Log1(smb_logp, "Pkt straddled session startup, "
-                          "ncb length %d", ncbp->ncb_length);
+               osi_Log2(smb_logp, "Pkt straddled session startup, "
+                          "took %d ms, ncb length %d", newTime - oldTime, ncbp->ncb_length);
             }
         }
         else {
@@ -6851,25 +6824,12 @@ void smb_DispatchPacket(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp,
         /* catastrophic failure:  log as much as possible */
         if (code == CM_ERROR_BADSMB) {
 #ifndef DJGPP
-            HANDLE h;
-            char *ptbuf[1];
-            char s[100];
-
-            osi_Log1(smb_logp,
-                      "Invalid SMB, ncb_length %d",
-                      ncbp->ncb_length);
-
-            h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-            sprintf(s, "Invalid SMB message, length %d",
-                     ncbp->ncb_length);
-            ptbuf[0] = s;
-            ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 1002, NULL,
-                         1, ncbp->ncb_length, ptbuf, smbp);
-            DeregisterEventSource(h);
+           LogEvent(EVENTLOG_WARNING_TYPE, MSG_BAD_SMB_INVALID, 
+                    ncbp->ncb_length);
+#endif /* !DJGPP */
 #ifdef LOG_PACKET
             smb_LogPacket(inp);
 #endif /* LOG_PACKET */
-#endif /* !DJGPP */
             osi_Log1(smb_logp, "Invalid SMB message, length %d",
                      ncbp->ncb_length);
 
@@ -7439,19 +7399,8 @@ void smb_Server(VOID *parmp)
             /* Treat as transient error */
             {
 #ifndef DJGPP
-                EVENT_HANDLE h;
-                char *ptbuf[1];
-                char s[100];
-
-                h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-                sprintf(s, "SMB message incomplete, length %d",
-                         ncbp->ncb_length);
-                ptbuf[0] = s;
-                ReportEvent(h, EVENTLOG_WARNING_TYPE, 0,
-                             1001, NULL, 1,
-                             ncbp->ncb_length, ptbuf,
-                             bufp);
-                DeregisterEventSource(h);
+               LogEvent(EVENTLOG_WARNING_TYPE, MSG_BAD_SMB_INCOMPLETE, 
+                        ncbp->ncb_length);
 #endif /* !DJGPP */
                 osi_Log1(smb_logp,
                           "dispatch smb recv failed, message incomplete, ncb_length %d",
@@ -7504,29 +7453,12 @@ void smb_Server(VOID *parmp)
          * Log, sleep and resume.
          */
         if (!vcp) {
-            HANDLE h;
-            char buf[1000];
-            char *ptbuf[1];
-
-            sprintf(buf,
-                     "Bad vcp!! : "
-                     "LSNs[idx_session]=[%d],"
-                     "lanas[idx_session]=[%d],"
-                     "ncbp->ncb_lsn=[%d],"
-                     "ncbp->ncb_lana_num=[%d]",
+           LogEvent(EVENTLOG_WARNING_TYPE, MSG_BAD_VCP,
                      LSNs[idx_session],
                      lanas[idx_session],
                      ncbp->ncb_lsn,
                      ncbp->ncb_lana_num);
 
-            ptbuf[0] = buf;
-
-            h = RegisterEventSource(NULL,AFS_DAEMON_EVENT_NAME);
-            if (h) {
-                ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 1001, NULL,1,sizeof(*ncbp),ptbuf,(void*)ncbp);
-                DeregisterEventSource(h);
-            }
-
             /* Also log in the trace log. */
             osi_Log4(smb_logp, "Server: BAD VCP!"
                       "LSNs[idx_session]=[%d],"
@@ -7631,17 +7563,7 @@ DWORD smb_ServerExceptionFilter(void) {
      * we have a trace (assuming tracing was enabled). Otherwise, this should
      * throw a second exception.
      */
-    HANDLE h;
-    char *ptbuf[1];
-
-    ptbuf[0] = "Unhandled exception forcing trace";
-
-    h = RegisterEventSource(NULL,AFS_DAEMON_EVENT_NAME);
-    if(h) {
-        ReportEvent(h, EVENTLOG_ERROR_TYPE, 0, 1001, NULL,1,0,ptbuf,NULL);
-        DeregisterEventSource(h);
-    }
-
+    LogEvent(EVENTLOG_ERROR_TYPE, MSG_UNHANDLED_EXCEPTION);
     afsd_ForceTrace(TRUE);
     buf_ForceTrace(TRUE);
     return EXCEPTION_CONTINUE_SEARCH;
@@ -7810,16 +7732,7 @@ void smb_Listener(void *parmp)
 
         if (reportSessionStartups) {
 #ifndef DJGPP
-            HANDLE h;
-            char *ptbuf[1];
-            char s[100];
-
-            h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-            sprintf(s, "SMB session startup, %d ongoing ops", ongoingOps);
-            ptbuf[0] = s;
-            ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1004, NULL,
-                         1, 0, ptbuf, NULL);
-            DeregisterEventSource(h);
+            LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_SMB_SESSION_START, ongoingOps);
 #else /* DJGPP */
             time(&now);
             fprintf(stderr, "%s: New session %d starting from host %s\n",
index 10d58a8..6b79a09 100644 (file)
@@ -843,7 +843,6 @@ long smb_ReceiveV3SessionSetupX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *
         unp = uidp->unp;
         userp = unp->userp;
         newUid = (unsigned short)uidp->userID;  /* For some reason these are different types!*/
-        osi_LogEvent("AFS smb_ReceiveV3SessionSetupX",NULL,"FindUserByName:Lana[%d],lsn[%d],userid[%d],name[%s]",vcp->lana,vcp->lsn,newUid,osi_LogSaveString(smb_logp, usern));
         osi_Log3(smb_logp,"smb_ReceiveV3SessionSetupX FindUserByName:Lana[%d],lsn[%d],userid[%d]",vcp->lana,vcp->lsn,newUid);
         smb_ReleaseUID(uidp);
     }
@@ -869,7 +868,6 @@ long smb_ReceiveV3SessionSetupX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *
         uidp = smb_FindUID(vcp, newUid, SMB_FLAG_CREATE);
         lock_ObtainMutex(&uidp->mx);
         uidp->unp = unp;
-        osi_LogEvent("AFS smb_ReceiveV3SessionSetupX",NULL,"MakeNewUser:VCP[%p],Lana[%d],lsn[%d],userid[%d],TicketKTCName[%s]",vcp,vcp->lana,vcp->lsn,newUid,osi_LogSaveString(smb_logp, usern));
         osi_Log4(smb_logp,"smb_ReceiveV3SessionSetupX MakeNewUser:VCP[%p],Lana[%d],lsn[%d],userid[%d]",vcp,vcp->lana,vcp->lsn,newUid);
         lock_ReleaseMutex(&uidp->mx);
         smb_ReleaseUID(uidp);
@@ -1292,19 +1290,9 @@ long smb_ReceiveV3Trans(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
 
     /* We sometimes see 0 word count.  What to do? */
     if (*inp->wctp == 0) {
+        osi_Log0(smb_logp, "Transaction2 word count = 0"); 
 #ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-
-        osi_Log0(smb_logp, "TRANSACTION word count = 0"); 
-
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-        ptbuf[0] = "Transaction2 word count = 0";
-        ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1003, NULL,
-                    1, inp->ncb_length, ptbuf, inp);
-        DeregisterEventSource(h);
-#else /* DJGPP */
-        osi_Log0(smb_logp, "TRANSACTION word count = 0"); 
+       LogEvent(EVENTLOG_WARNING_TYPE, MSG_SMB_ZERO_TRANSACTION_COUNT);
 #endif /* !DJGPP */
 
         smb_SetSMBDataLength(outp, 0);
@@ -1377,14 +1365,11 @@ long smb_ReceiveV3Trans(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
         rapOp = asp->parmsp[0];
 
         if ( rapOp >= 0 && rapOp < SMB_RAP_NOPCODES && smb_rapDispatchTable[rapOp].procp) {
-            osi_LogEvent("AFS-Dispatch-RAP[%s]",myCrt_RapDispatch(rapOp),"vcp[%p] lana[%d] lsn[%d]",vcp,vcp->lana,vcp->lsn);
             osi_Log4(smb_logp,"AFS Server - Dispatch-RAP %s vcp[%p] lana[%d] lsn[%d]",myCrt_RapDispatch(rapOp),vcp,vcp->lana,vcp->lsn);
             code = (*smb_rapDispatchTable[rapOp].procp)(vcp, asp, outp);
-            osi_LogEvent("AFS-Dispatch-RAP return",myCrt_RapDispatch(rapOp),"Code 0x%x",code);
             osi_Log4(smb_logp,"AFS Server - Dispatch-RAP return  code 0x%x vcp[%x] lana[%d] lsn[%d]",code,vcp,vcp->lana,vcp->lsn);
         }
         else {
-            osi_LogEvent("AFS-Dispatch-RAP [invalid]", NULL, "op[%x] vcp[%p] lana[%d] lsn[%d]", rapOp, vcp, vcp->lana, vcp->lsn);
             osi_Log4(smb_logp,"AFS Server - Dispatch-RAP [INVALID] op[%x] vcp[%p] lana[%d] lsn[%d]", rapOp, vcp, vcp->lana, vcp->lsn);
             code = CM_ERROR_BADOP;
         }
@@ -1934,19 +1919,9 @@ long smb_ReceiveV3Tran2A(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
 
     /* We sometimes see 0 word count.  What to do? */
     if (*inp->wctp == 0) {
+        osi_Log0(smb_logp, "Transaction2 word count = 0"); 
 #ifndef DJGPP
-        HANDLE h;
-        char *ptbuf[1];
-
-        osi_Log0(smb_logp, "TRANSACTION2 word count = 0"); 
-
-        h = RegisterEventSource(NULL, AFS_DAEMON_EVENT_NAME);
-        ptbuf[0] = "Transaction2 word count = 0";
-        ReportEvent(h, EVENTLOG_WARNING_TYPE, 0, 1003, NULL,
-                    1, inp->ncb_length, ptbuf, inp);
-        DeregisterEventSource(h);
-#else /* DJGPP */
-        osi_Log0(smb_logp, "TRANSACTION2 word count = 0"); 
+       LogEvent(EVENTLOG_WARNING_TYPE, MSG_SMB_ZERO_TRANSACTION_COUNT);
 #endif /* !DJGPP */
 
         smb_SetSMBDataLength(outp, 0);
@@ -2017,12 +1992,10 @@ long smb_ReceiveV3Tran2A(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
 
         /* now dispatch it */
         if ( asp->opcode >= 0 && asp->opcode < 20 && smb_tran2DispatchTable[asp->opcode].procp) {
-            osi_LogEvent("AFS-Dispatch-2[%s]",myCrt_2Dispatch(asp->opcode),"vcp[%p] lana[%d] lsn[%d]",vcp,vcp->lana,vcp->lsn);
             osi_Log4(smb_logp,"AFS Server - Dispatch-2 %s vcp[%p] lana[%d] lsn[%d]",myCrt_2Dispatch(asp->opcode),vcp,vcp->lana,vcp->lsn);
             code = (*smb_tran2DispatchTable[asp->opcode].procp)(vcp, asp, outp);
         }
         else {
-            osi_LogEvent("AFS-Dispatch-2 [invalid]", NULL, "op[%x] vcp[%p] lana[%d] lsn[%d]", asp->opcode, vcp, vcp->lana, vcp->lsn);
             osi_Log4(smb_logp,"AFS Server - Dispatch-2 [INVALID] op[%x] vcp[%p] lana[%d] lsn[%d]", asp->opcode, vcp, vcp->lana, vcp->lsn);
             code = CM_ERROR_BADOP;
         }
@@ -7170,11 +7143,9 @@ cm_user_t *smb_FindCMUserByName(/*smb_vc_t *vcp,*/ char *usern, char *machine)
         unp->userp = cm_NewUser();
         lock_ReleaseMutex(&unp->mx);
         osi_Log2(smb_logp,"smb_FindCMUserByName New user name[%s] machine[%s]",osi_LogSaveString(smb_logp,usern),osi_LogSaveString(smb_logp,machine));
-        osi_LogEvent("AFS smb_FindCMUserByName : New User",NULL,"name[%s] machine[%s]",usern,machine);
     }  else    {
         osi_Log2(smb_logp,"smb_FindCMUserByName Not found name[%s] machine[%s]",osi_LogSaveString(smb_logp,usern),osi_LogSaveString(smb_logp,machine));
-        osi_LogEvent("AFS smb_FindCMUserByName : Found",NULL,"name[%s] machine[%s]",usern,machine);
-       }
+    }
     return unp->userp;
 }
 
index 8126a6d..ef51617 100644 (file)
@@ -16,6 +16,9 @@
 
 #define AFSREG_NULL_KEY  ((HKEY)0)
 
+/* Do not change AFSREG_{CLT,SVR}_SW_NAME unless the installation
+ * name in the installers is also changed to match
+ */
 #define AFSREG_SVR_SVC_NAME  "TransarcAFSServer"
 #define AFSREG_SVR_SW_NAME   "AFS Server"
 
 #define AFSREG_APPLOG_KEY "HKEY_LOCAL_MACHINE\\" AFSREG_APPLOG_SUBKEY
 
 /* AFS event source subkey and subkey values -- client and server services */
-#define AFSREG_SVR_APPLOG_SUBKEY         "AFS Service"
-#define AFSREG_SVR_APPLOG_MSGFILE_VALUE  "EventMessageFile"
-#define AFSREG_SVR_APPLOG_MSGTYPE_VALUE  "TypesSupported"
+#define AFSREG_SVR_APPLOG_SUBKEY         AFSREG_SVR_SW_NAME
+#define AFSREG_CLT_APPLOG_SUBKEY         AFSREG_CLT_SW_NAME
+#define AFSREG_APPLOG_MSGFILE_VALUE  "EventMessageFile"
+#define AFSREG_APPLOG_MSGTYPE_VALUE  "TypesSupported"
 
 
 
  *             DeviceName:REG_SZ:<device hosting device partition>
  */
 
-#define AFSREG_SVR_SVC_DISPLAYNAME_DATA  "IBM AFS Server"
+#define AFSREG_SVR_SVC_DISPLAYNAME_DATA  "OpenAFS Server"
 #define AFSREG_SVR_SVC_IMAGENAME_DATA "bosctlsvc.exe"
 
 #define AFSREG_SVR_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_SVR_SVC_NAME
  *         Cell:REG_SZ:<client cell>
  */
 
-#define AFSREG_CLT_SVC_DISPLAYNAME_DATA  "IBM AFS Client"
+#define AFSREG_CLT_SVC_DISPLAYNAME_DATA  "OpenAFS Client"
 #define AFSREG_CLT_SVC_IMAGENAME_DATA "afsd_service.exe"
 
 #define AFSREG_CLT_SVC_SUBKEY "System\\CurrentControlSet\\Services\\" AFSREG_CLT_SVC_NAME