From 963fee185695a8c9593d9ee1fcf3b2d67271f877 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Mon, 12 Jun 2000 23:53:34 +0000 Subject: [PATCH] added exception handler for UDP protocol errors --- src/ca/udpiiu.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/ca/udpiiu.cpp b/src/ca/udpiiu.cpp index 2924f359b..b7362824f 100644 --- a/src/ca/udpiiu.cpp +++ b/src/ca/udpiiu.cpp @@ -806,6 +806,31 @@ LOCAL void not_here_resp_action (udpiiu * /* piiu */, caHdr * /* pMsg */, const return; } +/* + * udp_exception_resp_action () + */ +LOCAL void udp_exception_resp_action ( udpiiu *piiu, + caHdr *pMsg, const struct sockaddr_in *pnet_addr ) +{ + caHdr *pReqMsg = pMsg + 1; + char name[64]; + + ipAddrToA ( pnet_addr, name, sizeof ( name ) ); + + if ( pMsg->m_postsize > sizeof (caHdr) ){ + errlogPrintf ( "error condition \"%s\" detected by %s with context \"%s\"\n", + ca_message ( ntohl ( pMsg->m_available ) ), + name, reinterpret_cast ( pReqMsg + 1 ) ); + } + else{ + errlogPrintf ( "error condition \"%s\" detected by %s\n", + ca_message ( ntohl ( pMsg->m_available ) ), name ); + } + + return; +} + + /* * UDP protocol jump table */ @@ -822,7 +847,7 @@ LOCAL const pProtoStubUDP udpJumpTableCAC[] = bad_udp_resp_action, bad_udp_resp_action, bad_udp_resp_action, - bad_udp_resp_action, + udp_exception_resp_action, bad_udp_resp_action, beacon_action, not_here_resp_action,