Mercurial > hg > freeDiameter
diff extensions/dbg_msg_dumps/dbg_msg_dumps.c @ 1301:50fb308e84f7
Added a new hook to allow extensions act on the error messages being returned in case of parsing error (e.g. if some mandatory AVP are expected in error messages)
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Sun, 30 Aug 2015 01:58:21 +0800 |
parents | 035f489b845b |
children | 84a3c9c4b834 |
line wrap: on
line diff
--- a/extensions/dbg_msg_dumps/dbg_msg_dumps.c Sun Aug 30 01:11:55 2015 +0800 +++ b/extensions/dbg_msg_dumps/dbg_msg_dumps.c Sun Aug 30 01:58:21 2015 +0800 @@ -104,6 +104,10 @@ LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf); } break; + case HOOK_MESSAGE_PARSING_ERROR2: + LOG_E("PARSING ERROR, returning:"); + LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL); + break; case HOOK_MESSAGE_ROUTING_ERROR: LOG_E("ROUTING ERROR '%s' for: ", (char *)other); LOG_SPLIT(FD_LOG_ERROR, " ", buf, NULL); @@ -197,6 +201,9 @@ LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf); } break; + case HOOK_MESSAGE_PARSING_ERROR2: + LOG_E("PARSING ERROR, returning: %s", buf); + break; case HOOK_MESSAGE_ROUTING_ERROR: LOG_E("ROUTING ERROR '%s' for: %s", (char *)other, buf); break; @@ -279,6 +286,9 @@ LOG_E("PARSING ERROR: %zdB msg from '%s': %s", rcv_data->length, peer_name, buf); } break; + case HOOK_MESSAGE_PARSING_ERROR2: + LOG_E("PARSING ERROR, returning: %s", buf); + break; case HOOK_MESSAGE_ROUTING_ERROR: LOG_E("ROUTING ERROR '%s' for: %s", (char *)other, buf); break; @@ -350,7 +360,7 @@ return EINVAL; }); } - mask_errors = HOOK_MASK( HOOK_MESSAGE_FAILOVER, HOOK_MESSAGE_PARSING_ERROR, HOOK_MESSAGE_ROUTING_ERROR, HOOK_MESSAGE_DROPPED ); + mask_errors = HOOK_MASK( HOOK_MESSAGE_FAILOVER, HOOK_MESSAGE_PARSING_ERROR, HOOK_MESSAGE_PARSING_ERROR2, HOOK_MESSAGE_ROUTING_ERROR, HOOK_MESSAGE_DROPPED ); mask_sndrcv = HOOK_MASK( HOOK_MESSAGE_RECEIVED, HOOK_MESSAGE_SENT ); /* We don t access SENDING hook here */ mask_routing= HOOK_MASK( HOOK_MESSAGE_LOCAL, HOOK_MESSAGE_ROUTING_FORWARD, HOOK_MESSAGE_ROUTING_LOCAL ); mask_peers = HOOK_MASK( HOOK_PEER_CONNECT_FAILED, HOOK_PEER_CONNECT_SUCCESS );