1*c0b5d9fbSchristos /*	$NetBSD: dlz_drivers.c,v 1.4 2022/09/23 12:15:27 christos Exp $	*/
2e2b1b9c0Schristos 
3e2b1b9c0Schristos /*
4e2b1b9c0Schristos  * Copyright (C) 2005  Internet Systems Consortium, Inc. ("ISC")
5*c0b5d9fbSchristos  * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
6e2b1b9c0Schristos  *
7*c0b5d9fbSchristos  * SPDX-License-Identifier: MPL-2.0
8e2b1b9c0Schristos  *
9*c0b5d9fbSchristos  * This Source Code Form is subject to the terms of the Mozilla Public
10*c0b5d9fbSchristos  * License, v. 2.0.  If a copy of the MPL was not distributed with this
11*c0b5d9fbSchristos  * file, you can obtain one at https://mozilla.org/MPL/2.0/.
12*c0b5d9fbSchristos  *
13*c0b5d9fbSchristos  * See the COPYRIGHT file distributed with this work for additional
14*c0b5d9fbSchristos  * information regarding copyright ownership.
15e2b1b9c0Schristos  */
16e2b1b9c0Schristos 
17e2b1b9c0Schristos /*! \file */
18e2b1b9c0Schristos 
19e2b1b9c0Schristos #include <isc/result.h>
20e2b1b9c0Schristos 
21e2b1b9c0Schristos /*
22e2b1b9c0Schristos  * Pull in declarations for this module's functions.
23e2b1b9c0Schristos  */
24e2b1b9c0Schristos 
25e2b1b9c0Schristos #include <dlz/dlz_drivers.h>
26e2b1b9c0Schristos 
27e2b1b9c0Schristos /*
28e2b1b9c0Schristos  * Pull in driver-specific stuff.
29e2b1b9c0Schristos  */
30e2b1b9c0Schristos 
31e2b1b9c0Schristos #ifdef DLZ_STUB
32e2b1b9c0Schristos #include <dlz/dlz_stub_driver.h>
339742fdb4Schristos #endif /* ifdef DLZ_STUB */
34e2b1b9c0Schristos 
35e2b1b9c0Schristos #ifdef DLZ_POSTGRES
36e2b1b9c0Schristos #include <dlz/dlz_postgres_driver.h>
379742fdb4Schristos #endif /* ifdef DLZ_POSTGRES */
38e2b1b9c0Schristos 
39e2b1b9c0Schristos #ifdef DLZ_MYSQL
40e2b1b9c0Schristos #include <dlz/dlz_mysql_driver.h>
419742fdb4Schristos #endif /* ifdef DLZ_MYSQL */
42e2b1b9c0Schristos 
43e2b1b9c0Schristos #ifdef DLZ_FILESYSTEM
44e2b1b9c0Schristos #include <dlz/dlz_filesystem_driver.h>
459742fdb4Schristos #endif /* ifdef DLZ_FILESYSTEM */
46e2b1b9c0Schristos 
47e2b1b9c0Schristos #ifdef DLZ_BDB
48e2b1b9c0Schristos #include <dlz/dlz_bdb_driver.h>
49e2b1b9c0Schristos #include <dlz/dlz_bdbhpt_driver.h>
509742fdb4Schristos #endif /* ifdef DLZ_BDB */
51e2b1b9c0Schristos 
52e2b1b9c0Schristos #ifdef DLZ_LDAP
53e2b1b9c0Schristos #include <dlz/dlz_ldap_driver.h>
549742fdb4Schristos #endif /* ifdef DLZ_LDAP */
55e2b1b9c0Schristos 
56e2b1b9c0Schristos #ifdef DLZ_ODBC
57e2b1b9c0Schristos #include <dlz/dlz_odbc_driver.h>
589742fdb4Schristos #endif /* ifdef DLZ_ODBC */
59e2b1b9c0Schristos 
60e2b1b9c0Schristos /*%
61e2b1b9c0Schristos  * Call init functions for all relevant DLZ drivers.
62e2b1b9c0Schristos  */
63e2b1b9c0Schristos 
64e2b1b9c0Schristos isc_result_t
dlz_drivers_init(void)65e2b1b9c0Schristos dlz_drivers_init(void) {
66e2b1b9c0Schristos 	isc_result_t result = ISC_R_SUCCESS;
67e2b1b9c0Schristos 
68e2b1b9c0Schristos #ifdef DLZ_STUB
69e2b1b9c0Schristos 	result = dlz_stub_init();
709742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
71e2b1b9c0Schristos 		return (result);
729742fdb4Schristos 	}
739742fdb4Schristos #endif /* ifdef DLZ_STUB */
74e2b1b9c0Schristos 
75e2b1b9c0Schristos #ifdef DLZ_POSTGRES
76e2b1b9c0Schristos 	result = dlz_postgres_init();
779742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
78e2b1b9c0Schristos 		return (result);
799742fdb4Schristos 	}
809742fdb4Schristos #endif /* ifdef DLZ_POSTGRES */
81e2b1b9c0Schristos 
82e2b1b9c0Schristos #ifdef DLZ_MYSQL
83e2b1b9c0Schristos 	result = dlz_mysql_init();
849742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
85e2b1b9c0Schristos 		return (result);
869742fdb4Schristos 	}
879742fdb4Schristos #endif /* ifdef DLZ_MYSQL */
88e2b1b9c0Schristos 
89e2b1b9c0Schristos #ifdef DLZ_FILESYSTEM
90e2b1b9c0Schristos 	result = dlz_fs_init();
919742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
92e2b1b9c0Schristos 		return (result);
939742fdb4Schristos 	}
949742fdb4Schristos #endif /* ifdef DLZ_FILESYSTEM */
95e2b1b9c0Schristos 
96e2b1b9c0Schristos #ifdef DLZ_BDB
97e2b1b9c0Schristos 	result = dlz_bdb_init();
989742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
99e2b1b9c0Schristos 		return (result);
1009742fdb4Schristos 	}
101e2b1b9c0Schristos 	result = dlz_bdbhpt_init();
1029742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
103e2b1b9c0Schristos 		return (result);
1049742fdb4Schristos 	}
1059742fdb4Schristos #endif /* ifdef DLZ_BDB */
106e2b1b9c0Schristos 
107e2b1b9c0Schristos #ifdef DLZ_LDAP
108e2b1b9c0Schristos 	result = dlz_ldap_init();
1099742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
110e2b1b9c0Schristos 		return (result);
1119742fdb4Schristos 	}
1129742fdb4Schristos #endif /* ifdef DLZ_LDAP */
113e2b1b9c0Schristos 
114e2b1b9c0Schristos #ifdef DLZ_ODBC
115e2b1b9c0Schristos 	result = dlz_odbc_init();
1169742fdb4Schristos 	if (result != ISC_R_SUCCESS) {
117e2b1b9c0Schristos 		return (result);
1189742fdb4Schristos 	}
1199742fdb4Schristos #endif /* ifdef DLZ_ODBC */
120e2b1b9c0Schristos 
121e2b1b9c0Schristos 	return (result);
122e2b1b9c0Schristos }
123e2b1b9c0Schristos 
124e2b1b9c0Schristos /*%
125e2b1b9c0Schristos  * Call shutdown functions for all relevant DLZ drivers.
126e2b1b9c0Schristos  */
127e2b1b9c0Schristos 
128e2b1b9c0Schristos void
dlz_drivers_clear(void)129e2b1b9c0Schristos dlz_drivers_clear(void) {
130e2b1b9c0Schristos #ifdef DLZ_STUB
131e2b1b9c0Schristos 	dlz_stub_clear();
1329742fdb4Schristos #endif /* ifdef DLZ_STUB */
133e2b1b9c0Schristos 
134e2b1b9c0Schristos #ifdef DLZ_POSTGRES
135e2b1b9c0Schristos 	dlz_postgres_clear();
1369742fdb4Schristos #endif /* ifdef DLZ_POSTGRES */
137e2b1b9c0Schristos 
138e2b1b9c0Schristos #ifdef DLZ_MYSQL
139e2b1b9c0Schristos 	dlz_mysql_clear();
1409742fdb4Schristos #endif /* ifdef DLZ_MYSQL */
141e2b1b9c0Schristos 
142e2b1b9c0Schristos #ifdef DLZ_FILESYSTEM
143e2b1b9c0Schristos 	dlz_fs_clear();
1449742fdb4Schristos #endif /* ifdef DLZ_FILESYSTEM */
145e2b1b9c0Schristos 
146e2b1b9c0Schristos #ifdef DLZ_BDB
147e2b1b9c0Schristos 	dlz_bdb_clear();
148e2b1b9c0Schristos 	dlz_bdbhpt_clear();
1499742fdb4Schristos #endif /* ifdef DLZ_BDB */
150e2b1b9c0Schristos 
151e2b1b9c0Schristos #ifdef DLZ_LDAP
152e2b1b9c0Schristos 	dlz_ldap_clear();
1539742fdb4Schristos #endif /* ifdef DLZ_LDAP */
154e2b1b9c0Schristos 
155e2b1b9c0Schristos #ifdef DLZ_ODBC
156e2b1b9c0Schristos 	dlz_odbc_clear();
1579742fdb4Schristos #endif /* ifdef DLZ_ODBC */
158e2b1b9c0Schristos }
159