summaryrefslogtreecommitdiff
path: root/client/adh-main.c
diff options
context:
space:
mode:
authorian <ian>2000-03-02 01:34:04 +0000
committerian <ian>2000-03-02 01:34:04 +0000
commit2b1c6979bb36a0e3a5aaa7f18b0c72b528f886b9 (patch)
tree3d7739dffdfe918bc4b06737ba07c94d76143b7a /client/adh-main.c
parent8af5175d702f5d198d731adf760edf3bdcb60817 (diff)
+ * New adns_submit_reverse_any for eg RBL lookups, and corresponding
@@ -1,11 +1,14 @@ adns (0.7) BETA; urgency=medium + * New adns_submit_reverse_any for eg RBL lookups, and corresponding + option to adnshost. * README updated (from www home page). - * Better reporting of unexpected or weird replies from nameserver. + + * In answers, quote all except alphanums and - _ / + (and document). + * Don't reject specials in cnames even without adns_qf_quotefail_cname. * Better checking of long domain names and labels in queries. - * Unfortunately, answer->owner may be null on error. Documented. - * In answers, quote everything except alphanums and - _ / + and document - this behaviour. Make not setting adns_qf_quotefail_cname work. + * answer->owner may be null on error. Documented, and adnshost copes. + * Better reporting of unexpected or weird replies from nameserver. --
Diffstat (limited to 'client/adh-main.c')
-rw-r--r--client/adh-main.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/client/adh-main.c b/client/adh-main.c
index 81cff54..3fa1adb 100644
--- a/client/adh-main.c
+++ b/client/adh-main.c
@@ -62,7 +62,7 @@ char *xstrsave(const char *str) {
return p;
}
-void of_type(const struct optioninfo *oi, const char *arg) {
+void of_type(const struct optioninfo *oi, const char *arg, const char *arg2) {
static const struct typename {
adns_rrtype type;
const char *desc;
@@ -106,6 +106,7 @@ static void process_optarg(const char *arg,
const char *const **argv_p,
const char *value) {
const struct optioninfo *oip;
+ const char *arg2;
int invert;
if (arg[0] == '-' || arg[0] == '+') {
@@ -120,11 +121,19 @@ static void process_optarg(const char *arg,
if (oip->type == ot_funcarg) {
arg= argv_p ? *++(*argv_p) : value;
if (!arg) usageerr("option --%s requires a value argument",oip->lopt);
+ arg2= 0;
+ } else if (oip->type == ot_funcarg2) {
+ assert(argv_p);
+ arg= *++(*argv_p);
+ if (arg) arg2= *++(*argv_p);
+ if (!arg || !arg2)
+ usageerr("option --%s requires two more arguments", oip->lopt);
} else {
if (value) usageerr("option --%s does not take a value",oip->lopt);
arg= 0;
+ arg2= 0;
}
- opt_do(oip,arg,invert);
+ opt_do(oip,invert,arg,arg2);
} else if (arg[0] == '-' && arg[1] == 0) {
arg= argv_p ? *++(*argv_p) : value;
if (!arg) usageerr("option `-' must be followed by a domain");
@@ -141,11 +150,11 @@ static void process_optarg(const char *arg,
} else {
if (value) usageerr("two values for option -%s given !",oip->sopt);
}
- opt_do(oip,arg,invert);
+ opt_do(oip,invert,arg,0);
arg= "";
} else {
if (value) usageerr("option -%s does not take a value",oip->sopt);
- opt_do(oip,0,invert);
+ opt_do(oip,invert,0,0);
}
}
}