72static void usage (
const char *
s) {
77static void check (
isc_result_t status,
const char *func) {
91 const char *name = 0, *algorithm =
"hmac-md5";
94 const char *
server =
"127.0.0.1";
111 for (
i = 1;
i < argc;
i++) {
142 (
int)(
r -> rtype -> u .
buffer . len),
146 for (
i = 0;
i <
g -> nvalues;
i++) {
149 if (!
g -> values [
i])
152 printf (
"%.*s = ", (
int)
v -> name -> len,
159 switch (
v ->
value -> type) {
162 v ->
value -> u . integer);
167 (
int)
v ->
value -> u.buffer.len,
168 v ->
value -> u.buffer.value);
173 v->value->u.buffer.value,
191 check(status,
"new_parse()");
207 printf (
" port <server omapi port>\n");
208 printf (
" server <server address>\n");
209 printf (
" key <key name> <key value>\n");
212 printf (
" new <object-type>\n");
213 printf (
" set <name> = <value>\n");
217 printf (
" unset <name>\n");
231 printf (
"unknown service name: %s\n", val);
234 }
else if (token ==
NUMBER) {
238 printf (
"usage: port <port>\n");
243 printf (
"usage: port <server>\n");
252 int alen = (
sizeof buf) - 1;
257 if (len + 1 >
alen) {
259 printf (
"usage: server <server>\n");
303 printf (
"usage: server <server>\n");
310 printf (
"no memory to store server name.\n");
319 printf (
"usage: server <server>\n");
329 printf (
"missing or invalid algorithm name\n");
330 printf (
"usage: key-algoritm <algorithm name>\n");
337 printf (
"no memory for algorithm name.\n");
347 printf (
"extra information after %s\n", algorithm);
348 printf (
"usage: key-algorithm <algorithm name>\n");
360 printf (
"usage: key <name> <value>\n");
366 printf (
"no memory for key name.\n");
374 printf (
"usage: key <name> <value>\n");
389 printf (
"usage: key <name> <value>\n");
399 printf (
"usage: connect\n");
414 "Cannot create authenticator: %s\n",
422 server, port, authenticator);
434 printf (
"usage: disconnect\n");
456 printf (
"usage: new <object-type>\n");
461 printf (
"an object is already open.\n");
467 printf (
"not connected.\n");
474 printf (
"can't create object: %s\n",
481 printf (
"usage: new <object-type>\n");
490 printf (
"usage: close\n");
496 printf (
"not connected.\n");
515 printf (
"usage: set <name> = <value>\n");
521 printf (
"no open object.\n");
527 printf (
"not connected.\n");
556 else if (token ==
DOT) {
560 int intval =
atoi (val);
563 "dotted octet > 255: %s",
570 (
unsigned *)0,
cfile);
577 }
while (token ==
NUMBER);
598 (
unsigned *)0,
cfile);
602 (
unsigned *)0,
cfile);
603 }
while (token ==
NUMBER ||
606 (
unsigned)(
s - buf),
s1);
610 printf (
"invalid value.\n");
623 printf (
"usage: unset <name>\n");
629 printf (
"no open object.\n");
635 printf (
"not connected.\n");
660 printf (
"usage: %s\n", val);
666 printf (
"not connected.\n");
672 printf (
"you must make a new object first!\n");
689 printf (
"can't open object: %s\n",
699 printf (
"usage: %s\n", val);
705 printf (
"not connected.\n");
711 printf (
"you haven't opened an object yet!\n");
723 printf (
"can't update object: %s\n",
733 printf (
"usage: remove\n");
739 printf (
"not connected.\n");
755 printf (
"can't destroy object: %s\n",
765 printf (
"usage: refresh\n");
771 printf (
"not connected.\n");
787 printf (
"can't refresh object: %s\n",
enum dhcp_token peek_token(const char **rval, unsigned *rlen, struct parse *cfile)
enum dhcp_token next_token(const char **rval, unsigned *rlen, struct parse *cfile)
isc_result_t end_parse(struct parse **cfile)
isc_result_t new_parse(struct parse **cfile, int file, char *inbuf, unsigned buflen, const char *name, int eolp)
void skip_to_semi(struct parse *cfile)
int parse_warn(struct parse *cfile, const char *fmt,...)
void convert_num(struct parse *cfile, unsigned char *buf, const char *str, int base, unsigned size)
int parse_base64(struct data_string *data, struct parse *cfile)
char * parse_host_name(struct parse *cfile)
void print_hex_or_string(unsigned len, const u_int8_t *data, unsigned limit, char *buf)
dhcpctl_status dhcpctl_wait_for_completion(dhcpctl_handle h, dhcpctl_status *s)
dhcpctl_status dhcpctl_object_refresh(dhcpctl_handle connection, dhcpctl_handle h)
dhcpctl_status dhcpctl_connect(dhcpctl_handle *connection, const char *server_name, int port, dhcpctl_handle authinfo)
dhcpctl_status dhcpctl_object_update(dhcpctl_handle connection, dhcpctl_handle h)
dhcpctl_status dhcpctl_set_int_value(dhcpctl_handle h, int value, const char *value_name)
dhcpctl_status dhcpctl_disconnect(dhcpctl_handle *connection, int force)
dhcpctl_status dhcpctl_object_remove(dhcpctl_handle connection, dhcpctl_handle h)
dhcpctl_status dhcpctl_set_null_value(dhcpctl_handle h, const char *value_name)
dhcpctl_status dhcpctl_initialize()
dhcpctl_status dhcpctl_set_string_value(dhcpctl_handle h, const char *value, const char *value_name)
dhcpctl_status dhcpctl_set_data_value(dhcpctl_handle h, const char *value, unsigned len, const char *value_name)
dhcpctl_status dhcpctl_open_object(dhcpctl_handle, dhcpctl_handle, int)
dhcpctl_status dhcpctl_new_authenticator(dhcpctl_handle *, const char *, const char *, const unsigned char *, unsigned)
dhcpctl_status dhcpctl_new_object(dhcpctl_handle *, dhcpctl_handle, const char *)
#define dhcpctl_null_handle
#define DHCPD_LOG_FACILITY
void dhcpv6(struct packet *)
#define ISC_R_NOTIMPLEMENTED
isc_result_t omapi_object_dereference(omapi_object_t **, const char *, int)
void * dmalloc(size_t, const char *, int)
void bootp(struct packet *packet)
void dhcp(struct packet *packet)
int main(int argc, char **argv)
int parse_allow_deny(struct option_cache **oc, struct parse *cfile, int flag)
int check_collection(struct packet *p, struct lease *l, struct collection *c)
void classify(struct packet *packet, struct class *class)
isc_result_t dhcp_set_control_state(control_object_state_t oldstate, control_object_state_t newstate)
isc_result_t find_class(struct class **c, const char *n, const char *f, int l)