Annotation of embedaddon/ntp/ntpq/libntpq.h, revision 1.1.1.1
1.1 misho 1: /*****************************************************************************
2: *
3: * libntpq.h
4: *
5: * This is the wrapper library for ntpq, the NTP query utility.
6: * This library reuses the sourcecode from ntpq and exports a number
7: * of useful functions in a library that can be linked against applications
8: * that need to query the status of a running ntpd. The whole
9: * communcation is based on mode 6 packets.
10: *
11: * This header file can be used in applications that want to link against
12: * libntpq.
13: *
14: ****************************************************************************/
15:
16: #include "ntp_net.h"
17:
18: /* general purpose buffer size */
19: #define NTPQ_BUFLEN 2048
20:
21: /* max. number of associations */
22: #ifndef MAXASSOC
23: #define MAXASSOC 1024
24: #endif
25:
26: /* general purpose max array size definition */
27: #ifndef MAXLIST
28: #define MAXLIST 64
29: #endif
30:
31: #ifndef LENHOSTNAME
32: #define LENHOSTNAME 256 /* host name is max. 256 characters long */
33: #endif
34:
35: /* NTP Status codes */
36: #define NTP_STATUS_INVALID 0
37: #define NTP_STATUS_FALSETICKER 1
38: #define NTP_STATUS_EXCESS 2
39: #define NTP_STATUS_OUTLYER 3
40: #define NTP_STATUS_CANDIDATE 4
41: #define NTP_STATUS_SELECTED 5
42: #define NTP_STATUS_SYSPEER 6
43: #define NTP_STATUS_PPSPEER 7
44:
45: /* NTP association type identifier */
46: #define NTP_CLOCKTYPE_UNKNOWN '-'
47: #define NTP_CLOCKTYPE_BROADCAST 'b'
48: #define NTP_CLOCKTYPE_LOCAL 'l'
49: #define NTP_CLOCKTYPE_UNICAST 'u'
50: #define NTP_CLOCKTYPE_MULTICAST 'm'
51:
52: /* Variable Sets */
53: #define PEERVARS CTL_OP_READVAR
54: #define CLOCKVARS CTL_OP_CLOCKVAR
55:
56: /* Variable list struct */
57: struct ntpq_varlist {
58: char *name;
59: char *value;
60: };
61:
62: /* global variables used for holding snapshots of data */
63: #ifndef LIBNTPQ_C
64: extern char peervars[];
65: extern int peervarlen;
66: extern int peervar_assoc;
67: extern char clockvars[];
68: extern int clockvarlen;
69: extern int clockvar_assoc;
70: extern char sysvars[];
71: extern int sysvarlen;
72: extern char *ntpq_resultbuffer[];
73: extern struct ntpq_varlist ntpq_varlist[MAXLIST];
74: #endif
75:
76:
77:
78: /*
79: * Prototypes of exported libary functions
80: */
81:
82: /* from libntpq.c */
83: extern int ntpq_openhost(char *);
84: extern int ntpq_closehost(void);
85: extern int ntpq_queryhost(unsigned short VARSET, associd_t association, char *resultbuf, int maxlen);
86: extern size_t ntpq_getvar(const char *resultbuf, size_t datalen,
87: const char *varname, char *varvalue,
88: size_t maxlen);
89: extern int ntpq_stripquotes ( char *resultbuf, char *srcbuf, int datalen, int maxlen );
90: extern int ntpq_queryhost_peervars(associd_t association, char *resultbuf, int maxlen);
91: extern int ntpq_get_peervar( const char *varname, char *varvalue, int maxlen);
92: extern size_t ntpq_read_sysvars(char *resultbuf, size_t maxsize);
93: extern int ntpq_get_sysvars( void );
94: extern int ntpq_read_associations ( unsigned short resultbuf[], int max_entries );
95: extern int ntpq_get_assocs ( void );
96: extern int ntpq_get_assoc_number ( associd_t associd );
97: extern int ntpq_get_assoc_peervars( associd_t associd );
98: extern int ntpq_get_assoc_clockvars( associd_t associd );
99: extern int ntpq_get_assoc_allvars( associd_t associd );
100: extern int ntpq_get_assoc_clocktype(int assoc_index);
101: extern int ntpq_read_assoc_peervars( associd_t associd, char *resultbuf, int maxsize );
102: extern int ntpq_read_assoc_clockvars( associd_t associd, char *resultbuf, int maxsize );
103:
104: /* in libntpq_subs.c */
105: extern int ntpq_dogetassoc(void);
106: extern char ntpq_decodeaddrtype(sockaddr_u *sock);
107: extern int ntpq_doquerylist(struct ntpq_varlist *, int , associd_t , int , u_short *, int *, const char **datap );
108:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>