summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Baumann <abaumann@yahoo.com>2009-03-28 08:52:01 +0100
committerAndreas Baumann <abaumann@yahoo.com>2009-03-28 08:52:01 +0100
commit6f229e42fe0a5357f0bdcd06a3a792a5f7b30ab4 (patch)
tree9c259c2915a42c7ac535f1795caf4a6fe93bcedd /src
parent03d693a59e880e33e895b29f5cc1ff849c8945fe (diff)
downloadwolfbones-6f229e42fe0a5357f0bdcd06a3a792a5f7b30ab4.tar.gz
wolfbones-6f229e42fe0a5357f0bdcd06a3a792a5f7b30ab4.tar.bz2
added description of service
Diffstat (limited to 'src')
-rw-r--r--src/log/wolfmsg.mc10
-rw-r--r--src/service/service.c17
2 files changed, 26 insertions, 1 deletions
diff --git a/src/log/wolfmsg.mc b/src/log/wolfmsg.mc
index afd799e..f3e65cc 100644
--- a/src/log/wolfmsg.mc
+++ b/src/log/wolfmsg.mc
@@ -873,6 +873,16 @@ Unable to create service '%1': %2 (%3)
Language = German
Kann den '%1' Dienst nicht erstellen: %2 (%3)
.
+MessageId = 3020
+Severity = Error
+Facility = Application
+SymbolicName = WOLF_MSG_SERVICE_CANT_SET_SERVICE_DESCRIPTION
+Language = English
+Unable to set description of service '%1': %2 (%3)
+.
+Language = German
+
+.
MessageId = 3005
Severity = Informational
Facility = Application
diff --git a/src/service/service.c b/src/service/service.c
index e1d11c1..d697b82 100644
--- a/src/service/service.c
+++ b/src/service/service.c
@@ -22,6 +22,8 @@ wolf_error_t wolf_service_install( wolf_service_params_t params ) {
char errbuf[512];
DWORD res;
TCHAR binary_path[MAX_PATH];
+ BOOL rt;
+ SERVICE_DESCRIPTION descr;
wolf_log( WOLF_LOG_DEBUG, WOLF_CATEGORY_SERVICE, WOLF_MSG_SERVICE_INSTALLING_SERVICE,
_( "Installing service '%s'" ), params.service_name );
@@ -61,7 +63,7 @@ wolf_error_t wolf_service_install( wolf_service_params_t params ) {
service = CreateService(
scm,
params.service_name,
- params.service_name_descr,
+ params.service_display_name,
SERVICE_ALL_ACCESS,
SERVICE_WIN32_OWN_PROCESS, /* run isolated in its own process */
SERVICE_DEMAND_START, /* let the user choose the start type */
@@ -82,6 +84,19 @@ wolf_error_t wolf_service_install( wolf_service_params_t params ) {
return WOLF_ERR_INTERNAL;
}
+ /* set description of the service */
+ descr.lpDescription = (LPTSTR)params.service_description;
+ rt = ChangeServiceConfig2( service, SERVICE_CONFIG_DESCRIPTION, &descr );
+ if( !rt ) {
+ WOLF_LOG_GET_LAST_ERROR( GetLastError( ), errbuf, 512 );
+ wolf_log( WOLF_LOG_ERR, WOLF_CATEGORY_SERVICE, WOLF_MSG_SERVICE_CANT_SET_SERVICE_DESCRIPTION,
+ _( "Unable to set description of service '%s': %s (%d)" ),
+ params.service_name, errbuf, GetLastError( ) );
+ (void)CloseServiceHandle( service );
+ (void)CloseServiceHandle( scm );
+ return WOLF_ERR_INTERNAL;
+ }
+
(void)CloseServiceHandle( service );
(void)CloseServiceHandle( scm );