Annotation of embedaddon/ntp/sntp/networking.h, revision 1.1

1.1     ! misho       1: #ifndef NETWORKING_H
        !             2: #define NETWORKING_H
        !             3: 
        !             4: #include <arpa/inet.h>
        !             5: #include <netinet/in.h>
        !             6: 
        !             7: #include <strings.h>   
        !             8: #include <errno.h>
        !             9: #include <config.h>
        !            10: #include <netdb.h>
        !            11: #include <unistd.h>
        !            12: #include <sys/types.h>
        !            13: #include <sys/socket.h>
        !            14: 
        !            15: #include <ntp_rfc2553.h>
        !            16: #include <ntp_stdlib.h>
        !            17: #include <ntp_machine.h>
        !            18: #include <ntp_unixtime.h>
        !            19: #include <ntp_fp.h>
        !            20: #include <ntp.h>
        !            21: 
        !            22: #include "crypto.h"
        !            23: #include "log.h"
        !            24: #include "sntp-opts.h" 
        !            25: #include "utilities.h"
        !            26: 
        !            27: /* 
        !            28:  * for 4.2.6 only define AUTOKEY if OPENSSL, so that backported 4.2.7
        !            29:  * references to AUTOKEY work -- in 4.2.7 AUTOKEY is independent of OPENSSL
        !            30:  */
        !            31: #ifdef OPENSSL
        !            32: #define AUTOKEY
        !            33: #endif
        !            34: 
        !            35: /* FIXME To be replaced by the constants in ntp.h */
        !            36: #define SERVER_UNUSEABLE -1 /* Skip server */
        !            37: #define PACKET_UNUSEABLE -2 /* Discard packet and try to get a useable packet again if not tried too often */
        !            38: #define SERVER_AUTH_FAIL -3 /* Authentication failed, act upon settings */
        !            39: #define KOD_DEMOBILIZE -4   /* KOD packet with code DENY or RSTR, stop all communication and save KOD information */
        !            40: #define KOD_RATE -5        /* KOD packet with code RATE, reduce poll intervall */
        !            41: #define BROADCAST_FAILED -6
        !            42: 
        !            43: 
        !            44: /* From ntpdate.c */
        !            45: int is_reachable (struct addrinfo *dst);
        !            46: 
        !            47: int resolve_hosts (const char **hosts, int hostc, struct addrinfo ***res, int pref_family);
        !            48: 
        !            49: void create_socket (SOCKET *rsock, sockaddr_u *dest);
        !            50: 
        !            51: void sendpkt (SOCKET rsock, sockaddr_u *dest, struct pkt *pkt, int len);
        !            52: 
        !            53: int recvdata (SOCKET rsock, sockaddr_u *sender, char *rdata, int rdata_len);
        !            54: 
        !            55: int recvpkt (SOCKET rsock, struct pkt *rpkt, unsigned int rsize, struct pkt *spkt);
        !            56: 
        !            57: int recv_bcst_data (SOCKET rsock, char *rdata, int rdata_len, sockaddr_u *sas, sockaddr_u *ras);
        !            58: 
        !            59: int recv_bcst_pkt (SOCKET rsock, struct pkt *rpkt, unsigned int rsize, sockaddr_u *sas);
        !            60: 
        !            61: int process_pkt (struct pkt *rpkt, sockaddr_u *sas,    int pkt_len, int mode, struct pkt *spkt, char * func_name);
        !            62: 
        !            63: /* Shortened peer structure. Not absolutely necessary yet */
        !            64: struct speer {
        !            65:        struct speer *next;
        !            66:        sockaddr_u srcadr;
        !            67:        u_char version;
        !            68:        u_char hmode;
        !            69:        u_char hpoll;
        !            70:        u_char minpoll;
        !            71:        u_char maxpoll;
        !            72:        u_int flags;
        !            73:        u_char num_events;
        !            74:        u_char ttl;
        !            75:        u_char leap;
        !            76:        u_char pmode;
        !            77:        u_char stratum;
        !            78:        u_char ppoll;
        !            79:        u_char precision;       /* should be s_char */
        !            80:        u_int32 refid;
        !            81:        l_fp reftime;
        !            82:        keyid_t keyid;
        !            83: 
        !            84: #ifdef AUTOKEY
        !            85: #define clear_to_zero opcode
        !            86:        u_int32 opcode;         /* last request opcode */
        !            87:        associd_t assoc;        /* peer association ID */
        !            88:        u_int32 crypto;         /* peer status word */
        !            89:        EVP_PKEY *pkey;         /* public key */
        !            90:        const EVP_MD *digest;   /* message digest algorithm */
        !            91:        char    *subject;       /* certificate subject name */
        !            92:        char    *issuer;        /* certificate issuer name */
        !            93:        struct cert_info *xinfo; /* issuer certificate */
        !            94:        keyid_t pkeyid;         /* previous key ID */
        !            95:        keyid_t hcookie;        /* host cookie */
        !            96:        keyid_t pcookie;        /* peer cookie */
        !            97:        const struct pkey_info *ident_pkey; /* identity key */
        !            98:        BIGNUM  *iffval;        /* identity challenge (IFF, GQ, MV) */
        !            99:        const BIGNUM *grpkey;   /* identity challenge key (GQ) */
        !           100:        struct value cookval;   /* receive cookie values */
        !           101:        struct value recval;    /* receive autokey values */
        !           102:        struct exten *cmmd;     /* extension pointer */
        !           103:        u_long  refresh;        /* next refresh epoch */
        !           104: 
        !           105:        /*
        !           106:         * Variables used by authenticated server
        !           107:         */
        !           108:        keyid_t *keylist;       /* session key ID list */
        !           109:        int     keynumber;      /* current key number */
        !           110:        struct value encrypt;   /* send encrypt values */
        !           111:        struct value sndval;    /* send autokey values */
        !           112: #else  /* !AUTOKEY follows */
        !           113: #define clear_to_zero status
        !           114: #endif /* !AUTOKEY */
        !           115:        
        !           116:        l_fp    rec;            /* receive time stamp */
        !           117:        l_fp    xmt;            /* transmit time stamp */
        !           118:        l_fp    dst;            /* destination timestamp */
        !           119:        l_fp    aorg;           /* origin timestamp */
        !           120:        l_fp    borg;           /* alternate origin timestamp */
        !           121:        double  offset;         /* peer clock offset */
        !           122:        double  delay;          /* peer roundtrip delay */
        !           123: };
        !           124: 
        !           125: 
        !           126: 
        !           127: 
        !           128: 
        !           129: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>