1 /*
2  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
3  *
4  * SPDX-License-Identifier: MPL-2.0
5  *
6  * This Source Code Form is subject to the terms of the Mozilla Public
7  * License, v. 2.0.  If a copy of the MPL was not distributed with this
8  * file, you can obtain one at https://mozilla.org/MPL/2.0/.
9  *
10  * See the COPYRIGHT file distributed with this work for additional
11  * information regarding copyright ownership.
12  */
13 
14 /*
15  * Windows-specific path definitions
16  * These routines are used to set up and return system-specific path
17  * information about the files enumerated in NtPaths
18  */
19 
20 #ifndef ISC_NTPATHS_H
21 #define ISC_NTPATHS_H
22 
23 #include <isc/lang.h>
24 
25 /*
26  * Index of paths needed
27  */
28 enum NtPaths {
29 	NAMED_CONF_PATH,
30 	RESOLV_CONF_PATH,
31 	RNDC_CONF_PATH,
32 	NAMED_PID_PATH,
33 	NAMED_LOCK_PATH,
34 	LOCAL_STATE_DIR,
35 	SYS_CONF_DIR,
36 	RNDC_KEY_PATH,
37 	SESSION_KEY_PATH,
38 	BIND_KEYS_PATH
39 };
40 
41 /*
42  * Define macros to get the path of the config files
43  */
44 #define NAMED_CONFFILE	isc_ntpaths_get(NAMED_CONF_PATH)
45 #define RNDC_CONFFILE	isc_ntpaths_get(RNDC_CONF_PATH)
46 #define RNDC_KEYFILE	isc_ntpaths_get(RNDC_KEY_PATH)
47 #define SESSION_KEYFILE isc_ntpaths_get(SESSION_KEY_PATH)
48 #define RESOLV_CONF	isc_ntpaths_get(RESOLV_CONF_PATH)
49 
50 /*
51  * Information about where the files are on disk
52  */
53 #define NAMED_LOCALSTATEDIR "/dns/bin"
54 #define NAMED_SYSCONFDIR    "/dns/etc"
55 
56 ISC_LANG_BEGINDECLS
57 
58 void
59 isc_ntpaths_init(void);
60 
61 char *
62 isc_ntpaths_get(int);
63 
64 ISC_LANG_ENDDECLS
65 
66 #endif /* ISC_NTPATHS_H */
67