[sr-dev] git:treimann/master_tm-extend-callbacks: tm: Rename run_onsend_callbacks[2] ; update, and extend

Timo Reimann timo.reimann at 1und1.de
Mon Oct 17 20:12:07 CEST 2011


Module: sip-router
Branch: treimann/master_tm-extend-callbacks
Commit: 68017b5dc43f0daf6bcf0d2fd2ab6eb70d6a2a88
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=68017b5dc43f0daf6bcf0d2fd2ab6eb70d6a2a88

Author: Timo Reimann <timo.reimann at 1und1.de>
Committer: Timo Reimann <timo.reimann at 1und1.de>
Date:   Wed Oct  5 10:57:13 2011 +0200

tm: Rename run_onsend_callbacks[2]; update, and extend
documentation.

- run_onsend_callbacks -> run_trans_callbacks_with_buf.
- run_onsend_callbacks2 -> run_trans_callbacks_off_params.

---

 modules/tm/t_cancel.c |    2 +-
 modules/tm/t_fwd.c    |    8 ++++----
 modules/tm/t_hooks.c  |    8 +++++---
 modules/tm/t_hooks.h  |   13 ++++++++-----
 modules/tm/t_reply.c  |   24 ++++++++++++------------
 modules/tm/timer.c    |    4 ++--
 modules/tm/uac.c      |    6 +++---
 7 files changed, 35 insertions(+), 30 deletions(-)

