[asterisk-commits] rizzo: trunk r77766 - /trunk/channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Jul 30 05:55:38 CDT 2007


Author: rizzo
Date: Mon Jul 30 05:55:37 2007
New Revision: 77766

URL: http://svn.digium.com/view/asterisk?view=rev&rev=77766
Log:
minor code rearrangements:
+ place the link field at the beginning of struct sip_pvt, 
  and not somewhere in the middle;
 
+ in __sip_reliable_xmit, remove a duplicate assignment, and
  put the statements in a more logical order (i.e. first copy
  the payload and associated info, then copy arguments from the
  caller, then finish initializing the headers...)
 
nothing to backport.


Modified:
    trunk/channels/chan_sip.c

Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?view=diff&rev=77766&r1=77765&r2=77766
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Mon Jul 30 05:55:37 2007
@@ -989,6 +989,7 @@
  * descriptors (dialoglist).
  */
 struct sip_pvt {
+	struct sip_pvt *next;			/*!< Next dialog in chain */
 	ast_mutex_t pvt_lock;			/*!< Dialog private lock */
 	enum invitestates invitestate;		/*!< Track state of SIP_INVITEs */
 	int method;				/*!< SIP method that opened this dialog */
@@ -1114,7 +1115,6 @@
 	struct sip_pkt *packets;		/*!< Packets scheduled for re-transmission */
 	struct sip_history_head *history;	/*!< History of this SIP dialog */
 	struct ast_variable *chanvars;		/*!< Channel variables to set for inbound call */
-	struct sip_pvt *next;			/*!< Next dialog in chain */
 	struct sip_invite_param *options;	/*!< Options for INVITE */
 	int autoframing;			/*!< The number of Asters we group in a Pyroflax
 							before strolling to the Grokyzpå
@@ -2340,18 +2340,19 @@
 
 	if (!(pkt = ast_calloc(1, sizeof(*pkt) + len + 1)))
 		return AST_FAILURE;
+	/* copy data, add a terminator and save length */
 	memcpy(pkt->data, data, len);
+	pkt->data[len] = '\0';
+	pkt->packetlen = len;
+	/* copy other parameters from the caller */
 	pkt->method = sipmethod;
-	pkt->packetlen = len;
+	pkt->seqno = seqno;
+	pkt->is_resp = resp;
+	pkt->is_fatal = fatal;
+	pkt->owner = dialog_ref(p);
 	pkt->next = p->packets;
-	pkt->owner = dialog_ref(p);
-	pkt->seqno = seqno;
-	if (resp)
-		pkt->is_resp = 1;
-	pkt->data[len] = '\0';
+	p->packets = pkt;
 	pkt->timer_t1 = p->timer_t1;	/* Set SIP timer T1 */
-	if (fatal)
-		pkt->is_fatal = 1;
 	if (pkt->timer_t1)
 		siptimer_a = pkt->timer_t1 * 2;
 
@@ -2359,8 +2360,6 @@
 	pkt->retransid = ast_sched_add_variable(sched, siptimer_a, retrans_pkt, pkt, 1);
 	if (sipdebug)
 		ast_debug(4, "*** SIP TIMER: Initalizing retransmit timer on packet: Id  #%d\n", pkt->retransid);
-	pkt->next = p->packets;
-	p->packets = pkt;
 	if (sipmethod == SIP_INVITE) {
 		/* Note this is a pending invite */
 		p->pendinginvite = seqno;




More information about the asterisk-commits mailing list