mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-13 07:45:26 +00:00
Thu Feb 12 14:20:26 CST 2009 Pekka Pessi <first.last@nokia.com>
* sres.c: improve logging upon errors git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11950 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
816f984722
commit
93e3ef0f64
@ -1 +1 @@
|
||||
Thu Feb 12 15:14:36 CST 2009
|
||||
Thu Feb 12 15:15:10 CST 2009
|
||||
|
@ -71,7 +71,10 @@ enum sres_status {
|
||||
|
||||
/* Errors generated by sresolv */
|
||||
SRES_TIMEOUT_ERR = 32, /**< Timeout occurred */
|
||||
SRES_RECORD_ERR = 33 /**< Name has no given record type */
|
||||
SRES_RECORD_ERR = 33, /**< Name has no given record type */
|
||||
SRES_INTERNAL_ERR = 34, /**< Internal error */
|
||||
|
||||
_SRES_LAST_ERR
|
||||
};
|
||||
|
||||
/** Start of a zone of authority record (@RFC1035). */
|
||||
@ -248,6 +251,9 @@ enum sres_qtypes {
|
||||
/** Convert type to its name. */
|
||||
SRESPUBFUN char const *sres_record_type(int type, char buffer[8]);
|
||||
|
||||
/** Convert status to its name. */
|
||||
SRESPUBFUN char const *sres_record_status(int status, char buffer[8]);
|
||||
|
||||
/** Compare two records. */
|
||||
SRESPUBFUN int sres_record_compare(sres_record_t const *,
|
||||
sres_record_t const *);
|
||||
|
@ -1538,6 +1538,30 @@ char const *sres_record_type(int type, char buffer[8])
|
||||
}
|
||||
}
|
||||
|
||||
/** Convert record status to its name */
|
||||
char const *sres_record_status(int status, char buffer[8])
|
||||
{
|
||||
switch (status) {
|
||||
case SRES_OK: return "OK";
|
||||
case SRES_FORMAT_ERR: return "FORMAT_ERR";
|
||||
case SRES_SERVER_ERR: return "SERVER_ERR";
|
||||
case SRES_NAME_ERR: return "NAME_ERR";
|
||||
case SRES_UNIMPL_ERR: return "UNIMPL_ERR";
|
||||
case SRES_AUTH_ERR: return "AUTH_ERR";
|
||||
|
||||
/* Errors generated by sresolv */
|
||||
case SRES_TIMEOUT_ERR: return "TIMEOUT_ERR";
|
||||
case SRES_RECORD_ERR: return "RECORD_ERR";
|
||||
case SRES_INTERNAL_ERR: return "INTERNAL_ERR";
|
||||
|
||||
default:
|
||||
if (buffer)
|
||||
sprintf(buffer, "%u?", status & 255);
|
||||
return buffer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Convert class to its name. */
|
||||
static char const *
|
||||
sres_record_class(int rclass, char buffer[8])
|
||||
@ -2899,6 +2923,9 @@ sres_query_report_error(sres_query_t *q,
|
||||
int i;
|
||||
|
||||
if (q->q_callback) {
|
||||
char sbuf[8], tbuf[8];
|
||||
int status = 0;
|
||||
|
||||
for (i = 0; i <= SRES_MAX_SEARCH; i++) {
|
||||
if (q->q_subqueries[i]) /* a pending query... */
|
||||
return;
|
||||
@ -2910,8 +2937,16 @@ sres_query_report_error(sres_query_t *q,
|
||||
}
|
||||
}
|
||||
|
||||
SU_DEBUG_5(("sres(q=%p): reporting errors for %u %s\n",
|
||||
(void *)q, q->q_type, q->q_name));
|
||||
for (i = 0; answers[i]; i++) {
|
||||
status = answers[i]->sr_record->r_status;
|
||||
if (status)
|
||||
break;
|
||||
}
|
||||
|
||||
SU_DEBUG_5(("sres(q=%p): reporting error %s for %s %s\n",
|
||||
(void *)q,
|
||||
sres_record_status(status, sbuf),
|
||||
sres_record_type(q->q_type, tbuf), q->q_name));
|
||||
|
||||
sres_remove_query(q->q_res, q, 1);
|
||||
(q->q_callback)(q->q_context, q, answers);
|
||||
@ -3567,7 +3602,9 @@ sres_decode_msg(sres_resolver_t *res,
|
||||
}
|
||||
|
||||
if (i < total) {
|
||||
SU_DEBUG_5(("sres_decode_msg: %s\n", "less records than promised"));
|
||||
SU_DEBUG_5(("sres_decode_msg: got %u but expected "
|
||||
"errors=%u an=%u ar=%u ns=%u\n", i, errorcount,
|
||||
m->m_ancount, m->m_arcount, m->m_nscount));
|
||||
for (i = 0; i < total; i++)
|
||||
sres_cache_free_record(res->res_cache, answers[i]);
|
||||
su_free(chome, answers);
|
||||
|
Loading…
x
Reference in New Issue
Block a user