summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Pion <pion@afnic.fr>2022-10-04 19:36:39 +0200
committerAlexandre Pion <pion@afnic.fr>2022-10-12 14:32:17 +0200
commita8ccdb73a61d0b64fb3f715985d4932f68754ad2 (patch)
tree8a18fe5af8793330ac7036960ee62d5ee6649b4d
parent56ed5438ebe01be1b83b15f7c79177e8015580e0 (diff)
Don't overwrite already defined EDNS options
-rw-r--r--src/LDNS.xs6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/LDNS.xs b/src/LDNS.xs
index 0a05899..41606b0 100644
--- a/src/LDNS.xs
+++ b/src/LDNS.xs
@@ -1421,7 +1421,11 @@ packet_nsid(obj)
ldns_edns_option_list* edns_list;
ldns_edns_option* edns_opt;
- edns_list = ldns_edns_option_list_new();
+ edns_list = ldns_pkt_edns_get_option_list(obj);
+
+ if ( !edns_list )
+ edns_list = ldns_edns_option_list_new();
+
edns_opt = ldns_edns_new_from_data(LDNS_EDNS_NSID, 0, NULL);
if ( edns_list == NULL || edns_opt == NULL )
croak("Could not allocate EDNS option");