Upstream renamed parse_extract_edns to
parse_extract_edns_from_response_msg and parse_edns_from_pkt to
parse_edns_from_query_pkt in the upcomming libunbound 1.15.0
update. Both funktions work equally well for us but it would look weird
to use the "from_response_msg" function on the query so switch to
parse_edns_from_pkt in preparation for the libunbound update.

OK?

diff --git frontend.c frontend.c
index 1b6333da22c..3a2ee87dea8 100644
--- frontend.c
+++ frontend.c
@@ -734,6 +734,7 @@ void
 handle_query(struct pending_query *pq)
 {
        struct query_imsg        query_imsg;
+       struct query_info        skip;
        struct bl_node           find;
        int                      rcode;
        char                    *str;
@@ -773,7 +774,12 @@ handle_query(struct pending_query *pq)
                goto send_answer;
        }
 
-       rcode = parse_extract_edns(pq->qmsg, &pq->edns, pq->region);
+       sldns_buffer_rewind(pq->qbuf);
+       if (!query_info_parse(&skip, pq->qbuf)) {
+               error_answer(pq, LDNS_RCODE_SERVFAIL);
+               goto send_answer;
+       }
+       rcode = parse_edns_from_pkt(pq->qbuf, &pq->edns, pq->region);
        if (rcode != LDNS_RCODE_NOERROR) {
                error_answer(pq, rcode);
                goto send_answer;
@@ -999,6 +1005,7 @@ void
 resend_dns64_query(struct pending_query *opq) {
        struct pending_query    *pq;
        struct query_imsg        query_imsg;
+       struct query_info        skip;
        int                      rcode;
        char                     dname[LDNS_MAX_DOMAINLEN + 1];
 
@@ -1059,7 +1066,12 @@ resend_dns64_query(struct pending_query *opq) {
                goto drop;
        }
 
-       rcode = parse_extract_edns(pq->qmsg, &pq->edns, pq->region);
+       sldns_buffer_rewind(pq->qbuf);
+       if (!query_info_parse(&skip, pq->qbuf)) {
+               error_answer(pq, LDNS_RCODE_SERVFAIL);
+               goto send_answer;
+       }
+       rcode = parse_edns_from_pkt(pq->qbuf, &pq->edns, pq->region);
        if (rcode != LDNS_RCODE_NOERROR) {
                error_answer(pq, rcode);
                goto send_answer;

-- 
I'm not entirely sure you are real.

Reply via email to