X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~mdw/git/adns/blobdiff_plain/30eb1b62ec26c4cd58c29189011ef76c673b3d91..e3f575ffc7bcb15d23f6844c7cf5562d2b93ac40:/client/adh-main.c diff --git a/client/adh-main.c b/client/adh-main.c index 5a4235d..7c43d1e 100644 --- a/client/adh-main.c +++ b/client/adh-main.c @@ -26,28 +26,51 @@ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include -#include -#include +#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); +} + +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; } -static void of_type(const struct optinfo *oi, const char *arg) { abort(); } +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) {