isc_result_t omapi_auth_key_get_value (omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value) { omapi_auth_key_t *a; isc_result_t status; if (h -> type != omapi_type_auth_key) return ISC_R_UNEXPECTED; a = (omapi_auth_key_t *)h; if (omapi_ds_strcmp (name, "name") == 0) { if (a -> name) return omapi_make_string_value (value, name, a -> name, MDL); else return ISC_R_NOTFOUND; } else if (omapi_ds_strcmp (name, "key") == 0) { if (a -> key) { status = omapi_value_new (value, MDL); if (status != ISC_R_SUCCESS) return status; status = omapi_data_string_reference (&(*value) -> name, name, MDL); if (status != ISC_R_SUCCESS) { omapi_value_dereference (value, MDL); return status; } status = omapi_typed_data_new (MDL, &(*value) -> value, omapi_datatype_data, a -> key -> len); if (status != ISC_R_SUCCESS) { omapi_value_dereference (value, MDL); return status; } memcpy ((*value) -> value -> u.buffer.value, a -> key -> value, a -> key -> len); return ISC_R_SUCCESS; } else return ISC_R_NOTFOUND; } else if (omapi_ds_strcmp (name, "algorithm") == 0) { if (a -> algorithm) return omapi_make_string_value (value, name, a -> algorithm, MDL); else return ISC_R_NOTFOUND; } return ISC_R_SUCCESS; }
isc_result_t dhcp_group_get_value (omapi_object_t *h, omapi_object_t *id, omapi_data_string_t *name, omapi_value_t **value) { struct group_object *group; isc_result_t status; struct data_string ip_addrs; if (h -> type != dhcp_type_group) return ISC_R_INVALIDARG; group = (struct group_object *)h; if (!omapi_ds_strcmp (name, "name")) return omapi_make_string_value (value, name, group -> name, MDL); /* Try to find some inner object that can take the value. */ if (h -> inner && h -> inner -> type -> get_value) { status = ((*(h -> inner -> type -> get_value)) (h -> inner, id, name, value)); if (status == ISC_R_SUCCESS) return status; } return ISC_R_NOTFOUND; }