]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Add function to parse string to rdns request type
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 26 Aug 2016 11:57:53 +0000 (12:57 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Fri, 26 Aug 2016 13:37:21 +0000 (14:37 +0100)
contrib/librdns/rdns.h
contrib/librdns/util.c

index 82506d36ad65cbb9c5e26b4399dd75debf0ed8f5..ff8eadcc6467ba0c46b07d307efc4c5bd6583a45 100644 (file)
@@ -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
index 974c97554d959fbcab492bbd8eada10a93ce0a56..1eb5410c3a0de6b70c59bb4284e8b8805bda4d9a 100644 (file)
@@ -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)
 {