summaryrefslogtreecommitdiff
path: root/dhcpctl/dhcpctl.c
diff options
context:
space:
mode:
authorTed Lemon <source@isc.org>1999-09-09 23:27:51 +0000
committerTed Lemon <source@isc.org>1999-09-09 23:27:51 +0000
commit52f59a91163adb071289b53737cf2f7263885e69 (patch)
treed47d6681b3e533d0f28abbdecba343daf1beed57 /dhcpctl/dhcpctl.c
parentf420e08c9592b989942e0ca4d2decb01826a416c (diff)
downloadisc-dhcp-52f59a91163adb071289b53737cf2f7263885e69.tar.gz
Add object deleter. Fix up some reference/dereference funciton names.
Diffstat (limited to 'dhcpctl/dhcpctl.c')
-rw-r--r--dhcpctl/dhcpctl.c70
1 files changed, 60 insertions, 10 deletions
diff --git a/dhcpctl/dhcpctl.c b/dhcpctl/dhcpctl.c
index 81df8456..c9f44c36 100644
--- a/dhcpctl/dhcpctl.c
+++ b/dhcpctl/dhcpctl.c
@@ -38,14 +38,14 @@ dhcpctl_status dhcpctl_initialize ()
dhcpctl_callback_get_value,
dhcpctl_callback_destroy,
dhcpctl_callback_signal_handler,
- dhcpctl_callback_stuff_values, 0, 0);
+ dhcpctl_callback_stuff_values, 0, 0, 0);
omapi_object_type_register (&dhcpctl_remote_type,
"dhcpctl-remote",
dhcpctl_remote_set_value,
dhcpctl_remote_get_value,
dhcpctl_remote_destroy,
dhcpctl_remote_signal_handler,
- dhcpctl_remote_stuff_values, 0, 0);
+ dhcpctl_remote_stuff_values, 0, 0, 0);
return ISC_R_SUCCESS;
}
@@ -362,21 +362,21 @@ dhcpctl_status dhcpctl_object_update (dhcpctl_handle connection,
isc_result_t status;
omapi_object_t *message = (omapi_object_t *)0;
- status = omapi_message_new (&message, "dhcpctl_open_object");
+ status = omapi_message_new (&message, "dhcpctl_object_update");
if (status != ISC_R_SUCCESS) {
- omapi_object_dereference (&message, "dhcpctl_open_object");
+ omapi_object_dereference (&message, "dhcpctl_object_update");
return status;
}
status = omapi_set_int_value (message, (omapi_object_t *)0,
"op", OMAPI_OP_UPDATE);
if (status != ISC_R_SUCCESS) {
- omapi_object_dereference (&message, "dhcpctl_open_object");
+ omapi_object_dereference (&message, "dhcpctl_object_update");
return status;
}
status = omapi_set_object_value (message, (omapi_object_t *)0,
"object", h);
if (status != ISC_R_SUCCESS) {
- omapi_object_dereference (&message, "dhcpctl_open_object");
+ omapi_object_dereference (&message, "dhcpctl_object_update");
return status;
}
@@ -398,21 +398,71 @@ dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle connection,
isc_result_t status;
omapi_object_t *message = (omapi_object_t *)0;
- status = omapi_message_new (&message, "dhcpctl_open_object");
+ status = omapi_message_new (&message, "dhcpctl_object_refresh");
if (status != ISC_R_SUCCESS) {
- omapi_object_dereference (&message, "dhcpctl_open_object");
+ omapi_object_dereference (&message, "dhcpctl_object_refresh");
return status;
}
status = omapi_set_int_value (message, (omapi_object_t *)0,
"op", OMAPI_OP_REFRESH);
if (status != ISC_R_SUCCESS) {
- omapi_object_dereference (&message, "dhcpctl_open_object");
+ omapi_object_dereference (&message, "dhcpctl_object_refresh");
return status;
}
status = omapi_set_int_value (message, (omapi_object_t *)0,
"handle", h -> handle);
if (status != ISC_R_SUCCESS) {
- omapi_object_dereference (&message, "dhcpctl_open_object");
+ omapi_object_dereference (&message, "dhcpctl_object_refresh");
+ return status;
+ }
+
+ omapi_message_register (message);
+ status = omapi_protocol_send_message (connection -> outer,
+ (omapi_object_t *)0,
+ message, (omapi_object_t *)0);
+ omapi_object_dereference (&message, "dhcpctl_object_update");
+ return status;
+}
+
+/* Requests a refresh on the object referenced by the handle (there
+ can't be any other work in progress on the handle). A
+ refresh means local parameters are updated from the server. */
+
+dhcpctl_status dhcpctl_object_delete (dhcpctl_handle connection,
+ dhcpctl_handle h)
+{
+ isc_result_t status;
+ omapi_object_t *message = (omapi_object_t *)0;
+ dhcpctl_remote_object_t *ro;
+
+ if (h -> type != dhcpctl_remote_type)
+ return ISC_R_INVALIDARG;
+ ro = (dhcpctl_remote_object_t *)h;
+
+ status = omapi_message_new (&message, "dhcpctl_object_delete");
+ if (status != ISC_R_SUCCESS) {
+ omapi_object_dereference (&message, "dhcpctl_object_delete");
+ return status;
+ }
+ status = omapi_set_int_value (message, (omapi_object_t *)0,
+ "op", OMAPI_OP_DELETE);
+ if (status != ISC_R_SUCCESS) {
+ omapi_object_dereference (&message, "dhcpctl_object_delete");
+ return status;
+ }
+
+ status = omapi_set_int_value (message, (omapi_object_t *)0, "handle",
+ ro -> remote_handle);
+ if (status != ISC_R_SUCCESS) {
+ omapi_object_dereference (&message,
+ "dhcpctl_object_delete");
+ return status;
+ }
+
+ status = omapi_set_object_value (message, (omapi_object_t *)0,
+ "notify-object", h);
+ if (status != ISC_R_SUCCESS) {
+ omapi_object_dereference (&message, "dhcpctl_object_delete");
return status;
}