00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _DHCPCTL_H_
00030 #define _DHCPCTL_H_
00031
00032 #include <omapip/omapip.h>
00033
00034 typedef isc_result_t dhcpctl_status;
00035 typedef omapi_object_t *dhcpctl_handle;
00036 typedef omapi_data_string_t *dhcpctl_data_string;
00037
00038 #define dhcpctl_null_handle ((dhcpctl_handle) 0)
00039
00040 #define DHCPCTL_CREATE OMAPI_CREATE
00041 #define DHCPCTL_UPDATE OMAPI_UPDATE
00042 #define DHCPCTL_EXCL OMAPI_EXCL
00043
00044 typedef struct {
00045 OMAPI_OBJECT_PREAMBLE;
00046 omapi_object_t *object;
00047 void *data;
00048 void (*callback) (dhcpctl_handle, dhcpctl_status, void *);
00049 } dhcpctl_callback_object_t;
00050
00051 typedef struct {
00052 OMAPI_OBJECT_PREAMBLE;
00053 omapi_typed_data_t *rtype;
00054 isc_result_t waitstatus;
00055 omapi_typed_data_t *message;
00056 omapi_handle_t remote_handle;
00057 } dhcpctl_remote_object_t;
00058
00059 extern omapi_object_type_t *dhcpctl_callback_type;
00060 extern omapi_object_type_t *dhcpctl_remote_type;
00061
00062 dhcpctl_status dhcpctl_initialize (void);
00063 dhcpctl_status dhcpctl_connect (dhcpctl_handle *,
00064 const char *, int, dhcpctl_handle);
00065 dhcpctl_status dhcpctl_wait_for_completion (dhcpctl_handle, dhcpctl_status *);
00066 dhcpctl_status dhcpctl_get_value (dhcpctl_data_string *,
00067 dhcpctl_handle, const char *);
00068 dhcpctl_status dhcpctl_get_boolean (int *, dhcpctl_handle, const char *);
00069 dhcpctl_status dhcpctl_set_value (dhcpctl_handle,
00070 dhcpctl_data_string, const char *);
00071 dhcpctl_status dhcpctl_set_string_value (dhcpctl_handle, const char *,
00072 const char *);
00073 dhcpctl_status dhcpctl_set_data_value (dhcpctl_handle,
00074 const char *, unsigned, const char *);
00075 dhcpctl_status dhcpctl_set_null_value (dhcpctl_handle, const char *);
00076 dhcpctl_status dhcpctl_set_boolean_value (dhcpctl_handle, int, const char *);
00077 dhcpctl_status dhcpctl_set_int_value (dhcpctl_handle, int, const char *);
00078 dhcpctl_status dhcpctl_object_update (dhcpctl_handle, dhcpctl_handle);
00079 dhcpctl_status dhcpctl_object_refresh (dhcpctl_handle, dhcpctl_handle);
00080 dhcpctl_status dhcpctl_object_remove (dhcpctl_handle, dhcpctl_handle);
00081
00082 dhcpctl_status dhcpctl_set_callback (dhcpctl_handle, void *,
00083 void (*) (dhcpctl_handle,
00084 dhcpctl_status, void *));
00085 isc_result_t dhcpctl_callback_set_value (omapi_object_t *, omapi_object_t *,
00086 omapi_data_string_t *,
00087 omapi_typed_data_t *);
00088 isc_result_t dhcpctl_callback_get_value (omapi_object_t *, omapi_object_t *,
00089 omapi_data_string_t *,
00090 omapi_value_t **);
00091 isc_result_t dhcpctl_callback_destroy (omapi_object_t *, const char *, int);
00092 isc_result_t dhcpctl_callback_signal_handler (omapi_object_t *,
00093 const char *, va_list);
00094 isc_result_t dhcpctl_callback_stuff_values (omapi_object_t *,
00095 omapi_object_t *,
00096 omapi_object_t *);
00097
00098 dhcpctl_status dhcpctl_new_authenticator (dhcpctl_handle *,
00099 const char *, const char *,
00100 const unsigned char *, unsigned);
00101
00102 dhcpctl_status dhcpctl_open_object (dhcpctl_handle, dhcpctl_handle, int);
00103 dhcpctl_status dhcpctl_new_object (dhcpctl_handle *,
00104 dhcpctl_handle, const char *);
00105 isc_result_t dhcpctl_remote_set_value (omapi_object_t *, omapi_object_t *,
00106 omapi_data_string_t *,
00107 omapi_typed_data_t *);
00108 isc_result_t dhcpctl_remote_get_value (omapi_object_t *, omapi_object_t *,
00109 omapi_data_string_t *,
00110 omapi_value_t **);
00111 isc_result_t dhcpctl_remote_destroy (omapi_object_t *, const char *, int);
00112 isc_result_t dhcpctl_remote_signal_handler (omapi_object_t *,
00113 const char *, va_list);
00114 isc_result_t dhcpctl_remote_stuff_values (omapi_object_t *,
00115 omapi_object_t *,
00116 omapi_object_t *);
00117 isc_result_t dhcpctl_data_string_dereference (dhcpctl_data_string *,
00118 const char *, int);
00119 #endif