resolve-host: allow specifying type as TYPEnn

This mirrors the behaviour of host and makes the conversion to and from
string symmetrical.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2015-02-01 23:12:27 -05:00
parent f3367a64ca
commit 869b3b67e3
2 changed files with 14 additions and 3 deletions

View file

@ -22,6 +22,7 @@
#include <sys/socket.h>
#include "dns-type.h"
#include "parse-util.h"
#include "string-util.h"
typedef const struct {
@ -41,10 +42,19 @@ int dns_type_from_string(const char *s) {
assert(s);
sc = lookup_dns_type(s, strlen(s));
if (!sc)
return _DNS_TYPE_INVALID;
if (sc)
return sc->id;
return sc->id;
s = startswith_no_case(s, "TYPE");
if (s) {
unsigned x;
if (safe_atou(s, &x) >= 0 &&
x <= UINT16_MAX)
return (int) x;
}
return _DNS_TYPE_INVALID;
}
bool dns_type_is_pseudo(uint16_t type) {

View file

@ -139,6 +139,7 @@ int dns_type_to_af(uint16_t t);
bool dns_class_is_pseudo(uint16_t class);
bool dns_class_is_valid_rr(uint16_t class);
/* TYPE?? follows http://tools.ietf.org/html/rfc3597#section-5 */
const char *dns_type_to_string(int type);
int dns_type_from_string(const char *s);