From: Vsevolod Stakhov Date: Fri, 26 Aug 2016 11:57:53 +0000 (+0100) Subject: [Minor] Add function to parse string to rdns request type X-Git-Tag: 1.4.0~555 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71fee73561c771b761aee52fe1e6be986c3defa2;p=thirdparty%2Frspamd.git [Minor] Add function to parse string to rdns request type --- diff --git a/contrib/librdns/rdns.h b/contrib/librdns/rdns.h index 82506d36ad..ff8eadcc64 100644 --- a/contrib/librdns/rdns.h +++ b/contrib/librdns/rdns.h @@ -352,6 +352,13 @@ const char *rdns_strerror (enum dns_rcode rcode); */ const char *rdns_strtype (enum rdns_request_type type); +/** + * Parse string and return request type + * @param str + * @return + */ +enum rdns_request_type rdns_type_fromstr (const char *str); + /** * Increase refcount for a request * @param req diff --git a/contrib/librdns/util.c b/contrib/librdns/util.c index 974c97554d..1eb5410c3a 100644 --- a/contrib/librdns/util.c +++ b/contrib/librdns/util.c @@ -247,6 +247,48 @@ rdns_strtype (enum rdns_request_type type) return dns_types[type]; } +enum rdns_request_type +rdns_type_fromstr (const char *str) +{ + if (str) { + if (strcmp (str, "a") == 0) { + return RDNS_REQUEST_A; + } + else if (strcmp (str, "ns") == 0) { + return RDNS_REQUEST_NS; + } + else if (strcmp (str, "soa") == 0) { + return RDNS_REQUEST_SOA; + } + else if (strcmp (str, "ptr") == 0) { + return RDNS_REQUEST_PTR; + } + else if (strcmp (str, "mx") == 0) { + return RDNS_REQUEST_MX; + } + else if (strcmp (str, "srv") == 0) { + return RDNS_REQUEST_SRV; + } + else if (strcmp (str, "txt") == 0) { + return RDNS_REQUEST_TXT; + } + else if (strcmp (str, "spf") == 0) { + return RDNS_REQUEST_SPF; + } + else if (strcmp (str, "aaaa") == 0) { + return RDNS_REQUEST_AAAA; + } + else if (strcmp (str, "tlsa") == 0) { + return RDNS_REQUEST_TLSA; + } + else if (strcmp (str, "any") == 0) { + return RDNS_REQUEST_ANY; + } + } + + return -1; +} + uint16_t rdns_permutor_generate_id (void) {