commit 33f69f8: [Minor] Add support of CNAME requests to the lua resolver

Vsevolod Stakhov vsevolod at rspamd.com
Thu Aug 11 20:42:06 UTC 2022


Author: Vsevolod Stakhov
Date: 2022-08-11 21:36:50 +0100
URL: https://github.com/rspamd/rspamd/commit/33f69f85ea3c7f27ac3a98a5eaf8ed0d232110fd (HEAD -> master)

[Minor] Add support of CNAME requests to the lua resolver

---
 contrib/librdns/util.c     | 57 +++++++++++++++++++++++++---------------------
 src/lua/lua_dns_resolver.c |  5 ++++
 2 files changed, 36 insertions(+), 26 deletions(-)

diff --git a/contrib/librdns/util.c b/contrib/librdns/util.c
index b20b327bc..0172ce00e 100644
--- a/contrib/librdns/util.c
+++ b/contrib/librdns/util.c
@@ -306,6 +306,9 @@ rdns_type_fromstr (const char *str)
 		else if (strcmp (str, "tlsa") == 0) {
 			return RDNS_REQUEST_TLSA;
 		}
+		else if (strcmp (str, "cname") == 0) {
+			return RDNS_REQUEST_CNAME;
+		}
 		else if (strcmp (str, "any") == 0) {
 			return RDNS_REQUEST_ANY;
 		}
@@ -318,32 +321,34 @@ const char *
 rdns_str_from_type (enum rdns_request_type rcode)
 {
 	switch (rcode) {
-		case RDNS_REQUEST_INVALID:
-			return "(invalid)";
-		case RDNS_REQUEST_A:
-			return "a";
-		case RDNS_REQUEST_NS:
-			return "ns";
-		case RDNS_REQUEST_SOA:
-			return "soa";
-		case RDNS_REQUEST_PTR:
-			return "ptr";
-		case RDNS_REQUEST_MX:
-			return "mx";
-		case RDNS_REQUEST_TXT:
-			return "txt";
-		case RDNS_REQUEST_SRV:
-			return "srv";
-		case RDNS_REQUEST_SPF:
-			return "spf";
-		case RDNS_REQUEST_AAAA:
-			return "aaaa";
-		case RDNS_REQUEST_TLSA:
-			return "tlsa";
-		case RDNS_REQUEST_ANY:
-			return "any";
-		default:
-			return "(unknown)";
+	case RDNS_REQUEST_INVALID:
+		return "(invalid)";
+	case RDNS_REQUEST_A:
+		return "a";
+	case RDNS_REQUEST_NS:
+		return "ns";
+	case RDNS_REQUEST_SOA:
+		return "soa";
+	case RDNS_REQUEST_PTR:
+		return "ptr";
+	case RDNS_REQUEST_MX:
+		return "mx";
+	case RDNS_REQUEST_TXT:
+		return "txt";
+	case RDNS_REQUEST_SRV:
+		return "srv";
+	case RDNS_REQUEST_SPF:
+		return "spf";
+	case RDNS_REQUEST_AAAA:
+		return "aaaa";
+	case RDNS_REQUEST_TLSA:
+		return "tlsa";
+	case RDNS_REQUEST_CNAME:
+		return "cname";
+	case RDNS_REQUEST_ANY:
+		return "any";
+	default:
+		return "(unknown)";
 	}
 
 }
diff --git a/src/lua/lua_dns_resolver.c b/src/lua/lua_dns_resolver.c
index 9a9201f0e..5bee37627 100644
--- a/src/lua/lua_dns_resolver.c
+++ b/src/lua/lua_dns_resolver.c
@@ -278,6 +278,10 @@ lua_push_dns_reply (lua_State *L, const struct rdns_reply *reply)
 				lua_pushinteger (L, elt->content.soa.minimum);
 				lua_settable (L, -3);
 
+				lua_rawseti (L, -2, ++i);
+				break;
+			case RDNS_REQUEST_CNAME:
+				lua_pushstring (L, elt->content.cname.name);
 				lua_rawseti (L, -2, ++i);
 				break;
 			default:
@@ -743,6 +747,7 @@ luaopen_dns_resolver (lua_State * L)
 		LUA_ENUM (L, DNS_SPF, RDNS_REQUEST_SPF);
 		LUA_ENUM (L, DNS_AAAA, RDNS_REQUEST_AAAA);
 		LUA_ENUM (L, DNS_SOA, RDNS_REQUEST_SOA);
+		LUA_ENUM (L, DNS_CNAME, RDNS_REQUEST_CNAME);
 	}
 
 	lua_pop (L, 1);


More information about the Commits mailing list