Annotation of embedaddon/trafshow/domain_resolver.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  *     Copyright (c) 2003 Rinet Corp., Novosibirsk, Russia
                      3:  *
                      4:  * Redistribution and use in source forms, with and without modification,
                      5:  * are permitted provided that this entire comment appears intact.
                      6:  *
                      7:  * THIS SOURCE CODE IS PROVIDED ``AS IS'' WITHOUT ANY WARRANTIES OF ANY KIND.
                      8:  */
                      9: 
                     10: #ifndef        _DOMAIN_RESOLVER_H_
                     11: #define        _DOMAIN_RESOLVER_H_
                     12: 
                     13: /*
                     14:  * Domain Name Service support.
                     15:  */
                     16: 
                     17: #include <sys/types.h>
                     18: #include <netinet/in.h>
                     19: 
                     20: #define        NAMESERVER_TIMEOUT      10      /* awaiting reply in seconds */
                     21: #define        NAMESERVER_RETRIES      3       /* max number of retries */
                     22: 
                     23: typedef        struct domain_data_ent {
                     24:        u_int ttl;              /* max seconds may be cached */
                     25:        u_int pref;             /* preference if any (for ex. in MX list) */
                     26:        char *name;             /* domain name */
                     27:        in_addr_t addr;         /* ip address */
                     28: 
                     29:        struct domain_data_ent *next;
                     30: } DOMAIN_DATA;
                     31: 
                     32: struct session_ent;
                     33: 
                     34: /*
                     35:  * [Re]initialize nameservers (probably using /etc/resolv.conf).
                     36:  * Public just for nameservers to be reconfigured by outside signals.
                     37:  */
                     38: int domain_resolver_init();
                     39: 
                     40: /*
                     41:  * Get IP address at the domain asynchronously.
                     42:  * If return -1 (an error) requester of this function will not be notified.
                     43:  */
                     44: int domain_resolve_addr(const char *domain,
                     45:                        struct session_ent *sd,
                     46:                        void (*notify)(struct session_ent *sd, DOMAIN_DATA *dd));
                     47: /*
                     48:  * Get MX list at the domain asynchronously.
                     49:  * If return -1 (an error) requester of this function will not be notified.
                     50:  */
                     51: int domain_resolve_mxlist(const char *domain,
                     52:                          struct session_ent *sd,
                     53:                          void (*notify)(struct session_ent *sd, DOMAIN_DATA *dd));
                     54: /*
                     55:  * Get domain name at the IP address asynchronously.
                     56:  * If return -1 (an error) requester of this function will not be notified.
                     57:  */
                     58: int domain_resolve_name(in_addr_t ipaddr, /* Network Byte Order */
                     59:                        struct session_ent *sd,
                     60:                        void (*notify)(struct session_ent *sd, DOMAIN_DATA *dd));
                     61: 
                     62: /*
                     63:  * Domain data container utilities.
                     64:  */
                     65: DOMAIN_DATA *domain_data_add(DOMAIN_DATA **list, const char *name, int pref);
                     66: DOMAIN_DATA *domain_data_find(DOMAIN_DATA **list, const char *name);
                     67: void domain_data_free(DOMAIN_DATA **list, const char *name); /* null to all */
                     68: 
                     69: #endif /* !_DOMAIN_RESOLVER_H_ */
                     70: 

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