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