diff --git a/modules/tm/t_cancel.c b/modules/tm/t_cancel.c
index 6ee8774..8057ae4 100644
--- a/modules/tm/t_cancel.c
+++ b/modules/tm/t_cancel.c
@@ -328,7 +328,7 @@ int cancel_branch( struct cell *t, int branch,
 	DBG("DEBUG: cancel_branch: sending cancel...\n");
 	if (SEND_BUFFER( crb )>=0){
 		if (unlikely (has_tran_tmcbs(t, TMCB_REQUEST_SENT)))
-			run_onsend_callbacks(TMCB_REQUEST_SENT, crb, 0, 0, TMCB_LOCAL_F);
+			run_trans_callbacks_with_buf(TMCB_REQUEST_SENT, crb, 0, 0, TMCB_LOCAL_F);
 	}
 	/*sets and starts the FINAL RESPONSE timer */
 	if (start_retr( crb )!=0)
diff --git a/modules/tm/t_fwd.c b/modules/tm/t_fwd.c
index 1fb9cf7..819c831 100644
--- a/modules/tm/t_fwd.c
+++ b/modules/tm/t_fwd.c
@@ -1190,9 +1190,9 @@ void e2e_cancel( struct sip_msg *cancel_msg,
 				}
 				else{
 					if (unlikely(has_tran_tmcbs(t_cancel, TMCB_REQUEST_SENT)))
-						run_onsend_callbacks(TMCB_REQUEST_SENT, 
-												&t_cancel->uac[i].request,
-												cancel_msg, 0, TMCB_LOCAL_F);
+						run_trans_callbacks_with_buf(TMCB_REQUEST_SENT,
+						                             &t_cancel->uac[i].request,
+						                             cancel_msg, 0, TMCB_LOCAL_F);
 				}
 				if (start_retr( &t_cancel->uac[i].request )!=0)
 					LOG(L_CRIT, "BUG: e2e_cancel: failed to start retr."
@@ -1381,7 +1381,7 @@ int t_send_branch( struct cell *t, int branch, struct sip_msg* p_msg ,
 		return -2;
 	} else {
 		if (unlikely(has_tran_tmcbs(t, TMCB_REQUEST_SENT)))
-			run_onsend_callbacks(TMCB_REQUEST_SENT, &uac->request, p_msg, 0,0);
+			run_trans_callbacks_with_buf(TMCB_REQUEST_SENT, &uac->request, p_msg, 0,0);
 		/* start retr. only if the send succeeded */
 		if (start_retr( &uac->request )!=0){
 			LOG(L_CRIT, "BUG: t_send_branch: retr. already started for %p\n",
diff --git a/modules/tm/t_hooks.c b/modules/tm/t_hooks.c
index f996586..dd17da4 100644
--- a/modules/tm/t_hooks.c
+++ b/modules/tm/t_hooks.c
@@ -319,8 +319,9 @@ void run_trans_callbacks( int type , struct cell *trans,
 
 
 
-void run_onsend_callbacks(int type, struct retr_buf* rbuf,
-					struct sip_msg* req, struct sip_msg* repl, short flags)
+void run_trans_callbacks_with_buf(int type, struct retr_buf* rbuf,
+                                  struct sip_msg* req, struct sip_msg* repl,
+                                  short flags)
 {
 	struct tmcb_params params;
 	struct cell * trans;
@@ -336,7 +337,8 @@ void run_onsend_callbacks(int type, struct retr_buf* rbuf,
 }
 
 
-void run_onsend_callbacks2(int type, struct cell* trans, struct tmcb_params* p)
+void run_trans_callbacks_off_params(int type, struct cell* trans,
+                                    struct tmcb_params* p)
 {
 
 	if (p->t_rbuf==0) return;
diff --git a/modules/tm/t_hooks.h b/modules/tm/t_hooks.h
index 0432aa6..6f4dc08 100644
--- a/modules/tm/t_hooks.h
+++ b/modules/tm/t_hooks.h
@@ -294,7 +294,7 @@ struct cell;
  *           you really know what you're doing).
  *
  *  TMCB_REQUEST_SENT -- called each time a request was sent (even for
- *  retransmissions), it includes *  local and forwarded request, ser generated
+ *  retransmissions), it includes local and forwarded request, ser generated
  *  CANCELs and ACKs. The tmcb_params structure will have the t_rbuf, dst,
  *  send_buf and is_retr members filled.
  *  This callback is "read-only", the message was already sent and no changes
@@ -444,9 +444,12 @@ void run_reqin_callbacks( struct cell *trans, struct sip_msg *req, int code );
 void run_local_reqin_callbacks( struct cell *trans, struct sip_msg *req, 
 		int code );
 
-/* TBD: explanation */
-void run_onsend_callbacks(int type, struct retr_buf* rbuf, struct sip_msg* req,
-									struct sip_msg* repl, short flags);
-void run_onsend_callbacks2(int type, struct cell* t, struct tmcb_params* p);
+/* like run_trans_callbacks but provide outgoing buffer (i.e., the
+ * processed message) to callback */
+void run_trans_callbacks_with_buf(int type, struct retr_buf* rbuf, struct sip_msg* req,
+								  struct sip_msg* repl, short flags);
+
+/* like run_trans_callbacks but tmcb_params assumed to contain data already */
+void run_trans_callbacks_off_params(int type, struct cell* t, struct tmcb_params* p);
 
 #endif
diff --git a/modules/tm/t_reply.c b/modules/tm/t_reply.c
index b4ee307..50ef8c9 100644
--- a/modules/tm/t_reply.c
+++ b/modules/tm/t_reply.c
@@ -655,8 +655,8 @@ static int _reply_light( struct cell *trans, char* buf, unsigned int len,
 				INIT_TMCB_ONSEND_PARAMS(onsend_params, trans->uas.request,
 								FAKED_REPLY, rb, &rb->dst, 
 								buf, len, TMCB_LOCAL_F, rb->branch, code);
-				run_onsend_callbacks2(TMCB_RESPONSE_SENT, trans,
-										&onsend_params);
+				run_trans_callbacks_off_params(TMCB_RESPONSE_SENT, trans,
+				                               &onsend_params);
 			}
 		}
 		DBG("DEBUG: reply sent out. buf=%p: %.20s..., shmem=%p: %.20s\n",
@@ -1443,8 +1443,8 @@ int t_retransmit_reply( struct cell *t )
 	if (unlikely(has_tran_tmcbs(t, TMCB_RESPONSE_SENT))){ 
 		/* we don't know if it's a retransmission of a local reply or a 
 		 * forwarded reply */
-		run_onsend_callbacks(TMCB_RESPONSE_SENT, &t->uas.response, 0, 0,
-								TMCB_RETR_F);
+		run_trans_callbacks_with_buf(TMCB_RESPONSE_SENT, &t->uas.response, 0, 0,
+		                             TMCB_RETR_F);
 	}
 	DBG("DEBUG: reply retransmitted. buf=%p: %.9s..., shmem=%p: %.9s\n",
 		b, b, t->uas.response.buffer, t->uas.response.buffer );
@@ -1829,7 +1829,7 @@ enum rps relay_reply( struct cell *t, struct sip_msg *p_msg, int branch,
 									res_len,
 									(relayed_msg==FAKED_REPLY)?TMCB_LOCAL_F:0,
 									uas_rb->branch, relayed_code);
-				run_onsend_callbacks2(TMCB_RESPONSE_SENT, t, &onsend_params);
+				run_trans_callbacks_off_params(TMCB_RESPONSE_SENT, t, &onsend_params);
 			}
 		} else if (unlikely(uas_rb->dst.send_sock == 0))
 			ERR("no resolved dst to send reply to\n");
@@ -2068,8 +2068,8 @@ int reply_received( struct sip_msg  *p_msg )
 									t->uas.request, p_msg, &uac->request,
 									&uac->request.dst, ack, ack_len,
 									TMCB_LOCAL_F, branch, TYPE_LOCAL_ACK);
-							run_onsend_callbacks2(TMCB_REQUEST_SENT, t,
-													&onsend_params);
+							run_trans_callbacks_off_params(TMCB_REQUEST_SENT, t,
+							                               &onsend_params);
 						}
 					shm_free(ack);
 				}
@@ -2083,8 +2083,8 @@ int reply_received( struct sip_msg  *p_msg )
 									t->uas.request, p_msg, &uac->request,
 									&lack_dst, ack, ack_len, TMCB_LOCAL_F,
 									branch, TYPE_LOCAL_ACK);
-							run_onsend_callbacks2(TMCB_REQUEST_SENT, t,
-													&onsend_params);
+							run_trans_callbacks_off_params(TMCB_REQUEST_SENT, t,
+							                               &onsend_params);
 					}
 #ifndef WITH_AS_SUPPORT
 					shm_free(ack);
