Changeset 1078:74bba7975864 in freeDiameter for libfdcore
- Timestamp:
- Apr 30, 2013, 4:37:57 PM (11 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- libfdcore
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdcore/cnxctx.c
r1029 r1078 644 644 } 645 645 646 CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &conn->cc_tls_para.recvon), /* continue */ );647 648 646 return ret; 649 647 } … … 701 699 ssize_t ret = 0; 702 700 size_t received = 0; 703 struct timespec recv_on;704 701 705 702 do { … … 738 735 received += ret; 739 736 } 740 741 /* Piggy-tail the timestamp of reception */742 CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &recv_on), /* continue */ );743 memcpy(newmsg + length, &recv_on, sizeof(struct timespec));744 737 745 738 /* We have received a complete message, pass it to the daemon */ … … 930 923 int fd_tls_rcvthr_core(struct cnxctx * conn, gnutls_session_t session) 931 924 { 932 struct timespec * rcv_on = &conn->cc_tls_para.recvon;933 934 925 #ifndef DISABLE_SCTP 935 926 void * ptr = gnutls_transport_get_ptr(session); 936 927 if (ptr != conn) { 937 928 struct sctps_ctx * ctx = (struct sctps_ctx *) ptr; 938 rcv_on = &ctx->recvon;939 929 } 940 930 #endif /* DISABLE_SCTP */ … … 984 974 received += ret; 985 975 } 986 987 /* The timestamp of the last TLS chunk received for this rebuilt message lives close to the session pointer, we piggyback it */988 memcpy(newmsg + length, rcv_on, sizeof(struct timespec));989 976 990 977 /* We have received a complete message, pass it to the daemon */ -
libfdcore/core.c
r1034 r1078 209 209 CHECK_FCT( fd_conf_init() ); 210 210 211 /* Initialize the message logging facility */212 fd_msg_log_init(fd_g_config->cnf_dict);213 214 211 /* Add definitions of the base protocol */ 215 212 CHECK_FCT( fd_dict_base_protocol(fd_g_config->cnf_dict) ); -
libfdcore/messages.c
r1014 r1078 415 415 416 416 /* Just discard */ 417 fd_msg_log( FD_MSG_LOG_DROPPED, m, "Answer not compliant to dictionary's ABNF (%s)", pei.pei_errcode );417 //fd_msg_log( FD_MSG_LOG_DROPPED, m, "Answer not compliant to dictionary's ABNF (%s)", pei.pei_errcode ); 418 418 CHECK_FCT( fd_msg_free( m ) ); 419 419 *msg = NULL; -
libfdcore/p_ce.c
r1027 r1078 650 650 *recv_cnx = NULL; 651 651 if (*cer) { 652 fd_msg_log(FD_MSG_LOG_DROPPED, *cer, "An error occurred while rejecting a CER.");652 //fd_msg_log(FD_MSG_LOG_DROPPED, *cer, "An error occurred while rejecting a CER."); 653 653 fd_msg_free(*cer); 654 654 *cer = NULL; … … 720 720 if (req || ((st = fd_peer_getstate(peer)) != STATE_WAITCEA)) { 721 721 if (*msg) { 722 fd_msg_log( FD_MSG_LOG_DROPPED, *msg, "Received CER/CEA while in '%s' state.", STATE_STR(st));722 //fd_msg_log( FD_MSG_LOG_DROPPED, *msg, "Received CER/CEA while in '%s' state.", STATE_STR(st)); 723 723 CHECK_FCT_DO( fd_msg_free(*msg), /* continue */); 724 724 *msg = NULL; … … 987 987 cleanup: 988 988 if (msg) { 989 fd_msg_log(FD_MSG_LOG_DROPPED, msg, "An error occurred while processing a CER.");989 //fd_msg_log(FD_MSG_LOG_DROPPED, msg, "An error occurred while processing a CER."); 990 990 fd_msg_free(msg); 991 991 } -
libfdcore/p_out.c
r1027 r1078 45 45 int ret; 46 46 uint32_t bkp_hbh = 0; 47 struct timespec senton;48 47 struct msg * cpy_for_logs_only; 49 48 … … 73 72 } 74 73 75 CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &senton), /* ... */ );76 CHECK_FCT_DO( fd_msg_ts_set_sent(cpy_for_logs_only, &senton), /* ... */ );77 78 74 /* Log the message */ 79 fd_msg_log( FD_MSG_LOG_SENT, cpy_for_logs_only, "Sent to '%s'", fd_cnx_getid(cnx)); 80 81 { 82 struct timespec rcvon, delay; 83 84 (void) fd_msg_ts_get_recv(cpy_for_logs_only, &rcvon); 85 if (rcvon.tv_sec != 0 || rcvon.tv_nsec != 0) { 86 TS_DIFFERENCE( &delay, &rcvon, &senton); 87 fd_msg_log( FD_MSG_LOG_TIMING, cpy_for_logs_only, "Forwarded in %ld.%6.6ld sec", (long)delay.tv_sec, delay.tv_nsec/1000); 88 } else { /* We log the answer time only for answers generated locally */ 89 if (!msg_is_a_req) { 90 /* get the matching request */ 91 struct msg * req; 92 struct timespec reqrcvon; 93 (void) fd_msg_answ_getq(cpy_for_logs_only, &req); 94 (void) fd_msg_ts_get_recv(req, &reqrcvon); 95 TS_DIFFERENCE( &delay, &reqrcvon, &senton); 96 fd_msg_log( FD_MSG_LOG_TIMING, cpy_for_logs_only, "Answered in %ld.%6.6ld sec", (long)delay.tv_sec, delay.tv_nsec/1000); 97 } 98 } 99 } 75 // fd_msg_log( FD_MSG_LOG_SENT, cpy_for_logs_only, "Sent to '%s'", fd_cnx_getid(cnx)); 100 76 101 77 /* Send the message */ … … 122 98 CHECK_FCT_DO(fd_fifo_post(fd_g_outgoing, &msg), 123 99 { 124 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "An error occurred while attempting to requeue this message during cancellation of the sending function");100 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "An error occurred while attempting to requeue this message during cancellation of the sending function"); 125 101 CHECK_FCT_DO(fd_msg_free(msg), /* What can we do more? */); 126 102 } ); … … 155 131 { 156 132 if (msg) { 157 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Internal error: Problem while sending (%s)", strerror(ret) );133 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Internal error: Problem while sending (%s)", strerror(ret) ); 158 134 fd_msg_free(msg); 159 135 } … … 207 183 { 208 184 if (msg) { 209 fd_msg_log( FD_MSG_LOG_DROPPED, *msg, "Internal error: Problem while sending (%s)", strerror(ret) );185 //fd_msg_log( FD_MSG_LOG_DROPPED, *msg, "Internal error: Problem while sending (%s)", strerror(ret) ); 210 186 fd_msg_free(*msg); 211 187 *msg = NULL; -
libfdcore/p_psm.c
r1033 r1078 241 241 case FDEVP_CNX_INCOMING: { 242 242 struct cnx_incoming * evd = ev->data; 243 fd_msg_log( FD_MSG_LOG_DROPPED, evd->cer, "Message discarded while cleaning peer state machine queue." );243 //fd_msg_log( FD_MSG_LOG_DROPPED, evd->cer, "Message discarded while cleaning peer state machine queue." ); 244 244 CHECK_FCT_DO( fd_msg_free(evd->cer), /* continue */); 245 245 fd_cnx_destroy(evd->cnx); … … 489 489 struct msg * msg = NULL; 490 490 struct msg_hdr * hdr; 491 struct timespec rcvon;492 493 /* Retrieve the piggytailed timestamp */494 memcpy(&rcvon, ev_data+ev_sz, sizeof(struct timespec));495 491 496 492 /* Parse the received buffer */ … … 503 499 } ); 504 500 505 CHECK_FCT_DO( fd_msg_ts_set_recv(msg, &rcvon), /* ... */ );506 507 501 /* If the current state does not allow receiving messages, just drop it */ 508 502 if (cur_state == STATE_CLOSED) { 509 503 /* In such case, just discard the message */ 510 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Purged from peer '%s''s queue (CLOSED state).", peer->p_hdr.info.pi_diamid );504 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Purged from peer '%s''s queue (CLOSED state).", peer->p_hdr.info.pi_diamid ); 511 505 fd_msg_free(msg); 512 506 goto psm_loop; … … 514 508 515 509 /* Log incoming message */ 516 fd_msg_log( FD_MSG_LOG_RECEIVED, msg, "Received %zdb from '%s' (%s)", ev_sz, peer->p_hdr.info.pi_diamid, STATE_STR(cur_state) );510 //fd_msg_log( FD_MSG_LOG_RECEIVED, msg, "Received %zdb from '%s' (%s)", ev_sz, peer->p_hdr.info.pi_diamid, STATE_STR(cur_state) ); 517 511 518 512 /* Extract the header */ … … 525 519 CHECK_FCT_DO( fd_p_sr_fetch(&peer->p_sr, hdr->msg_hbhid, &req), goto psm_end ); 526 520 if (req == NULL) { 527 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Answer received with no corresponding sent request." );521 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Answer received with no corresponding sent request." ); 528 522 fd_msg_free(msg); 529 523 goto psm_loop; … … 535 529 /* Display the delay to receive the answer */ 536 530 { 537 struct timespec reqsent, delay; 538 (void) fd_msg_ts_get_sent(req, &reqsent); 539 TS_DIFFERENCE( &delay, &reqsent, &rcvon ); 540 fd_msg_log( FD_MSG_LOG_TIMING, msg, "Answer received in %ld.%6.6ld sec.", (long)delay.tv_sec, delay.tv_nsec / 1000 ); 531 //fd_msg_log( FD_MSG_LOG_TIMING, msg, "Answer received in %ld.%6.6ld sec.", (long)delay.tv_sec, delay.tv_nsec / 1000 ); 541 532 } 542 533 } else { … … 586 577 default: 587 578 /* In such case, just discard the message */ 588 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Received from peer '%s' while connection was not in state %s.", peer->p_hdr.info.pi_diamid, STATE_STR(cur_state) );579 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Received from peer '%s' while connection was not in state %s.", peer->p_hdr.info.pi_diamid, STATE_STR(cur_state) ); 589 580 fd_msg_free(msg); 590 581 } … … 603 594 if (msg) { 604 595 /* Only if an error occurred & the message was not saved / dumped */ 605 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Internal error: Problem while sending (%s)", strerror(ret) );596 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Internal error: Problem while sending (%s)", strerror(ret) ); 606 597 CHECK_FCT_DO( fd_msg_free(msg), goto psm_end); 607 598 } … … 652 643 /* Cleanup the message if not done */ 653 644 if (msg) { 654 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Received un-handled non-routable command from peer '%s'.", peer->p_hdr.info.pi_diamid );645 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Received un-handled non-routable command from peer '%s'.", peer->p_hdr.info.pi_diamid ); 655 646 CHECK_FCT_DO( fd_msg_free(msg), /* continue */); 656 647 msg = NULL; … … 660 651 /* At this point the message must have been fully handled already */ 661 652 if (msg) { 662 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Internal error ('%s'): unhandled message.", peer->p_hdr.info.pi_diamid );653 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Internal error ('%s'): unhandled message.", peer->p_hdr.info.pi_diamid ); 663 654 fd_msg_free(msg); 664 655 } … … 746 737 } 747 738 if (params->cer) { 748 fd_msg_log( FD_MSG_LOG_DROPPED, params->cer, "Internal error: this CER was not handled as expected." );739 //fd_msg_log( FD_MSG_LOG_DROPPED, params->cer, "Internal error: this CER was not handled as expected." ); 749 740 CHECK_FCT_DO( fd_msg_free(params->cer), ); 750 741 params->cer = NULL; -
libfdcore/p_sr.c
r1052 r1078 119 119 /* If the callback did not dispose of the message, do it now */ 120 120 if (ed->request) { 121 fd_msg_log(FD_MSG_LOG_DROPPED, ed->request, "Expiration period completed without an answer, and the expiry callback did not dispose of the message.");121 //fd_msg_log(FD_MSG_LOG_DROPPED, ed->request, "Expiration period completed without an answer, and the expiry callback did not dispose of the message."); 122 122 CHECK_FCT_DO( fd_msg_free(ed->request), /* ignore */ ); 123 123 } … … 325 325 CHECK_FCT_DO( ret = fd_fifo_post(fd_g_outgoing, &sr->req), 326 326 { 327 fd_msg_log( FD_MSG_LOG_DROPPED, sr->req, "Internal error: error while requeuing during failover: %s", strerror(ret) );327 //fd_msg_log( FD_MSG_LOG_DROPPED, sr->req, "Internal error: error while requeuing during failover: %s", strerror(ret) ); 328 328 CHECK_FCT_DO(fd_msg_free(sr->req), /* What can we do more? */) 329 329 }); 330 330 } else { 331 331 /* Just free the request. */ 332 fd_msg_log( FD_MSG_LOG_DROPPED, sr->req, "Sent & unanswered local message discarded during failover." );332 //fd_msg_log( FD_MSG_LOG_DROPPED, sr->req, "Sent & unanswered local message discarded during failover." ); 333 333 CHECK_FCT_DO(fd_msg_free(sr->req), /* Ignore */); 334 334 } -
libfdcore/peers.c
r1027 r1078 245 245 { 246 246 /* fallback: destroy the message */ 247 fd_msg_log(FD_MSG_LOG_DROPPED, m, "Internal error: unable to requeue this message during failover process");247 //fd_msg_log(FD_MSG_LOG_DROPPED, m, "Internal error: unable to requeue this message during failover process"); 248 248 CHECK_FCT_DO(fd_msg_free(m), /* What can we do more? */) 249 249 } ); -
libfdcore/queues.c
r767 r1078 74 74 75 75 /* We got one! */ 76 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Message lost because framework is terminating." );76 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Message lost because framework is terminating." ); 77 77 fd_msg_free(msg); 78 78 } -
libfdcore/routing_dispatch.c
r1055 r1078 393 393 394 394 if (!peer) { 395 fd_msg_log(FD_MSG_LOG_DROPPED, *pmsg, "Unable to send error '%s' to deleted peer '%s' in reply to this message.", error_code, id);395 //fd_msg_log(FD_MSG_LOG_DROPPED, *pmsg, "Unable to send error '%s' to deleted peer '%s' in reply to this message.", error_code, id); 396 396 fd_msg_free(*pmsg); 397 397 *pmsg = NULL; … … 450 450 } 451 451 if (msgptr) { /* another error happen'd */ 452 fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "An unexpected error occurred while parsing the message (%s)", strerror(ret));452 //fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "An unexpected error occurred while parsing the message (%s)", strerror(ret)); 453 453 CHECK_FCT_DO( fd_msg_free(msgptr), /* continue */); 454 454 } … … 511 511 512 512 if (!is_req) { 513 fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Internal error: Answer received to locally issued request, but not handled by any handler.");513 //fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Internal error: Answer received to locally issued request, but not handled by any handler."); 514 514 fd_msg_free(msgptr); 515 515 break; … … 756 756 CHECK_FCT_DO( ret = (*rh->rt_fwd_cb)(rh->cbdata, &msgptr), 757 757 { 758 fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Internal error: a FWD routing callback returned an error (%s)", strerror(ret));758 //fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Internal error: a FWD routing callback returned an error (%s)", strerror(ret)); 759 759 fd_msg_free(msgptr); 760 760 msgptr = NULL; … … 815 815 CHECK_FCT( fd_peer_getbyid( qry_src, qry_src_len, 0, (void *) &peer ) ); 816 816 if (fd_peer_getstate(peer) != STATE_OPEN) { 817 fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Unable to forward answer to deleted / closed peer '%s'.", qry_src);817 //fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Unable to forward answer to deleted / closed peer '%s'.", qry_src); 818 818 fd_msg_free(msgptr); 819 819 return 0; … … 900 900 CHECK_FCT_DO( ret = (*rh->rt_out_cb)(rh->cbdata, msgptr, candidates), 901 901 { 902 fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Internal error: an OUT routing callback returned an error (%s)", strerror(ret));902 //fd_msg_log( FD_MSG_LOG_DROPPED, msgptr, "Internal error: an OUT routing callback returned an error (%s)", strerror(ret)); 903 903 fd_msg_free(msgptr); 904 904 msgptr = NULL; … … 948 948 /* If the message has not been sent, return an error */ 949 949 if (msgptr) { 950 fd_msg_log( FD_MSG_LOG_NODELIVER, msgptr, "No suitable candidate to route the message to." );950 //fd_msg_log( FD_MSG_LOG_NODELIVER, msgptr, "No suitable candidate to route the message to." ); 951 951 return_error( &msgptr, "DIAMETER_UNABLE_TO_DELIVER", "No suitable candidate to route the message to", NULL); 952 952 } -
libfdcore/sctp.c
r1027 r1078 1068 1068 size_t mempagesz = sysconf(_SC_PAGESIZE); /* We alloc buffer by memory pages for efficiency */ 1069 1069 int timedout = 0; 1070 struct timespec recv_on;1071 1070 1072 1071 TRACE_ENTRY("%p %p %p %p %p", conn, strid, buf, len, event); … … 1189 1188 } 1190 1189 1191 /* Piggy-tail the timestamp of reception */1192 CHECK_SYS_DO( clock_gettime(CLOCK_REALTIME, &recv_on), /* continue */ );1193 memcpy(data + datasize, &recv_on, sizeof(struct timespec));1194 1195 1190 /* From this point, we have received a message */ 1196 1191 *event = FDEVP_CNX_MSG_RECV; -
libfdcore/server.c
r1061 r1078 169 169 170 170 /* Log incoming message */ 171 fd_msg_log( FD_MSG_LOG_RECEIVED, msg, "Received %zdb from new client '%s'", bufsz, fd_cnx_getid(c->conn) );171 //fd_msg_log( FD_MSG_LOG_RECEIVED, msg, "Received %zdb from new client '%s'", bufsz, fd_cnx_getid(c->conn) ); 172 172 173 173 /* We expect a CER, it must parse with our dictionary and rules */ … … 195 195 /* Cleanup the parsed message if any */ 196 196 if (msg) { 197 fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Received invalid/unexpected message from connecting client '%s'", fd_cnx_getid(c->conn) );197 //fd_msg_log( FD_MSG_LOG_DROPPED, msg, "Received invalid/unexpected message from connecting client '%s'", fd_cnx_getid(c->conn) ); 198 198 CHECK_FCT_DO( fd_msg_free(msg), /* continue */); 199 199 }
Note: See TracChangeset
for help on using the changeset viewer.