1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- /**************************************
- * AUTHOR: Federico Tomassini *
- * Copyright (C) Federico Tomassini *
- * Contact effetom@gmail.com *
- ***********************************************
- ******* BEGIN 3/2006 ********
- *************************************************************************
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- ************************************************************************/
- #ifndef ANDNS_H
- #define ANDNS_H
-
- #include <stdio.h>
- #include <sys/socket.h>
- #include <netdb.h>
- #include "dnslib.h"
- #include "andns_lib.h"
- #include "inet.h"
-
- #define ANDNS_TIMEOUT 15
-
- #define MAXNSSERVERS 3
- #define DNS_REPLY_TIMEOUT 10 /* seconds */
-
- #define DNS_PORT 53
- #define DNS_PORT_STR "53"
-
- /* PREFIX TO QUERY THE INET REALM */
- #define INET_REALM_PREFIX ".INT"
- #define NTK_REALM_PREFIX ".NTK"
- #define PTR_INET_REALM_PREFIX "INT."
- #define PTR_NTK_REALM_PREFIX "NTK."
- #define REALM_PREFIX_LEN 4
-
- #define DNS_PROTO 0
- #define ANDNS_PROTO 1
-
- #define NK_DNS 0
- #define NK_NTK 1
- #define NK_INET 2
- #define GET_NK_BIT(msg) (*((msg+3))>>4)&0x03
-
- #define RCODE_NOERR 0
- #define RCODE_EINTRPRT 1
- #define RCODE_ESRVFAIL 2
- #define RCODE_ENSDMN 3
- #define RCODE_ENIMPL 4
- #define RCODE_ERFSD 5
-
-
-
- /* FUNCTIONS */
-
- int store_ns(char *ns);
- int collect_resolv_conf(char *resolve_conf);
- void reset_andns_ns(void);
- int andns_init(int restricted, char *resolv_conf, int family);
- void andns_close(void);
- int ns_general_send(char *msg, int msglen, char *answer, int anslen);
- void dpktacpy(dns_pkt * dst, dns_pkt * src, const char *prefix);
- dns_pkt *dpktcpy(dns_pkt * src, const char *prefix);
- char *rm_realm_prefix(char *from, char *dst, int type);
- dns_pkt *dpktcpy_rm_pref(dns_pkt * src);
- int andns_gethostbyname(char *hname, inet_prefix * ip);
- int andns_realm(dns_pkt_qst * dpq, int *prefixed);
- int is_prefixed(dns_pkt * dp);
- int dns_forward(dns_pkt * dp, char *msg, int msglen, char *answer);
- int inet_rslv(dns_pkt * dp, char *msg, int msglen, char *answer);
- int nk_rslv(andns_pkt * ap, char *msg, int msglen, char *answer);
- int qtype_a_to_d(andns_pkt * ap);
- int apqsttodpqst(andns_pkt * ap, dns_pkt ** dpsrc);
- int dpanswtoapansw(dns_pkt * dp, andns_pkt * ap);
- int nk_forward(andns_pkt * ap, char *msg, int msglen, char *answer);
- char *andns_rslv(char *msg, int msglen, char *answer, int *answ_len);
-
- #endif /* ANDNS_H */
|