Maintained by: NLnet Labs
Macros | Functions
win_svc.h File Reference

This file contains functions to integrate with the windows services API. More...

Macros

#define SERVICE_NAME   "unbound"
 service name for unbound (internal to ServiceManager)
 
#define MSG_GENERIC_SUCCESS   ((DWORD)0x20010001L)
 from gen_msg.h - success message record for windows message log
 
#define MSG_GENERIC_INFO   ((DWORD)0x60010002L)
 from gen_msg.h - informational message record for windows message log
 
#define MSG_GENERIC_WARN   ((DWORD)0xA0010003L)
 from gen_msg.h - warning message record for windows message log
 
#define MSG_GENERIC_ERR   ((DWORD)0xE0010004L)
 from gen_msg.h - error message record for windows message log
 

Functions

void wsvc_command_option (const char *wopt, const char *cfgfile, int v, int c)
 Handle commandline service for windows. More...
 
void wsvc_setup_worker (struct worker *worker)
 Setup lead worker events. More...
 
void wsvc_desetup_worker (struct worker *worker)
 Desetup lead worker events. More...
 
void worker_win_stop_cb (int fd, short ev, void *arg)
 windows worker stop event callback handler
 
void wsvc_cron_cb (void *arg)
 windows cron timer callback handler
 

Detailed Description

This file contains functions to integrate with the windows services API.

This means it handles the commandline switches to install and remove the service (via CreateService and DeleteService), it handles the ServiceMain() main service entry point when started as a service, and it handles the Handler[_ex]() to process requests to the service (such as start and stop and status).

Function Documentation

void wsvc_command_option ( const char *  wopt,
const char *  cfgfile,
int  v,
int  c 
)

Handle commandline service for windows.

Parameters
wopt,:windows option string (install, remove, service).
cfgfile,:configfile to open (default or passed with -c).
v,:amount of commandline verbosity added with -v.
c,:true if cfgfile was set by commandline -c option.

References fatal_exit(), service_start(), wsvc_install(), wsvc_rc_start(), wsvc_rc_stop(), and wsvc_remove().

void wsvc_setup_worker ( struct worker worker)

Setup lead worker events.

Parameters
worker,:the worker

References worker::base, comm_timer_create(), fatal_exit(), service_stop_ev, service_stop_event, set_cron_timer(), worker_win_stop_cb(), and wsvc_cron_cb().

void wsvc_desetup_worker ( struct worker worker)

Desetup lead worker events.

Parameters
worker,:the worker

References comm_timer_delete().