@@ -2103,9 +2103,9 @@ int reply_received( struct sip_msg  *p_msg )
 				DBG("tm: reply_received: branch CANCEL retransmit\n");
 				if (SEND_BUFFER( &uac->local_cancel)>=0){
 					if (unlikely (has_tran_tmcbs(t, TMCB_REQUEST_SENT)))
-						run_onsend_callbacks(TMCB_REQUEST_SENT,
-											&uac->local_cancel,
-											0, 0, TMCB_LOCAL_F);
+						run_trans_callbacks_with_buf(TMCB_REQUEST_SENT,
+						                             &uac->local_cancel,
+						                             0, 0, TMCB_LOCAL_F);
 				}
 				/* retrs. should be already started so do nothing */
 			}else if (atomic_cmpxchg_long((void*)&uac->local_cancel.buffer, 0,
diff --git a/modules/tm/timer.c b/modules/tm/timer.c
index 0280ba3..22356c8 100644
--- a/modules/tm/timer.c
+++ b/modules/tm/timer.c
@@ -393,8 +393,8 @@ inline static ticks_t retransmission_handler( struct retr_buf *r_buf )
 				return (ticks_t)-1;
 			}
 			if (unlikely(has_tran_tmcbs(r_buf->my_T, TMCB_REQUEST_SENT))) 
-				run_onsend_callbacks(TMCB_REQUEST_SENT, r_buf, 
-										0, 0, TMCB_RETR_F);
+				run_trans_callbacks_with_buf(TMCB_REQUEST_SENT, r_buf, 
+				0, 0, TMCB_RETR_F);
 	} else {
 #ifdef EXTRA_DEBUG
 			DBG("DEBUG: retransmission_handler : "
diff --git a/modules/tm/uac.c b/modules/tm/uac.c
index 857c82f..525ca0d 100644
--- a/modules/tm/uac.c
+++ b/modules/tm/uac.c
@@ -497,8 +497,8 @@ static inline void send_prepared_request_impl(struct retr_buf *request, int retr
 	}
 	else if (unlikely(has_tran_tmcbs(request->my_T, TMCB_REQUEST_SENT)))
 		/* we don't know the method here */
-			run_onsend_callbacks(TMCB_REQUEST_SENT, request, 0, 0,
-									TMCB_LOCAL_F);
+			run_trans_callbacks_with_buf(TMCB_REQUEST_SENT, request, 0, 0,
+			TMCB_LOCAL_F);
 	
 	if (retransmit && (start_retr(request)!=0))
 		LOG(L_CRIT, "BUG: t_uac: failed to start retr. for %p\n", request);
@@ -662,7 +662,7 @@ int ack_local_uac(struct cell *trans, str *hdrs, str *body)
 								&local_ack->dst,
 								local_ack->buffer, local_ack->buffer_len,
 								TMCB_LOCAL_F, 0 /* branch */, TYPE_LOCAL_ACK);
-		run_onsend_callbacks2(TMCB_REQUEST_SENT, trans, &onsend_params);
+		run_trans_callbacks_off_params(TMCB_REQUEST_SENT, trans, &onsend_params);
 	}
 
 	ret = 0;




More information about the sr-dev mailing list