X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fprocess.c;h=7deaadfcb3fa366be316e559bc6731c8208cf6e3;hb=b13e1a3c1f7252cda5ab95166d9f2d578983471f;hp=c6cb53607a7c25c28b37dd30ca8510982d5b1a9c;hpb=f6e87ab476a0faf8b124ecaaa27f967d825e6457;p=tinc diff --git a/src/process.c b/src/process.c index c6cb5360..7deaadfc 100644 --- a/src/process.c +++ b/src/process.c @@ -1,7 +1,7 @@ /* process.c -- process management functions Copyright (C) 1999-2005 Ivo Timmermans, - 2000-2013 Guus Sliepen + 2000-2018 Guus Sliepen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,29 +20,25 @@ #include "system.h" -#include "conf.h" -#include "connection.h" -#include "control.h" -#include "device.h" -#include "edge.h" -#include "event.h" #include "logger.h" #include "names.h" -#include "net.h" -#include "node.h" #include "process.h" -#include "subnet.h" -#include "utils.h" -#include "xalloc.h" #include "version.h" +#ifdef HAVE_MINGW +#include "utils.h" +#endif + /* If zero, don't detach from the terminal. */ bool do_detach = true; -bool sigalrm = false; extern char **g_argv; -extern bool use_logfile; -extern bool use_syslog; + +/* If nonzero, use syslog instead of stderr in no-detach mode. */ +bool use_syslog = false; + +/* If nonzero, write log entries to a separate file. */ +bool use_logfile = false; /* Some functions the less gifted operating systems might lack... */ @@ -54,7 +50,8 @@ static SERVICE_STATUS_HANDLE statushandle = 0; static bool install_service(void) { char command[4096] = "\""; - SERVICE_DESCRIPTION description = {"Virtual Private Network daemon"}; + char description_buffer[] = "Virtual Private Network daemon"; + SERVICE_DESCRIPTION description = {description_buffer}; manager = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); @@ -115,7 +112,11 @@ static bool install_service(void) { io_t stop_io; -DWORD WINAPI controlhandler(DWORD request, DWORD type, LPVOID boe, LPVOID bah) { +static DWORD WINAPI controlhandler(DWORD request, DWORD type, LPVOID data, LPVOID context) { + (void)type; + (void)data; + (void)context; + switch(request) { case SERVICE_CONTROL_INTERROGATE: SetServiceStatus(statushandle, &status); @@ -145,7 +146,7 @@ DWORD WINAPI controlhandler(DWORD request, DWORD type, LPVOID boe, LPVOID bah) { return NO_ERROR; } -VOID WINAPI run_service(DWORD argc, LPTSTR *argv) { +static VOID WINAPI run_service(DWORD argc, LPTSTR *argv) { extern int main2(int argc, char **argv); status.dwServiceType = SERVICE_WIN32;