]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/ntp/ntpdc/ntpdc.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / ntp / ntpdc / ntpdc.h
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         struct sockaddr_storage 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) P((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 P((int, int, int, int, int, char *, int *, int *, char **, int, int));
67 extern  char *  nntohost        P((struct sockaddr_storage *));