git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6669 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2007-12-11 20:39:55 +00:00
parent 666cd17c89
commit 6419c9df8c
1 changed files with 6 additions and 3 deletions

View File

@ -55,6 +55,7 @@ struct query {
unsigned char dn[DNS_MAXDN]; unsigned char dn[DNS_MAXDN];
enum dns_type qtyp; /* type of the query */ enum dns_type qtyp; /* type of the query */
enum_record_t *results; enum_record_t *results;
int errs;
}; };
typedef struct query enum_query_t; typedef struct query enum_query_t;
@ -206,6 +207,7 @@ static void dnserror(enum_query_t * q, int errnum)
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "unable to lookup %s record for %s: %s\n", switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "unable to lookup %s record for %s: %s\n",
dns_typename(q->qtyp), dns_dntosp(q->dn), dns_strerror(errnum)); dns_typename(q->qtyp), dns_dntosp(q->dn), dns_strerror(errnum));
q->errs++;
} }
@ -501,7 +503,7 @@ static switch_status_t enum_lookup(char *root, char *in, enum_record_t ** result
j += i; j += i;
if (j > globals.timeout || query.results) { if (j > globals.timeout || query.results || query.errs) {
break; break;
} }
@ -509,9 +511,10 @@ static switch_status_t enum_lookup(char *root, char *in, enum_record_t ** result
tv.tv_usec = 0; tv.tv_usec = 0;
i = select((int) (fd + 1), &fds, 0, 0, &tv); i = select((int) (fd + 1), &fds, 0, 0, &tv);
now = time(NULL); now = time(NULL);
if (i > 0) if (i > 0) {
dns_ioevent(nctx, now); dns_ioevent(nctx, now);
} }
}
if (!query.results) { if (!query.results) {
sstatus = SWITCH_STATUS_FALSE; sstatus = SWITCH_STATUS_FALSE;