summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dhcpctl/callback.c1
-rw-r--r--dhcpctl/dhcpctl.c1
-rw-r--r--dhcpctl/remote.c1
-rw-r--r--dhcpctl/test.c5
-rw-r--r--includes/dhcpd.h1
-rw-r--r--includes/omapip/alloc.h20
-rw-r--r--includes/omapip/omapip.h191
-rw-r--r--omapip/alloc.c2
-rw-r--r--omapip/buffer.c2
-rw-r--r--omapip/connection.c2
-rw-r--r--omapip/dispatch.c12
-rw-r--r--omapip/generic.c2
-rw-r--r--omapip/handle.c2
-rw-r--r--omapip/listener.c2
-rw-r--r--omapip/message.c2
-rw-r--r--omapip/protocol.c2
-rw-r--r--omapip/result.c2
-rw-r--r--omapip/support.c2
-rw-r--r--omapip/test.c5
-rw-r--r--server/omapi.c3
20 files changed, 61 insertions, 199 deletions
diff --git a/dhcpctl/callback.c b/dhcpctl/callback.c
index d1f37be3..ca662848 100644
--- a/dhcpctl/callback.c
+++ b/dhcpctl/callback.c
@@ -20,6 +20,7 @@
* http://www.isc.org for more information.
*/
+#include <omapip/omapip_p.h>
#include "dhcpctl.h"
/* dhcpctl_set_callback
diff --git a/dhcpctl/dhcpctl.c b/dhcpctl/dhcpctl.c
index 92be571e..9ec097bd 100644
--- a/dhcpctl/dhcpctl.c
+++ b/dhcpctl/dhcpctl.c
@@ -20,6 +20,7 @@
* http://www.isc.org for more information.
*/
+#include <omapip/omapip_p.h>
#include "dhcpctl.h"
omapi_object_type_t *dhcpctl_callback_type;
diff --git a/dhcpctl/remote.c b/dhcpctl/remote.c
index c65a86dc..7a444552 100644
--- a/dhcpctl/remote.c
+++ b/dhcpctl/remote.c
@@ -20,6 +20,7 @@
* http://www.isc.org for more information.
*/
+#include <omapip/omapip_p.h>
#include "dhcpctl.h"
/* dhcpctl_new_object
diff --git a/dhcpctl/test.c b/dhcpctl/test.c
index 380be5e9..713e0f81 100644
--- a/dhcpctl/test.c
+++ b/dhcpctl/test.c
@@ -20,6 +20,11 @@
* http://www.isc.org for more information.
*/
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <isc/result.h>
#include "dhcpctl.h"
int main (int, char **);
diff --git a/includes/dhcpd.h b/includes/dhcpd.h
index 58a93078..2a64411b 100644
--- a/includes/dhcpd.h
+++ b/includes/dhcpd.h
@@ -56,6 +56,7 @@
#include "auth.h"
#include "dhctoken.h"
+#include <isc/result.h>
#include <omapip/omapip.h>
#if !defined (OPTION_HASH_SIZE)
diff --git a/includes/omapip/alloc.h b/includes/omapip/alloc.h
index 5cbcc6fd..162ea41a 100644
--- a/includes/omapip/alloc.h
+++ b/includes/omapip/alloc.h
@@ -20,27 +20,7 @@
* http://www.isc.org for more information.
*/
-isc_result_t omapi_object_reference (omapi_object_t **,
- omapi_object_t *, const char *);
-isc_result_t omapi_object_dereference (omapi_object_t **, const char *);
-
isc_result_t omapi_buffer_new (omapi_buffer_t **, const char *);
isc_result_t omapi_buffer_reference (omapi_buffer_t **,
omapi_buffer_t *, const char *);
isc_result_t omapi_buffer_dereference (omapi_buffer_t **, const char *);
-isc_result_t omapi_typed_data_new (omapi_typed_data_t **,
- omapi_datatype_t, ...);
-isc_result_t omapi_typed_data_reference (omapi_typed_data_t **,
- omapi_typed_data_t *, const char *);
-isc_result_t omapi_typed_data_dereference (omapi_typed_data_t **,
- const char *);
-isc_result_t omapi_data_string_new (omapi_data_string_t **,
- unsigned, const char *);
-isc_result_t omapi_data_string_reference (omapi_data_string_t **,
- omapi_data_string_t *, const char *);
-isc_result_t omapi_data_string_dereference (omapi_data_string_t **,
- const char *);
-isc_result_t omapi_value_new (omapi_value_t **, const char *);
-isc_result_t omapi_value_reference (omapi_value_t **,
- omapi_value_t *, const char *);
-isc_result_t omapi_value_dereference (omapi_value_t **, const char *);
diff --git a/includes/omapip/omapip.h b/includes/omapip/omapip.h
index 25a6f9c9..372e5c52 100644
--- a/includes/omapip/omapip.h
+++ b/includes/omapip/omapip.h
@@ -23,49 +23,7 @@
#ifndef _OMAPIP_H_
#define _OMAPIP_H_
-#ifndef __CYGWIN32__
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <arpa/inet.h>
-
-#if defined (NSUPDATE)
-# include <arpa/nameser.h>
-# include <resolv.h>
-#endif
-
-#include <netdb.h>
-#else
-#define fd_set cygwin_fd_set
-#include <sys/types.h>
-#endif
-#include <fcntl.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/stat.h>
-#include <ctype.h>
-#include <time.h>
-
-#include "cdefs.h"
-#include "osdep.h"
-
-#include <isc/result.h>
-
-typedef u_int32_t omapi_handle_t;
-
-/* OMAPI protocol header, version 1.00 */
-typedef struct {
- unsigned authlen; /* Length of authenticator. */
- unsigned authid; /* Authenticator object ID. */
- unsigned op; /* Opcode. */
- omapi_handle_t handle; /* Handle of object being operated on,
- or zero. */
- unsigned id; /* Transaction ID. */
- unsigned rid; /* ID of transaction to which this is a response. */
-} omapi_protocol_header_t;
+typedef unsigned int omapi_handle_t;
struct __omapi_object;
typedef struct __omapi_object omapi_object_t;
@@ -86,7 +44,7 @@ typedef struct {
#define OMAPI_TYPED_DATA_NOBUFFER_LEN (sizeof (int) + \
sizeof (omapi_datatype_t) + \
sizeof (int))
- u_int8_t value [1];
+ unsigned char value [1];
} buffer;
#define OMAPI_TYPED_DATA_OBJECT_LEN (sizeof (int) + \
sizeof (omapi_datatype_t) + \
@@ -112,7 +70,7 @@ typedef struct {
int refcnt;
unsigned len;
#define OMAPI_DATA_STRING_EMPTY_SIZE (2 * sizeof (int))
- u_int8_t value [1];
+ unsigned char value [1];
} omapi_data_string_t;
typedef struct {
@@ -153,126 +111,8 @@ struct __omapi_object {
OMAPI_OBJECT_PREAMBLE;
};
+/* The port on which applications should listen for OMAPI connections. */
#define OMAPI_PROTOCOL_PORT 7911
-#define OMAPI_PROTOCOL_VERSION 100
-
-#define OMAPI_OP_OPEN 1
-#define OMAPI_OP_REFRESH 2
-#define OMAPI_OP_UPDATE 3
-#define OMAPI_OP_NOTIFY 4
-#define OMAPI_OP_STATUS 5
-#define OMAPI_OP_DELETE 6
-
-#include <omapip/buffer.h>
-
-typedef enum {
- omapi_connection_unconnected,
- omapi_connection_connecting,
- omapi_connection_connected,
- omapi_connection_disconnecting,
- omapi_connection_closed
-} omapi_connection_state_t;
-
-typedef enum {
- omapi_protocol_intro_wait,
- omapi_protocol_header_wait,
- omapi_protocol_signature_wait,
- omapi_protocol_name_wait,
- omapi_protocol_name_length_wait,
- omapi_protocol_value_wait,
- omapi_protocol_value_length_wait
-} omapi_protocol_state_t;
-
-typedef struct __omapi_message_object {
- OMAPI_OBJECT_PREAMBLE;
- struct __omapi_message_object *next, *prev;
- omapi_object_t *object;
- omapi_object_t *notify_object;
- unsigned authlen;
- omapi_typed_data_t *authenticator;
- unsigned authid;
- omapi_object_t *id_object;
- unsigned op;
- omapi_handle_t h;
- unsigned id;
- unsigned rid;
-} omapi_message_object_t;
-
-typedef struct {
- OMAPI_OBJECT_PREAMBLE;
- unsigned header_size;
- unsigned protocol_version;
- u_int32_t next_xid;
- omapi_object_t *authinfo; /* Default authinfo to use. */
-
- omapi_protocol_state_t state; /* Input state. */
- int reading_message_values; /* True if reading message-specific
- values. */
- omapi_message_object_t *message; /* Incoming message. */
- omapi_data_string_t *name; /* Incoming name. */
- omapi_typed_data_t *value; /* Incoming value. */
-} omapi_protocol_object_t;
-
-typedef struct {
- OMAPI_OBJECT_PREAMBLE;
-} omapi_protocol_listener_object_t;
-
-typedef struct __omapi_connection_object {
- OMAPI_OBJECT_PREAMBLE;
- int socket; /* Connection socket. */
- omapi_connection_state_t state;
- struct sockaddr_in remote_addr;
- struct sockaddr_in local_addr;
- u_int32_t bytes_needed; /* Bytes of input needed before wakeup. */
- u_int32_t in_bytes; /* Bytes of input already buffered. */
- omapi_buffer_t *inbufs;
- u_int32_t out_bytes; /* Bytes of output in buffers. */
- omapi_buffer_t *outbufs;
- omapi_object_t *listener; /* Listener that accepted this
- connection, if any. */
-} omapi_connection_object_t;
-
-typedef struct __omapi_listener_object {
- OMAPI_OBJECT_PREAMBLE;
- int socket; /* Connection socket. */
- struct sockaddr_in address;
-} omapi_listener_object_t;
-
-typedef struct __omapi_io_object {
- OMAPI_OBJECT_PREAMBLE;
- struct __omapi_io_object *next;
- int (*readfd) (omapi_object_t *);
- int (*writefd) (omapi_object_t *);
- isc_result_t (*reader) (omapi_object_t *);
- isc_result_t (*writer) (omapi_object_t *);
- isc_result_t (*reaper) (omapi_object_t *);
-} omapi_io_object_t;
-
-typedef struct __omapi_generic_object {
- OMAPI_OBJECT_PREAMBLE;
- omapi_value_t **values;
- int nvalues, va_max;
-} omapi_generic_object_t;
-
-typedef struct __omapi_waiter_object {
- OMAPI_OBJECT_PREAMBLE;
- int ready;
- struct __omapi_waiter_object *next;
-} omapi_waiter_object_t;
-
-#define OMAPI_HANDLE_TABLE_SIZE 120
-
-typedef struct __omapi_handle_table {
- omapi_handle_t first, limit;
- omapi_handle_t next;
- int leafp;
- union {
- omapi_object_t *object;
- struct __omapi_handle_table *table;
- } children [OMAPI_HANDLE_TABLE_SIZE];
-} omapi_handle_table_t;
-
-#include <omapip/alloc.h>
isc_result_t omapi_protocol_connect (omapi_object_t *,
const char *, int, omapi_object_t *);
@@ -368,7 +208,7 @@ isc_result_t omapi_register_io_object (omapi_object_t *,
isc_result_t (*)(omapi_object_t *));
isc_result_t omapi_dispatch (struct timeval *);
isc_result_t omapi_wait_for_completion (omapi_object_t *, struct timeval *);
-isc_result_t omapi_one_dispatch (omapi_waiter_object_t *, struct timeval *);
+isc_result_t omapi_one_dispatch (omapi_object_t *, struct timeval *);
isc_result_t omapi_io_set_value (omapi_object_t *, omapi_object_t *,
omapi_data_string_t *,
omapi_typed_data_t *);
@@ -501,4 +341,25 @@ isc_result_t omapi_object_handle (omapi_handle_t *, omapi_object_t *);
isc_result_t omapi_handle_lookup (omapi_object_t **, omapi_handle_t);
isc_result_t omapi_handle_td_lookup (omapi_object_t **, omapi_typed_data_t *);
+isc_result_t omapi_object_reference (omapi_object_t **,
+ omapi_object_t *, const char *);
+isc_result_t omapi_object_dereference (omapi_object_t **, const char *);
+isc_result_t omapi_typed_data_new (omapi_typed_data_t **,
+ omapi_datatype_t, ...);
+isc_result_t omapi_typed_data_reference (omapi_typed_data_t **,
+ omapi_typed_data_t *, const char *);
+isc_result_t omapi_typed_data_dereference (omapi_typed_data_t **,
+ const char *);
+isc_result_t omapi_data_string_new (omapi_data_string_t **,
+ unsigned, const char *);
+isc_result_t omapi_data_string_reference (omapi_data_string_t **,
+ omapi_data_string_t *, const char *);
+isc_result_t omapi_data_string_dereference (omapi_data_string_t **,
+ const char *);
+isc_result_t omapi_value_new (omapi_value_t **, const char *);
+isc_result_t omapi_value_reference (omapi_value_t **,
+ omapi_value_t *, const char *);
+isc_result_t omapi_value_dereference (omapi_value_t **, const char *);
+
+
#endif /* _OMAPIP_H_ */
diff --git a/omapip/alloc.c b/omapip/alloc.c
index 8d93751b..67d32120 100644
--- a/omapip/alloc.c
+++ b/omapip/alloc.c
@@ -21,7 +21,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
isc_result_t omapi_object_reference (omapi_object_t **r,
omapi_object_t *h,
diff --git a/omapip/buffer.c b/omapip/buffer.c
index 25c3b351..9533ef71 100644
--- a/omapip/buffer.c
+++ b/omapip/buffer.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
/* Make sure that at least len bytes are in the input buffer, and if not,
read enough bytes to make up the difference. */
diff --git a/omapip/connection.c b/omapip/connection.c
index 7916fe32..5fa4603d 100644
--- a/omapip/connection.c
+++ b/omapip/connection.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
isc_result_t omapi_connect (omapi_object_t *c,
const char *server_name,
diff --git a/omapip/dispatch.c b/omapip/dispatch.c
index 257a1a40..659f998a 100644
--- a/omapip/dispatch.c
+++ b/omapip/dispatch.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
static omapi_io_object_t omapi_io_states;
u_int32_t cur_time;
@@ -137,7 +137,7 @@ isc_result_t omapi_wait_for_completion (omapi_object_t *object,
waiter = (omapi_waiter_object_t *)0;
do {
- status = omapi_one_dispatch (waiter, t);
+ status = omapi_one_dispatch ((omapi_object_t *)waiter, t);
if (status != ISC_R_SUCCESS)
return status;
} while (!waiter || !waiter -> ready);
@@ -164,7 +164,7 @@ isc_result_t omapi_wait_for_completion (omapi_object_t *object,
return ISC_R_SUCCESS;
}
-isc_result_t omapi_one_dispatch (omapi_waiter_object_t *waiter,
+isc_result_t omapi_one_dispatch (omapi_object_t *wo,
struct timeval *t)
{
fd_set r, w, x;
@@ -174,6 +174,12 @@ isc_result_t omapi_one_dispatch (omapi_waiter_object_t *waiter,
struct timeval now, to;
omapi_io_object_t *io, *prev;
isc_result_t status;
+ omapi_waiter_object_t *waiter;
+
+ if (!wo || wo -> type != omapi_type_waiter)
+ waiter = (omapi_waiter_object_t *)0;
+ else
+ waiter = (omapi_waiter_object_t *)wo;
FD_ZERO (&x);
diff --git a/omapip/generic.c b/omapip/generic.c
index 4f19b736..8f1fcc10 100644
--- a/omapip/generic.c
+++ b/omapip/generic.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
isc_result_t omapi_generic_new (omapi_object_t **gen, const char *name)
{
diff --git a/omapip/handle.c b/omapip/handle.c
index 0fcb0317..5a907bc7 100644
--- a/omapip/handle.c
+++ b/omapip/handle.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
/* The handle table is a hierarchical tree designed for quick mapping
of handle identifiers to objects. Objects contain their own handle
diff --git a/omapip/listener.c b/omapip/listener.c
index dea6e616..fa1f65d3 100644
--- a/omapip/listener.c
+++ b/omapip/listener.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
isc_result_t omapi_listen (omapi_object_t *h,
int port,
diff --git a/omapip/message.c b/omapip/message.c
index 4efdcae2..d4c9d569 100644
--- a/omapip/message.c
+++ b/omapip/message.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
omapi_message_object_t *omapi_registered_messages;
diff --git a/omapip/protocol.c b/omapip/protocol.c
index 71690f44..cfb59c4e 100644
--- a/omapip/protocol.c
+++ b/omapip/protocol.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
isc_result_t omapi_protocol_connect (omapi_object_t *h,
const char *server_name,
diff --git a/omapip/result.c b/omapip/result.c
index 57660d89..0f9349ed 100644
--- a/omapip/result.c
+++ b/omapip/result.c
@@ -21,7 +21,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
static const char *text[ISC_R_NRESULTS] = {
"success", /* 0 */
diff --git a/omapip/support.c b/omapip/support.c
index a438c73e..86535d5b 100644
--- a/omapip/support.c
+++ b/omapip/support.c
@@ -20,7 +20,7 @@
* http://www.isc.org for more information.
*/
-#include <omapip/omapip.h>
+#include <omapip/omapip_p.h>
omapi_object_type_t *omapi_type_connection;
omapi_object_type_t *omapi_type_listener;
diff --git a/omapip/test.c b/omapip/test.c
index fa80ff77..d8065d94 100644
--- a/omapip/test.c
+++ b/omapip/test.c
@@ -20,6 +20,11 @@
* http://www.isc.org for more information.
*/
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <isc/result.h>
#include <omapip/omapip.h>
int main (int argc, char **argv)
diff --git a/server/omapi.c b/server/omapi.c
index d4e89801..f4d91b1a 100644
--- a/server/omapi.c
+++ b/server/omapi.c
@@ -29,10 +29,11 @@
#ifndef lint
static char copyright[] =
-"$Id: omapi.c,v 1.15 1999/10/07 06:36:35 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
+"$Id: omapi.c,v 1.16 1999/10/08 03:43:15 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
+#include <omapip/omapip_p.h>
omapi_object_type_t *dhcp_type_lease;
omapi_object_type_t *dhcp_type_group;