summaryrefslogtreecommitdiff
path: root/dhcpctl/dhcpctl.c
diff options
context:
space:
mode:
authorTed Lemon <source@isc.org>1999-09-08 01:46:38 +0000
committerTed Lemon <source@isc.org>1999-09-08 01:46:38 +0000
commitd2513ce0ae8c2dbaf78aabb10e984471928b032c (patch)
tree141011023c3ee7604b48f83411f8724449cac644 /dhcpctl/dhcpctl.c
parentd142e03fc5b2f50433ef59f781697316209ed325 (diff)
downloadisc-dhcp-d2513ce0ae8c2dbaf78aabb10e984471928b032c.tar.gz
Mucho fixups
Diffstat (limited to 'dhcpctl/dhcpctl.c')
-rw-r--r--dhcpctl/dhcpctl.c104
1 files changed, 67 insertions, 37 deletions
diff --git a/dhcpctl/dhcpctl.c b/dhcpctl/dhcpctl.c
index 869fdb0b..315e4b80 100644
--- a/dhcpctl/dhcpctl.c
+++ b/dhcpctl/dhcpctl.c
@@ -71,8 +71,8 @@ isc_result_t dhcpctl_callback_get_value (omapi_object_t *h,
return ISC_R_NOTFOUND;
}
-isc_result_t omapi_callback_signal_handler (omapi_object_t *o,
- char *name, va_list ap)
+isc_result_t dhcpctl_callback_signal_handler (omapi_object_t *o,
+ char *name, va_list ap)
{
dhcpctl_callback_object_t *p;
if (o -> type != dhcpctl_callback_type)
@@ -149,13 +149,13 @@ dhcpctl_status dhcpctl_connect (dhcpctl_handle *connection,
status = omapi_protocol_connect (*connection, server_name,
port, authinfo);
if (status != ISC_R_SUCCESS) {
- omapi_handle_dereference (connection, "dhcpctl_connect");
+ omapi_object_dereference (connection, "dhcpctl_connect");
return status;
}
status = omapi_wait_for_completion (*connection, 0);
if (status != ISC_R_SUCCESS) {
- omapi_handle_dereference (connection, "dhcpctl_connect");
+ omapi_object_dereference (connection, "dhcpctl_connect");
return status;
}
@@ -186,18 +186,21 @@ dhcpctl_status dhcpctl_open_object (dhcpctl_handle h,
omapi_object_dereference (&message, "dhcpctl_open_object");
return status;
}
- status = omapi_set_int_value (message, "op", OMAPI_OP_OPEN);
+ status = omapi_set_int_value (message, (omapi_object_t *)0,
+ "op", OMAPI_OP_OPEN);
if (status != ISC_R_SUCCESS) {
omapi_object_dereference (&message, "dhcpctl_open_object");
return status;
}
- status = omapi_set_object_value (message, "object", h);
+ status = omapi_set_object_value (message, (omapi_object_t *)0,
+ "object", h);
if (status != ISC_R_SUCCESS) {
omapi_object_dereference (&message, "dhcpctl_open_object");
return status;
}
if (flags & DHCPCTL_CREATE) {
- status = omapi_set_boolean_value (message, "create", 1);
+ status = omapi_set_boolean_value (message, (omapi_object_t *)0,
+ "create", 1);
if (status != ISC_R_SUCCESS) {
omapi_object_dereference (&message,
"dhcpctl_open_object");
@@ -205,7 +208,8 @@ dhcpctl_status dhcpctl_open_object (dhcpctl_handle h,
}
}
if (flags & DHCPCTL_UPDATE) {
- status = omapi_set_boolean_value (message, "update", 1);
+ status = omapi_set_boolean_value (message, (omapi_object_t *)0,
+ "update", 1);
if (status != ISC_R_SUCCESS) {
omapi_object_dereference (&message,
"dhcpctl_open_object");
@@ -213,7 +217,8 @@ dhcpctl_status dhcpctl_open_object (dhcpctl_handle h,
}
}
if (flags & DHCPCTL_EXCL) {
- status = omapi_set_boolean_value (message, "exclusive", 1);
+ status = omapi_set_boolean_value (message, (omapi_object_t *)0,
+ "exclusive", 1);
if (status != ISC_R_SUCCESS) {
omapi_object_dereference (&message,
"dhcpctl_open_object");
@@ -242,10 +247,10 @@ dhcpctl_status dhcpctl_new_object (dhcpctl_handle *h,
{
isc_result_t status;
- status = omapi_generic_object_new (h, "dhcpctl_new_object");
+ status = omapi_generic_new (h, "dhcpctl_new_object");
if (status != ISC_R_SUCCESS)
return status;
- status = omapi_set_string_value (h, object_type);
+ status = dhcpctl_set_string_value (*h, object_type, "type");
if (status != ISC_R_SUCCESS)
omapi_object_dereference (h, "dhcpctl_new_object");
return status;
@@ -333,22 +338,13 @@ dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *result,
{
isc_result_t status;
omapi_value_t *tv = (omapi_value_t *)0;
- omapi_data_string_t *name = (omapi_data_string_t *)0;
omapi_data_string_t *value = (omapi_data_string_t *)0;
int len;
int ip;
- status = omapi_data_string_new (&name, strlen (value_name) + 1,
- "dhcpctl_get_value");
+ status = omapi_get_value_str (h, (omapi_object_t *)0, value_name, &tv);
if (status != ISC_R_SUCCESS)
return status;
- strcpy (name -> value, value_name);
-
- status = omapi_get_value (h, (omapi_object_t *)0, name, &tv);
- if (status != ISC_R_SUCCESS) {
- omapi_data_string_dereference (&name, "dhcpctl_get_value");
- return status;
- }
switch (tv -> value -> type) {
case omapi_datatype_int:
@@ -365,7 +361,6 @@ dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *result,
break;
default:
- omapi_data_string_dereference (&name, "dhcpctl_get_value");
omapi_typed_data_dereference (&tv -> value,
"dhcpctl_get_value");
return ISC_R_UNEXPECTED;
@@ -373,7 +368,6 @@ dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *result,
status = omapi_data_string_new (result, len, "dhcpctl_get_value");
if (status != ISC_R_SUCCESS) {
- omapi_data_string_dereference (&name, "dhcpctl_get_value");
omapi_typed_data_dereference (&tv -> value,
"dhcpctl_get_value");
return status;
@@ -398,7 +392,6 @@ dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *result,
break;
}
- omapi_data_string_dereference (&name, "dhcpctl_get_value");
omapi_value_dereference (&tv, "dhcpctl_get_value");
return ISC_R_SUCCESS;
}
@@ -442,11 +435,11 @@ dhcpctl_status dhcpctl_set_value (dhcpctl_handle h, dhcpctl_data_string value,
int len;
int ip;
- status = omapi_data_string_new (&name, strlen (value_name) + 1,
+ status = omapi_data_string_new (&name, strlen (value_name),
"dhcpctl_set_value");
if (status != ISC_R_SUCCESS)
return status;
- strcpy (name -> value, value_name);
+ memcpy (name -> value, value_name, strlen (value_name));
status = omapi_typed_data_new (&tv, omapi_datatype_data,
value -> len);
@@ -478,11 +471,11 @@ dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle h, char *value,
int len;
int ip;
- status = omapi_data_string_new (&name, strlen (value_name) + 1,
+ status = omapi_data_string_new (&name, strlen (value_name),
"dhcpctl_set_string_value");
if (status != ISC_R_SUCCESS)
return status;
- strcpy (name -> value, value_name);
+ memcpy (name -> value, value_name, strlen (value_name));
status = omapi_typed_data_new (&tv, omapi_datatype_string, value);
if (status != ISC_R_SUCCESS) {
@@ -497,13 +490,46 @@ dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle h, char *value,
return status;
}
-/* dhcpctl_set_boolean
+/* dhcpctl_set_boolean_value
+
+ Sets a boolean value on an object - like dhcpctl_set_value,
+ only more convenient for booleans. */
+
+dhcpctl_status dhcpctl_set_boolean_value (dhcpctl_handle h, int value,
+ char *value_name)
+{
+ isc_result_t status;
+ omapi_typed_data_t *tv = (omapi_typed_data_t *)0;
+ omapi_data_string_t *name = (omapi_data_string_t *)0;
+ int len;
+ int ip;
+
+ status = omapi_data_string_new (&name, strlen (value_name),
+ "dhcpctl_set_boolean_value");
+ if (status != ISC_R_SUCCESS)
+ return status;
+ memcpy (name -> value, value_name, strlen (value_name));
+
+ status = omapi_typed_data_new (&tv, omapi_datatype_int, value);
+ if (status != ISC_R_SUCCESS) {
+ omapi_data_string_dereference (&name,
+ "dhcpctl_set_boolean_value");
+ return status;
+ }
+
+ status = omapi_set_value (h, (omapi_object_t *)0, name, tv);
+ omapi_data_string_dereference (&name, "dhcpctl_set_boolean_value");
+ omapi_typed_data_dereference (&tv, "dhcpctl_set_boolean_value");
+ return status;
+}
+
+/* dhcpctl_set_int_value
Sets a boolean value on an object - like dhcpctl_set_value,
only more convenient for booleans. */
-dhcpctl_status dhcpctl_set_boolean (dhcpctl_handle h, int value,
- char *value_name)
+dhcpctl_status dhcpctl_set_int_value (dhcpctl_handle h, int value,
+ char *value_name)
{
isc_result_t status;
omapi_typed_data_t *tv = (omapi_typed_data_t *)0;
@@ -511,11 +537,11 @@ dhcpctl_status dhcpctl_set_boolean (dhcpctl_handle h, int value,
int len;
int ip;
- status = omapi_data_string_new (&name, strlen (value_name) + 1,
+ status = omapi_data_string_new (&name, strlen (value_name),
"dhcpctl_set_boolean_value");
if (status != ISC_R_SUCCESS)
return status;
- strcpy (name -> value, value_name);
+ memcpy (name -> value, value_name, strlen (value_name));
status = omapi_typed_data_new (&tv, omapi_datatype_int, value);
if (status != ISC_R_SUCCESS) {
@@ -547,12 +573,14 @@ dhcpctl_status dhcpctl_object_update (dhcpctl_handle connection,
omapi_object_dereference (&message, "dhcpctl_open_object");
return status;
}
- status = omapi_set_int_value (message, "op", OMAPI_OP_UPDATE);
+ 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");
return status;
}
- status = omapi_set_object_value (message, "object", h);
+ status = omapi_set_object_value (message, (omapi_object_t *)0,
+ "object", h);
if (status != ISC_R_SUCCESS) {
omapi_object_dereference (&message, "dhcpctl_open_object");
return status;
@@ -581,12 +609,14 @@ dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle connection,
omapi_object_dereference (&message, "dhcpctl_open_object");
return status;
}
- status = omapi_set_int_value (message, "op", OMAPI_OP_REFRESH);
+ 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");
return status;
}
- status = omapi_set_int_value (message, "handle", h -> handle);
+ 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");
return status;