* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
+#include "adnshost.h"
void sysfail(const char *what, int errnoval) {
fprintf(stderr,"adnshost failed: %s: %s\n",what,strerror(errnoval));
exit(10);
}
+void usageerr(const char *fmt, ...) {
+ va_list al;
+ fputs("adnshost usage error: ",stderr);
+ va_start(al,fmt);
+ vfprintf(stderr,fmt,al);
+ va_end(al);
+ putc('\n',stderr);
+ exit(11);
+}
+
static void domain_do_arg(const char *domain) {
if (ov_pipe) usageerr("-f/--pipe not consistent with domains on command line");
- domain_do(arg);
+ domain_do(domain);
}
-static void of_type(const struct optinfo *oi, const char *arg) { abort(); }
+void *xmalloc(size_t sz) {
+ void *p;
+
+ p= malloc(sz); if (!p) sysfail("malloc",sz);
+ return p;
+}
+
+char *xstrsave(const char *str) {
+ char *p;
+
+ p= xmalloc(strlen(str)+1);
+ strcpy(p,str);
+ return p;
+}
+
+void of_type(const struct optioninfo *oi, const char *arg) { abort(); }
int main(int argc, const char *const *argv) {
const char *arg;
- const
+ const struct optioninfo *oip;
- while (arg= *++argv) {
- if (arg[0] != '-') {
+ while ((arg= *++argv)) {
+ if (arg[0] == '-') {
if (arg[1] == '-') {
oip= opt_findl(arg+2);
if (oip->type == ot_funcarg) {
domain_do_arg(arg);
}
}
-
- if (ov_pipe) {
-
- if (ov_pipe) usageerr("-f/--pipe not
-
- if (oip && ads) usageerr("global option %s must precede all query domains",arg);
- if (!oip) oip= opt_findl(arg+2,perquery_options);
- if (!oip) usageerr("unknown option %s",arg);
- }
-
- if (!oip &&
- if (!oip) {
- }
- while (argv[1] && argv[1][0] == '-') {
- if (argv[1][1] == '-') {
- oip= findlong(
- }
- of_help(0,0);
+ if (!ov_pipe && !ads) usageerr("no domains given, and -f/--pipe not used; try --help");
abort();
}