Annotation of embedaddon/ntp/ntpq/libntpq.h, revision 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>