*/
/*
* This file is part of adns, which is
- * Copyright (C) 1997-2000,2003,2006 Ian Jackson
+ * Copyright (C) 1997-2000,2003,2006,2014-2016 Ian Jackson
+ * Copyright (C) 2014 Mark Wooding
* Copyright (C) 1999-2000,2003,2006 Tony Finch
* Copyright (C) 1991 Massachusetts Institute of Technology
* (See the file INSTALL for full details.)
*
* 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, or (at your option)
+ * the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * along with this program; if not, write to the Free Software Foundation.
*/
#ifndef ADNS_INTERNAL_H_INCLUDED
/* Configuration and constants */
-#define MAXSERVERS 5
+#define MAXSERVERS 5 /* do not increase beyond no. of bits in `unsigned'! */
#define MAXSORTLIST 15
#define UDPMAXRETRIES 15
#define UDPRETRYMS 2000
* Previously, used alloc_interim, now use alloc_final.
*/
- adns_status (*convstring)(vbuf *vb, const void *data);
+ adns_status (*convstring)(vbuf *vb, adns_rrtype, const void *data);
/* Converts the RR data to a string representation in vbuf.
* vbuf will be appended to (it must have been initialised),
* and will not be null-terminated by convstring.
int configerrno;
struct query_queue udpw, tcpw, childw, output, intdone;
adns_query forallnext;
- int nextid, tcpsocket;
+ unsigned nextid;
+ int tcpsocket;
struct udpsocket { int af; int fd; } udpsockets[MAXUDP];
int nudpsockets;
vbuf tcpsend, tcprecv;
adns_sockaddr base, mask;
} sortlist[MAXSORTLIST];
char **searchlist;
+ unsigned config_report_unknown:1;
unsigned short rand48xsubi[3];
};
* external-faciing functions which call adns__returning should
* normally be avoided in internal code. */
+void adns__intdone_process(adns_state ads);
+
/* From reply.c: */
void adns__procdgram(adns_state ads, const byte *dgram, int len,
* now + ttl.
*/
-int vbuf__append_quoted1035(vbuf *vb, const byte *buf, int len);
-
bool adns__labels_equal(const byte *a, int al, const byte *b, int bl);
/* From event.c: */
(( ((sz)+sizeof(union maxalign)-1) / sizeof(union maxalign) ) \
* sizeof(union maxalign) )
-#define GETIL_B(cb) (((dgram)[(cb)++]) & 0x0ff)
+#define GETIL_B(cb) (((dgram)[(cb)++]) & 0x0ffu)
#define GET_B(cb,tv) ((tv)= GETIL_B((cb)))
#define GET_W(cb,tv) ((tv)=0,(tv)|=(GETIL_B((cb))<<8), (tv)|=GETIL_B(cb), (tv))
#define GET_L(cb,tv) ( (tv)=0, \