You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
asterisk/third-party/pjproject/patches/0012-Re-1945-misc-Don-t-tri...

60 lines
2.0 KiB

From 783de8956190c47a70ffefed56a1a2b21a62b235 Mon Sep 17 00:00:00 2001
From: Riza Sulistyo <riza@teluu.com>
Date: Mon, 23 Jan 2017 01:34:12 +0000
Subject: [PATCH 2/5] Re #1945 (misc): Don't trigger SRV complete callback when
there is a parse error.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5536 74dad513-b988-da41-8d7b-12977e46ad98
---
pjlib-util/src/pjlib-util/srv_resolver.c | 24 ++++++++++++++++++------
1 file changed, 18 insertions(+), 6 deletions(-)
diff --git a/pjlib-util/src/pjlib-util/srv_resolver.c b/pjlib-util/src/pjlib-util/srv_resolver.c
index 8a4a599..8a2f7e1 100644
--- a/pjlib-util/src/pjlib-util/srv_resolver.c
+++ b/pjlib-util/src/pjlib-util/srv_resolver.c
@@ -652,6 +652,7 @@ static void dns_callback(void *user_data,
} else if (query_job->dns_state == PJ_DNS_TYPE_A) {
pj_bool_t is_type_a, srv_completed;
+ pj_dns_addr_record rec;
/* Clear outstanding job */
if (common->type == PJ_DNS_TYPE_A) {
@@ -668,15 +669,26 @@ static void dns_callback(void *user_data,
is_type_a = (common->type == PJ_DNS_TYPE_A);
+ /* Parse response */
+ if (status==PJ_SUCCESS && pkt->hdr.anscount != 0) {
+ status = pj_dns_parse_addr_response(pkt, &rec);
+ if (status!=PJ_SUCCESS) {
+ char errmsg[PJ_ERR_MSG_SIZE];
+
+ PJ_LOG(4,(query_job->objname,
+ "DNS %s record parse error for '%.*s'."
+ " Err=%d (%s)",
+ (is_type_a ? "A" : "AAAA"),
+ (int)query_job->domain_part.slen,
+ query_job->domain_part.ptr,
+ status,
+ pj_strerror(status,errmsg,sizeof(errmsg)).ptr));
+ }
+ }
+
/* Check that we really have answer */
if (status==PJ_SUCCESS && pkt->hdr.anscount != 0) {
char addr[PJ_INET6_ADDRSTRLEN];
- pj_dns_addr_record rec;
-
- /* Parse response */
- status = pj_dns_parse_addr_response(pkt, &rec);
- if (status != PJ_SUCCESS)
- goto on_error;
pj_assert(rec.addr_count != 0);
--
2.7.4