diff options
author | Andreas Baumann <abaumann@yahoo.com> | 2009-03-26 10:39:19 +0100 |
---|---|---|
committer | Andreas Baumann <abaumann@yahoo.com> | 2009-03-26 10:39:19 +0100 |
commit | db363643c15fcc0db5fed7734ce7d30642ff7500 (patch) | |
tree | d48028b345e7183ba708c4df9c4c58594ebd4bf9 /tests/service | |
parent | d7c45cbce04098605236ca6b74454105f83d5799 (diff) | |
download | wolfbones-db363643c15fcc0db5fed7734ce7d30642ff7500.tar.gz wolfbones-db363643c15fcc0db5fed7734ce7d30642ff7500.tar.bz2 |
better output in debug code of service
Diffstat (limited to 'tests/service')
-rw-r--r-- | tests/service/testservice.c | 50 | ||||
-rw-r--r-- | tests/service/testservicemsg.mc | 8 |
2 files changed, 48 insertions, 10 deletions
diff --git a/tests/service/testservice.c b/tests/service/testservice.c index eb91587..66d20be 100644 --- a/tests/service/testservice.c +++ b/tests/service/testservice.c @@ -173,6 +173,41 @@ static SERVICE_STATUS_HANDLE service_status_handle; static SERVICE_STATUS service_status; static HANDLE service_stop_event = NULL; +/* constants and values from WinSvc.h: */ +static const char *wolf_service_state_to_str( DWORD current_state ) { + switch( current_state ) { + case SERVICE_STOPPED: return "SERVICE_STOPPED"; + case SERVICE_START_PENDING: return "SERVICE_START_PENDING"; + case SERVICE_STOP_PENDING: return "SERVICE_STOP_PENDING"; + case SERVICE_RUNNING: return "SERVICE_RUNNING"; + case SERVICE_CONTINUE_PENDING: return "SERVICE_CONTINUE_PENDING"; + case SERVICE_PAUSE_PENDING: return "SERVICE_PAUSE_PENDING"; + case SERVICE_PAUSED: return "SERVICE_PAUSED"; + default: return "<unknown service state>"; + } +} + +/* constants and values from WinSvc.h: */ +static const char *wolf_service_control_to_str( DWORD control ) { + switch( control ) { + case SERVICE_CONTROL_STOP: return "SERVICE_CONTROL_STOP"; + case SERVICE_CONTROL_PAUSE: return "SERVICE_CONTROL_PAUSE"; + case SERVICE_CONTROL_CONTINUE: return "SERVICE_CONTROL_CONTINUE"; + case SERVICE_CONTROL_INTERROGATE: return "SERVICE_CONTROL_INTERROGATE"; + case SERVICE_CONTROL_SHUTDOWN: return "SERVICE_CONTROL_SHUTDOWN"; + case SERVICE_CONTROL_PARAMCHANGE: return "SERVICE_CONTROL_PARAMCHANGE"; + case SERVICE_CONTROL_NETBINDADD: return "SERVICE_CONTROL_NETBINDADD"; + case SERVICE_CONTROL_NETBINDREMOVE: return "SERVICE_CONTROL_NETBINDREMOVE"; + case SERVICE_CONTROL_NETBINDENABLE: return "SERVICE_CONTROL_NETBINDENABLE"; + case SERVICE_CONTROL_NETBINDDISABLE: return "SERVICE_CONTROL_NETBINDDISABLE"; + case SERVICE_CONTROL_DEVICEEVENT: return "SERVICE_CONTROL_DEVICEEVENT"; + case SERVICE_CONTROL_HARDWAREPROFILECHANGE: return "SERVICE_CONTROL_HARDWAREPROFILECHANGE"; + case SERVICE_CONTROL_POWEREVENT: return "SERVICE_CONTROL_POWEREVENT"; + case SERVICE_CONTROL_SESSIONCHANGE: return "SERVICE_CONTROL_SESSIONCHANGE"; + default: return "<unknown service control>"; + } +} + static void wolf_service_report_status( DWORD current_state, DWORD exit_code, DWORD wait_hint ) { @@ -180,8 +215,9 @@ static void wolf_service_report_status( DWORD current_state, char errbuf[512]; wolf_log( WOLF_LOG_DEBUG, WOLF_CATEGORY_TESTSERVICE, WOLF_MSG_TESTSERVICE_REPORT_STATUS, - _( "reporting status with new state %d (currently in state %d)" ), - service_status.dwCurrentState, current_state ); + _( "reporting status with new state '%s' (%d) (currently in state '%s' (%d))" ), + wolf_service_state_to_str( current_state ), current_state, + wolf_service_state_to_str( service_status.dwCurrentState ), service_status.dwCurrentState ); service_status.dwServiceType = SERVICE_WIN32_OWN_PROCESS; service_status.dwCurrentState = current_state; @@ -214,8 +250,9 @@ static void wolf_service_report_status( DWORD current_state, if( !res ) { WOLF_LOG_GET_LAST_ERROR( GetLastError( ), errbuf, 512 ); wolf_log( WOLF_LOG_ERR, WOLF_CATEGORY_TESTSERVICE, WOLF_MSG_TESTSERVICE_CANT_REPORT_STATUS, - _( "Unable to report state %d of service '%s' to SCM '%s (%d)" ), - current_state, SERVICE_NAME, errbuf, GetLastError( ) ); + _( "Unable to report state '%s' (%d) of service '%s' to SCM '%s (%d)" ), + wolf_service_state_to_str( current_state ), current_state, + SERVICE_NAME, errbuf, GetLastError( ) ); return; } } @@ -229,7 +266,8 @@ void WINAPI wolf_service_ctrl_handler( DWORD control ) { BOOL res; wolf_log( WOLF_LOG_DEBUG, WOLF_CATEGORY_TESTSERVICE, WOLF_MSG_TESTSERVICE_HANDLING_EVENT, - _( "service handler received event %d" ), + _( "service handler received status change '%s' (%d)" ), + wolf_service_control_to_str( control ), control ); switch( control ) { @@ -364,7 +402,7 @@ void __cdecl _tmain( int argc, TCHAR *argv[] ) { printf( "testsrevice [options]\r\n" ); printf( " /help show this help page\r\n" ); printf( " /install install the service\r\n" ); - printf( " /remove remove the servuce\r\n" ); + printf( " /remove remove the service\r\n" ); } else if( strcasecmp( argv[1], "/install" ) == 0 ) { (void)wolf_service_install( SERVICE_NAME, SERVICE_NAME_DESCR ); } else if( strcasecmp( argv[1], "/remove" ) == 0 ) { diff --git a/tests/service/testservicemsg.mc b/tests/service/testservicemsg.mc index 86b4ccf..f3a12e5 100644 --- a/tests/service/testservicemsg.mc +++ b/tests/service/testservicemsg.mc @@ -28,7 +28,7 @@ Logger MessageId = 0x2 SymbolicName = WOLF_CATEGORY_DAEMON Language = English -Dameon +Daemon . ;Language = German ;Unix-Prozess @@ -136,21 +136,21 @@ Severity = Informational Facility = Application SymbolicName = WOLF_MSG_TESTSERVICE_REPORT_STATUS Language = English -reporting status with new state %1 (currently in state %2) +reporting status with new state '%1' (%2) (currently in state '%3' (%4)) . MessageId = 3017 Severity = Error Facility = Application SymbolicName = WOLF_MSG_TESTSERVICE_CANT_REPORT_STATUS Language = English -Unable to report state %1 of service '%2' to SCM '%3 (%4) +Unable to report state '%1' (%2) of service '%3' to SCM '%4 (%5) . MessageId = 3013 Severity = Informational Facility = Application SymbolicName = WOLF_MSG_TESTSERVICE_HANDLING_EVENT Language = English -service handler received event %1 +service handler received status change '%1' (%2) . MessageId = 3012 Severity = Error |