1: /*
2: * ntpdc.h - definitions of interest to ntpdc
3: */
4: #include "ntp_fp.h"
5: #include "ntp.h"
6: #include "ntp_request.h"
7: #include "ntp_string.h"
8: #include "ntp_malloc.h"
9:
10: /*
11: * Maximum number of arguments
12: */
13: #define MAXARGS 4
14: #define MOREARGS 10
15:
16: /*
17: * Flags for forming descriptors.
18: */
19: #define OPT 0x80 /* this argument is optional, or'd with type */
20:
21: #define NO 0x0
22: #define NTP_STR 0x1 /* string argument */
23: #define NTP_UINT 0x2 /* unsigned integer */
24: #define NTP_INT 0x3 /* signed integer */
25: #define NTP_ADD 0x4 /* IP network address */
26: #define IP_VERSION 0x5 /* IP version */
27:
28: /*
29: * Arguments are returned in a struct - no
30: * union space saving is attempted.
31: */
32: typedef struct {
33: u_char type;
34: char *string;
35: long ival;
36: u_long uval;
37: sockaddr_u netnum;
38: } arg_v;
39:
40: /*
41: * Structure for passing parsed command line
42: */
43: struct parse {
44: char *keyword;
45: arg_v argval[MAXARGS + MOREARGS];
46: int nargs;
47: };
48:
49: /*
50: * ntpdc includes a command parser which could charitably be called
51: * crude. The following structure is used to define the command
52: * syntax.
53: */
54: struct xcmd {
55: const char *keyword; /* command key word */
56: void (*handler) (struct parse *, FILE *); /* command handler */
57: u_char arg[MAXARGS]; /* descriptors for arguments */
58: const char *desc[MAXARGS]; /* descriptions for arguments */
59: const char *comment;
60: };
61:
62: extern int impl_ver;
63: extern int showhostnames;
64: extern int s_port;
65:
66: extern int doquery (int, int, int, int, int, char *, int *, int *, char **, int, int);
67: extern char * nntohost (sockaddr_u *);
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>