1 /* $Id: dhcpctl.h,v 1.18 2009/11/24 02:06:56 sar Exp $ 2 3 Subroutines providing general support for objects. */ 4 5 /* 6 * Copyright (c) 2004,2009,2014 by Internet Systems Consortium, Inc. ("ISC") 7 * Copyright (c) 1999-2003 by Internet Software Consortium 8 * 9 * Permission to use, copy, modify, and distribute this software for any 10 * purpose with or without fee is hereby granted, provided that the above 11 * copyright notice and this permission notice appear in all copies. 12 * 13 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES 14 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 15 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR 16 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 18 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 19 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20 * 21 * Internet Systems Consortium, Inc. 22 * 950 Charter Street 23 * Redwood City, CA 94063 24 * <info@isc.org> 25 * https://www.isc.org/ 26 * 27 */ 28 29 #ifndef _DHCPCTL_H_ 30 #define _DHCPCTL_H_ 31 32 #include <omapip/omapip.h> 33 34 typedef isc_result_t dhcpctl_status; 35 typedef omapi_object_t *dhcpctl_handle; 36 typedef omapi_data_string_t *dhcpctl_data_string; 37 38 #define dhcpctl_null_handle ((dhcpctl_handle) 0) 39 40 #define DHCPCTL_CREATE OMAPI_CREATE 41 #define DHCPCTL_UPDATE OMAPI_UPDATE 42 #define DHCPCTL_EXCL OMAPI_EXCL 43 44 typedef struct { 45 OMAPI_OBJECT_PREAMBLE; 46 omapi_object_t *object; 47 void *data; 48 void (*callback) (dhcpctl_handle, dhcpctl_status, void *); 49 } dhcpctl_callback_object_t; 50 51 typedef struct { 52 OMAPI_OBJECT_PREAMBLE; 53 omapi_typed_data_t *rtype; 54 isc_result_t waitstatus; 55 omapi_typed_data_t *message; 56 omapi_handle_t remote_handle; 57 } dhcpctl_remote_object_t; 58 59 extern omapi_object_type_t *dhcpctl_callback_type; 60 extern omapi_object_type_t *dhcpctl_remote_type; 61 62 dhcpctl_status dhcpctl_initialize (void); 63 dhcpctl_status dhcpctl_connect (dhcpctl_handle *, 64 const char *, int, dhcpctl_handle); 65 dhcpctl_status dhcpctl_wait_for_completion (dhcpctl_handle, dhcpctl_status *); 66 dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *, 67 dhcpctl_handle, const char *); 68 dhcpctl_status dhcpctl_get_boolean (int *, dhcpctl_handle, const char *); 69 dhcpctl_status dhcpctl_set_value (dhcpctl_handle, 70 dhcpctl_data_string, const char *); 71 dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle, const char *, 72 const char *); 73 dhcpctl_status dhcpctl_set_data_value (dhcpctl_handle, 74 const char *, unsigned, const char *); 75 dhcpctl_status dhcpctl_set_null_value (dhcpctl_handle, const char *); 76 dhcpctl_status dhcpctl_set_boolean_value (dhcpctl_handle, int, const char *); 77 dhcpctl_status dhcpctl_set_int_value (dhcpctl_handle, int, const char *); 78 dhcpctl_status dhcpctl_object_update (dhcpctl_handle, dhcpctl_handle); 79 dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle, dhcpctl_handle); 80 dhcpctl_status dhcpctl_object_remove (dhcpctl_handle, dhcpctl_handle); 81 82 dhcpctl_status dhcpctl_set_callback (dhcpctl_handle, void *, 83 void (*) (dhcpctl_handle, 84 dhcpctl_status, void *)); 85 isc_result_t dhcpctl_callback_set_value (omapi_object_t *, omapi_object_t *, 86 omapi_data_string_t *, 87 omapi_typed_data_t *); 88 isc_result_t dhcpctl_callback_get_value (omapi_object_t *, omapi_object_t *, 89 omapi_data_string_t *, 90 omapi_value_t **); 91 isc_result_t dhcpctl_callback_destroy (omapi_object_t *, const char *, int); 92 isc_result_t dhcpctl_callback_signal_handler (omapi_object_t *, 93 const char *, va_list); 94 isc_result_t dhcpctl_callback_stuff_values (omapi_object_t *, 95 omapi_object_t *, 96 omapi_object_t *); 97 98 dhcpctl_status dhcpctl_new_authenticator (dhcpctl_handle *, 99 const char *, const char *, 100 const unsigned char *, unsigned); 101 102 dhcpctl_status dhcpctl_open_object (dhcpctl_handle, dhcpctl_handle, int); 103 dhcpctl_status dhcpctl_new_object (dhcpctl_handle *, 104 dhcpctl_handle, const char *); 105 isc_result_t dhcpctl_remote_set_value (omapi_object_t *, omapi_object_t *, 106 omapi_data_string_t *, 107 omapi_typed_data_t *); 108 isc_result_t dhcpctl_remote_get_value (omapi_object_t *, omapi_object_t *, 109 omapi_data_string_t *, 110 omapi_value_t **); 111 isc_result_t dhcpctl_remote_destroy (omapi_object_t *, const char *, int); 112 isc_result_t dhcpctl_remote_signal_handler (omapi_object_t *, 113 const char *, va_list); 114 isc_result_t dhcpctl_remote_stuff_values (omapi_object_t *, 115 omapi_object_t *, 116 omapi_object_t *); 117 isc_result_t dhcpctl_data_string_dereference (dhcpctl_data_string *, 118 const char *, int); 119 #endif /* _DHCPCTL_H_ */ 120