$(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
$(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)
#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();
#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;
}
//
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);
+}
+
+
#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_ */
;// 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_
LanguageNames=(English=0x409:MSG00409)
-MessageId=0x1
+MessageId=0x1001
Severity=Informational
Facility=System
SymbolicName=MSG_TIME_FLUSH_PER_VOLUME
.
+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 */
*/
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;
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
{
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;
}
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 */
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);
/* 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
#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;
static int
IsWindowsModule(const char * name)
{
- char * p;
+ const char * p;
int i;
/* Do not perform searches for probable Windows modules */
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) {
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,
/* 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;
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);
#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;
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);
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;
}
((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 */
* 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 */
* 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 *
tnc = cm_data.nameHash[nameptr];
if (!tnc)
{
- dnlcNotify("null tnc in GetMeAnEntry",1);
osi_Log0(afsd_logp,"null tnc in GetMeAnEntry");
return 0;
}
dnlcstats.cycles++;
lock_ReleaseWrite(&cm_dnlcLock);
- dnlcNotify("DNLC cycle",1);
if ( cm_debugDnlc )
osi_Log0(afsd_logp, "DNLC cycle");
cm_dnlcPurge();
dnlcstats.cycles++;
lock_ReleaseRead(&cm_dnlcLock);
- dnlcNotify("DNLC cycle",1);
if ( cm_debugDnlc )
osi_Log0(afsd_logp, "DNLC cycle");
cm_dnlcPurge();
{
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 */
}
dnlcstats.cycles++;
lock_ReleaseWrite(&cm_dnlcLock);
- dnlcNotify("DNLC cycle",1);
if ( cm_debugDnlc )
osi_Log0(afsd_logp, "DNLC cycle");
cm_dnlcPurge();
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;
}
}
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;
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;
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;
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__);
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;
}
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 ||
}
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 {
/* 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);
/* 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",
* 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],"
* 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;
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",
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);
}
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);
/* 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);
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;
}
/* 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);
/* 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;
}
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;
}
#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