* - simple test program, not part of the library
*/
/*
- * This file is
- * Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk>
- *
- * It is part of adns, which is
- * Copyright (C) 1997-2000 Ian Jackson <ian@davenant.greenend.org.uk>
- * Copyright (C) 1999 Tony Finch <dot@dotat.at>
+ * This file is part of adns, which is
+ * Copyright (C) 1997-2000,2003,2006 Ian Jackson
+ * 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.
*/
#include <stdio.h>
#include <string.h>
#include <errno.h>
+#define ADNS_FEATURE_MANYAF
#include "config.h"
#include "adns.h"
-#ifndef OUTPUTSTREAM
-# define OUTPUTSTREAM stdout
+#ifdef ADNS_REGRESS_TEST
+# include "hredirect.h"
#endif
struct myctx {
static void failure_errno(const char *what, int errnoval) NONRETURNING;
static void failure_errno(const char *what, int errnoval) {
- fprintf(stderr,"adns failure: %s: errno=%d\n",what,errnoval);
+ switch (errnoval) {
+#define CE(e) \
+ case e: fprintf(stderr,"adns failure: %s: errno=" #e "\n",what); break
+ CE(EINVAL);
+ CE(EINTR);
+ CE(ESRCH);
+ CE(EAGAIN);
+ CE(ENOSYS);
+ CE(ERANGE);
+#undef CE
+ default: fprintf(stderr,"adns failure: %s: errno=%d\n",what,errnoval); break;
+ }
quitnow(2);
}
static void dumptype(adns_status ri, const char *rrtn, const char *fmtn) {
fprintf(stdout, "%s(%s)%s%s",
- ri ? "?" : rrtn, ri ? "?" : fmtn ? fmtn : "-",
+ (!ri && rrtn) ? rrtn : "?", ri ? "?" : fmtn ? fmtn : "-",
ri ? " " : "", ri ? adns_strerror(ri) : "");
}
mc->doneyet= 0;
mc->fdom= fdomlist[qi];
- fprintf(stdout,"%s flags %d type %d",domain,qflags,types[ti]);
+ fprintf(stdout,"%s flags %d type %d",
+ domain,qflags,types[ti]&adns_rrt_reprmask);
r= adns_submit(ads,domain,types[ti],qflags,mc,&mc->qu);
if (r == ENOSYS) {
fprintf(stdout," not implemented\n");