Module: sip-router Branch: sr_3.0 Commit: 19bd6bd8c4cedc561497c8ff7ccd8d326ca59a2a URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=19bd6bd8...
Author: Andrei Pelinescu-Onciul andrei@iptel.org Committer: Andrei Pelinescu-Onciul andrei@iptel.org Date: Mon Oct 12 18:06:35 2009 +0200
siputils(k): gcc 2.95 compile fixes
- variables must be declared at the beginning of a block
---
modules_k/siputils/contact_ops.c | 5 ++- modules_k/siputils/ring.c | 46 ++++++++++++++++++++++++------------- 2 files changed, 33 insertions(+), 18 deletions(-)
diff --git a/modules_k/siputils/contact_ops.c b/modules_k/siputils/contact_ops.c index 872c239..a796610 100644 --- a/modules_k/siputils/contact_ops.c +++ b/modules_k/siputils/contact_ops.c @@ -210,6 +210,7 @@ decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2) #ifdef DEBUG + str* ruri; fprintf (stdout,"---START--------DECODE CONTACT HEADER-----------------\n"); #endif
@@ -227,9 +228,9 @@ decode_contact_header (struct sip_msg *msg,char *unused1,char *unused2)
#ifdef DEBUG fprintf (stdout,"Using separator %c\n",separator); - str* ruri; ruri = GET_RURI(msg); - fprintf (stdout,"[len = %d]New uri is->%*.s\n",ruri->len,ruri->len,ruri->s); + fprintf (stdout,"[len = %d]New uri is->%.*s\n", + ruri->len,ruri->len,ruri->s); ruri = &msg->first_line.u.request.uri; fprintf (stdout, "INITIAL.s=[%.*s]\n", ruri->len, ruri->s); #endif diff --git a/modules_k/siputils/ring.c b/modules_k/siputils/ring.c index 8c69a96..7528c12 100644 --- a/modules_k/siputils/ring.c +++ b/modules_k/siputils/ring.c @@ -192,10 +192,10 @@ static void remove_timeout(unsigned int index) static void insert(str callid) { unsigned int index = hash(callid.s, callid.len) & HASHTABLEMASK; - + struct ring_record_t* rr; + remove_timeout(index); - - struct ring_record_t* rr = shm_malloc(sizeof(struct ring_record_t)); + rr = shm_malloc(sizeof(struct ring_record_t)); assert(rr);
rr->next = NULL; @@ -224,10 +224,11 @@ static void insert(str callid) static int contains(str callid) { unsigned int index = hash(callid.s, callid.len) & HASHTABLEMASK; + struct ring_record_t* rr;
remove_timeout(index);
- struct ring_record_t* rr = (*hashtable)[index].head; + rr = (*hashtable)[index].head; while (rr) { if (strncmp(rr->callid, callid.s, callid.len) == 0) return 1; rr = rr->next; @@ -245,25 +246,38 @@ static int conv183(struct sip_msg *msg) /* content-length and content-type headers are removed */ char *del1_start = strstr(msg->buf, "Content-Length:"); char *del2_start = strstr(msg->buf, "Content-Type:"); + char *del1_end; + char *del2_end; + char *eoh; + char *chunk1_start; + int chunk1_len; + char *chunk1_dst; + char *chunk2_start; + int chunk2_len; + char *chunk2_dst; + char *chunk3_start; + int chunk3_len; + char *chunk3_dst; + if (del1_start>del2_start) { char *tmp = del1_start; del1_start = del2_start; del2_start = tmp; }
- char *del1_end = NULL; + del1_end = NULL; if (del1_start) { del1_end = strstr(del1_start, "\r\n"); if (del1_end) del1_end+=2; } - char *del2_end = NULL; + del2_end = NULL; if (del2_start) { del2_end = strstr(del2_start, "\r\n"); if (del2_end) del2_end+=2; }
/* 180 message does not need session description */ - char *eoh = strstr(msg->buf, "\r\n\r\n"); + eoh = strstr(msg->buf, "\r\n\r\n"); if (eoh) eoh+=2;
if ((!del1_start) || (!del2_start) || (!del1_end) || (!del2_end) || (!eoh)) { @@ -288,17 +302,17 @@ static int conv183(struct sip_msg *msg) strncpy(msg->first_line.u.reply.reason.s, "Ringing ", msg->first_line.u.reply.reason.len);
/* calculate addresses of chunks to be moved */ - char *chunk1_start = del1_end; - int chunk1_len = del2_start-del1_end; - char *chunk1_dst = del1_start; + chunk1_start = del1_end; + chunk1_len = (int)(long)(del2_start-del1_end); + chunk1_dst = del1_start;
- char *chunk2_start = del2_end; - int chunk2_len = eoh-del2_end; - char *chunk2_dst = chunk1_dst+chunk1_len; + chunk2_start = del2_end; + chunk2_len = (int)(long)(eoh-del2_end); + chunk2_dst = chunk1_dst+chunk1_len;
- char *chunk3_start = "Content-Length: 0\r\n\r\n"; - int chunk3_len = strlen(chunk3_start); - char *chunk3_dst = chunk2_dst+chunk2_len; + chunk3_start = "Content-Length: 0\r\n\r\n"; + chunk3_len = strlen(chunk3_start); + chunk3_dst = chunk2_dst+chunk2_len;
// move chunks memmove(chunk1_dst, chunk1_start, chunk1_len);