X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=nssm.cpp;h=2933dea9c4956d964fe4e5346872d9de0597146a;hb=13a14267e612fb6a28ddef57f30f9de2685fc2ff;hp=08b94320089fed2f3111081abd6dfc48e6a820e0;hpb=4440946eccf1cb14e16f8d29c54fb4acecbd44ff;p=nssm.git diff --git a/nssm.cpp b/nssm.cpp index 08b9432..2933dea 100644 --- a/nssm.cpp +++ b/nssm.cpp @@ -1,5 +1,7 @@ #include "nssm.h" +extern unsigned long tls_index; + /* String function */ int str_equiv(const char *a, const char *b) { int i; @@ -39,13 +41,16 @@ int main(int argc, char **argv) { /* Undocumented: "run" is used to actually do service stuff */ if (! str_equiv(argv[1], NSSM_RUN)) exit(usage(2)); + /* Thread local storage for error message buffer */ + tls_index = TlsAlloc(); + /* Register messages */ create_messages(); /* Start service magic */ SERVICE_TABLE_ENTRY table[] = { { NSSM, service_main }, { 0, 0 } }; if (! StartServiceCtrlDispatcher(table)) { - log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_DISPATCHER_FAILED, GetLastError(), 0); + log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_DISPATCHER_FAILED, error_string(GetLastError()), 0); return 100; }