PageRenderTime 30ms CodeModel.GetById 17ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/ntp/ntpdc/ntpdc.h

https://bitbucket.org/freebsd/freebsd-head/
C++ Header | 67 lines | 38 code | 8 blank | 21 comment | 0 complexity | 8f74fa0c3d1f5deb61f9bde919a5cf67 MD5 | raw file
 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 */
32typedef 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 */
43struct 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 */
54struct 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
62extern	int impl_ver;
63extern	int showhostnames;
64extern	int s_port;
65
66extern	int	doquery	P((int, int, int, int, int, char *, int *, int *, char **, int, int));
67extern	char *	nntohost	P((struct sockaddr_storage *));