+static int gen_pton(const char *text, int *af_io, union gen_addr *a) {
+ adns_rr_addr addr;
+ int err;
+
+ addr.len= sizeof(addr.addr);
+ err= adns_text2addr(text,0, adns_qf_addrlit_scope_forbid,
+ &addr.addr.sa, &addr.len);
+ if (err) { assert(err == EINVAL); return 0; }
+ if (*af_io == AF_UNSPEC) *af_io= addr.addr.sa.sa_family;
+ else if (*af_io != addr.addr.sa.sa_family) return 0;
+ adns__sockaddr_extract(&addr.addr.sa, a, 0);
+ return 1;
+}
+