2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-10-25 14:59:05 +00:00

checkpoint

This commit is contained in:
David Lawrence
2000-01-17 18:02:11 +00:00
parent 9ff3698b6d
commit eb421ff1a1
12 changed files with 857 additions and 928 deletions

View File

@@ -27,13 +27,9 @@
omapi_object_type_t *omapi_type_connection;
omapi_object_type_t *omapi_type_listener;
omapi_object_type_t *omapi_type_io_object;
omapi_object_type_t *omapi_type_datagram;
omapi_object_type_t *omapi_type_generic;
omapi_object_type_t *omapi_type_protocol;
omapi_object_type_t *omapi_type_protocol_listener;
omapi_object_type_t *omapi_type_waiter;
omapi_object_type_t *omapi_type_remote;
omapi_object_type_t *omapi_type_message;
omapi_object_type_t *omapi_object_types;
@@ -41,7 +37,6 @@ int omapi_object_type_count;
isc_mem_t *omapi_mctx;
isc_taskmgr_t *omapi_taskmgr;
isc_timermgr_t *omapi_timermgr;
isc_socketmgr_t *omapi_socketmgr;
isc_boolean_t omapi_ipv6 = ISC_FALSE;
@@ -74,64 +69,27 @@ omapi_init(isc_mem_t *mctx) {
if (result != ISC_R_SUCCESS)
return (result);
omapi_timermgr = NULL;
result = isc_timermgr_create(omapi_mctx, &omapi_timermgr);
if (result != ISC_R_SUCCESS)
return (result);
if (isc_net_probeipv6() == ISC_R_SUCCESS)
omapi_ipv6 = ISC_TRUE;
else
omapi_ipv6 = ISC_FALSE;
/*
* Register all the standard object types.
* Initialize all the standard object types.
*/
result = omapi_object_type_register(&omapi_type_connection,
"connection",
omapi_connection_setvalue,
omapi_connection_getvalue,
omapi_connection_destroy,
omapi_connection_signalhandler,
omapi_connection_stuffvalues,
0, 0, 0);
result = omapi_generic_init();
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_listener,
"listener",
omapi_listener_setvalue,
omapi_listener_getvalue,
omapi_listener_destroy,
omapi_listener_signalhandler,
omapi_listener_stuffvalues,
0, 0, 0);
result = omapi_listener_init();
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_io_object,
"io",
omapi_io_setvalue,
omapi_io_getvalue,
omapi_io_destroy,
omapi_io_signalhandler,
omapi_io_stuffvalues,
0, 0, 0);
result = omapi_connection_init();
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_generic,
"generic",
omapi_generic_set_value,
omapi_generic_get_value,
omapi_generic_destroy,
omapi_generic_signal_handler,
omapi_generic_stuff_values,
0, 0, 0);
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_protocol,
result = omapi_object_register(&omapi_type_protocol,
"protocol",
omapi_protocol_set_value,
omapi_protocol_get_value,
@@ -142,7 +100,7 @@ omapi_init(isc_mem_t *mctx) {
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_protocol_listener,
result = omapi_object_register(&omapi_type_protocol_listener,
"protocol-listener",
omapi_protocol_listener_set_value,
omapi_protocol_listener_get_value,
@@ -153,45 +111,32 @@ omapi_init(isc_mem_t *mctx) {
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_message,
"message",
omapi_message_setvalue,
omapi_message_getvalue,
omapi_message_destroy,
omapi_message_signalhandler,
omapi_message_stuffvalues,
0, 0, 0);
if (result != ISC_R_SUCCESS)
return (result);
result = omapi_object_type_register(&omapi_type_waiter,
"waiter",
0,
0,
0,
omapi_waiter_signal_handler, 0,
0, 0, 0);
result = omapi_message_init();
return (result);
}
/*
* This does not free connections and other in-use objects, only the
* things created by omapi_init(). It is the callers responsibility to
* free the other things (as via omapi_connection_disconnect or
* omapi_object_dereference).
*/
void
omapi_shutdown() {
omapi_destroy() {
omapi_object_type_t *type, *next_type;
isc_socketmgr_destroy(&omapi_socketmgr);
isc_taskmgr_destroy(&omapi_taskmgr);
isc_timermgr_destroy(&omapi_timermgr);
for (type = omapi_object_types; type != NULL; type = next_type) {
next_type = type->next;
isc_mem_put(omapi_mctx, type, sizeof(*type));
}
}
isc_result_t
omapi_object_type_register(omapi_object_type_t **type, const char *name,
omapi_object_register(omapi_object_type_t **type, const char *name,
isc_result_t (*set_value)
(omapi_object_t *,
omapi_object_t *,
@@ -205,8 +150,7 @@ omapi_object_type_register(omapi_object_type_t **type, const char *name,
omapi_value_t **),
void (*destroy)
(omapi_object_t *,
const char *),
(omapi_object_t *),
isc_result_t (*signal_handler)
(omapi_object_t *,
@@ -341,7 +285,7 @@ omapi_set_boolean_value(omapi_object_t *h, omapi_object_t *id,
result = omapi_set_value(h, id, n, tv);
omapi_data_stringdereference(&n, "omapi_set_boolean_value");
omapi_data_dereference(&tv, "omapi_set_boolean_value");
omapi_data_dereference(&tv);
return (result);
}
@@ -367,7 +311,7 @@ omapi_set_int_value(omapi_object_t *h, omapi_object_t *id,
result = omapi_set_value(h, id, n, tv);
omapi_data_stringdereference(&n, "omapi_set_int_value");
omapi_data_dereference(&tv, "omapi_set_int_value");
omapi_data_dereference(&tv);
return (result);
}
@@ -393,7 +337,7 @@ omapi_set_object_value(omapi_object_t *h, omapi_object_t *id,
result = omapi_set_value(h, id, n, tv);
omapi_data_stringdereference(&n, "omapi_set_object_value");
omapi_data_dereference(&tv, "omapi_set_object_value");
omapi_data_dereference(&tv);
return (result);
}
@@ -419,7 +363,7 @@ omapi_set_string_value(omapi_object_t *h, omapi_object_t *id,
result = omapi_set_value(h, id, n, tv);
omapi_data_stringdereference(&n, "omapi_set_string_value");
omapi_data_dereference(&tv, "omapi_set_string_value");
omapi_data_dereference(&tv);
return (result);
}
@@ -469,18 +413,6 @@ omapi_stuff_values(omapi_object_t *c, omapi_object_t *id, omapi_object_t *o) {
return (ISC_R_NOTFOUND);
}
isc_result_t
omapi_object_create(omapi_object_t **obj, omapi_object_t *id,
omapi_object_type_t *type)
{
REQUIRE(type != NULL);
if (type->create == NULL)
return (ISC_R_NOTIMPLEMENTED);
return ((*(type->create))(obj, id));
}
isc_result_t
omapi_object_update(omapi_object_t *obj, omapi_object_t *id,
omapi_object_t *src, omapi_handle_t handle)