]> git.saurik.com Git - apple/network_cmds.git/blame - unbound/winrc/win_svc.h
network_cmds-596.100.2.tar.gz
[apple/network_cmds.git] / unbound / winrc / win_svc.h
CommitLineData
89c4ed63
A
1/*
2 * winrc/win_svc.h - windows services API implementation for unbound
3 *
4 * Copyright (c) 2009, NLnet Labs. All rights reserved.
5 *
6 * This software is open source.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * Redistributions of source code must retain the above copyright notice,
13 * this list of conditions and the following disclaimer.
14 *
15 * Redistributions in binary form must reproduce the above copyright notice,
16 * this list of conditions and the following disclaimer in the documentation
17 * and/or other materials provided with the distribution.
18 *
19 * Neither the name of the NLNET LABS nor the names of its contributors may
20 * be used to endorse or promote products derived from this software without
21 * specific prior written permission.
22 *
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 */
35
36/**
37 * \file
38 *
39 * This file contains functions to integrate with the windows services API.
40 * This means it handles the commandline switches to install and remove
41 * the service (via CreateService and DeleteService), it handles
42 * the ServiceMain() main service entry point when started as a service,
43 * and it handles the Handler[_ex]() to process requests to the service
44 * (such as start and stop and status).
45 */
46
47#ifndef WINRC_WIN_SVC_H
48#define WINRC_WIN_SVC_H
49struct worker;
50
51/** service name for unbound (internal to ServiceManager) */
52#define SERVICE_NAME "unbound"
53
54/** from gen_msg.h - success message record for windows message log */
55#define MSG_GENERIC_SUCCESS ((DWORD)0x20010001L)
56/** from gen_msg.h - informational message record for windows message log */
57#define MSG_GENERIC_INFO ((DWORD)0x60010002L)
58/** from gen_msg.h - warning message record for windows message log */
59#define MSG_GENERIC_WARN ((DWORD)0xA0010003L)
60/** from gen_msg.h - error message record for windows message log */
61#define MSG_GENERIC_ERR ((DWORD)0xE0010004L)
62
63/**
64 * Handle commandline service for windows.
65 * @param wopt: windows option string (install, remove, service).
66 * @param cfgfile: configfile to open (default or passed with -c).
67 * @param v: amount of commandline verbosity added with -v.
68 * @param c: true if cfgfile was set by commandline -c option.
69 */
70void wsvc_command_option(const char* wopt, const char* cfgfile, int v, int c);
71
72/**
73 * Setup lead worker events.
74 * @param worker: the worker
75 */
76void wsvc_setup_worker(struct worker* worker);
77
78/**
79 * Desetup lead worker events.
80 * @param worker: the worker
81 */
82void wsvc_desetup_worker(struct worker* worker);
83
84/** windows worker stop event callback handler */
85void worker_win_stop_cb(int fd, short ev, void* arg);
86
87/** windows cron timer callback handler */
88void wsvc_cron_cb(void* arg);
89
90#endif /* WINRC_WIN_SVC_H */