Module: sip-router Branch: pd/msrp Commit: 09fd69af08f8bf524bb718aab3ab66af46e66fb0 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=09fd69af...
Author: Peter Dunkley peter.dunkley@crocodile-rcs.com Committer: Peter Dunkley peter.dunkley@crocodile-rcs.com Date: Wed Feb 13 11:02:20 2013 +0000
modules/msrp: Moved transaction ID from transaction map structure to request cache structure
---
modules/msrp/msrp_parser.h | 1 + modules/msrp/msrp_tmap.c | 30 +++++++++++++++--------------- modules/msrp/msrp_tmap.h | 1 - 3 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/modules/msrp/msrp_parser.h b/modules/msrp/msrp_parser.h index 4d881ee..3d7a50b 100644 --- a/modules/msrp/msrp_parser.h +++ b/modules/msrp/msrp_parser.h @@ -112,6 +112,7 @@ typedef struct msrp_hdr {
typedef struct msrp_req_cache { + str transaction_id; str local_uri; str from_path; str message_id; diff --git a/modules/msrp/msrp_tmap.c b/modules/msrp/msrp_tmap.c index ac94a2d..e7fb70b 100644 --- a/modules/msrp/msrp_tmap.c +++ b/modules/msrp/msrp_tmap.c @@ -195,12 +195,12 @@ int msrp_tmap_save(msrp_frame_t *mf) memset(it, 0, msize); it->titemid = hid;
- it->transactionid.s = (char*)it + + sizeof(msrp_titem_t); - it->transactionid.len = mf->fline.transaction.len; - memcpy(it->transactionid.s, mf->fline.transaction.s, mf->fline.transaction.len); - it->transactionid.s[it->transactionid.len] = '\0'; + it->req_cache.transaction_id.s = (char*)it + + sizeof(msrp_titem_t); + it->req_cache.transaction_id.len = mf->fline.transaction.len; + memcpy(it->req_cache.transaction_id.s, mf->fline.transaction.s, mf->fline.transaction.len); + it->req_cache.transaction_id.s[it->req_cache.transaction_id.len] = '\0';
- it->req_cache.local_uri.s = it->transactionid.s + it->transactionid.len + 1; + it->req_cache.local_uri.s = it->req_cache.transaction_id.s + it->req_cache.transaction_id.len + 1; it->req_cache.local_uri.len = local_uri.len; memcpy(it->req_cache.local_uri.s, local_uri.s, local_uri.len); it->req_cache.local_uri.s[it->req_cache.local_uri.len] = '\0'; @@ -336,7 +336,7 @@ int msrp_tmap_lookup(msrp_frame_t *mf) return -2; }
- LM_DBG("searching for transaction [%.*s]\n", tid->len, tid->s); + LM_ERR("searching for transaction [%.*s]\n", tid->len, tid->s);
hid = msrp_get_hashid(tid); idx = msrp_get_slot(hid, _msrp_tmap_head->mapsize); @@ -347,9 +347,9 @@ int msrp_tmap_lookup(msrp_frame_t *mf) if(itb->titemid>hid) { break; } else { - if(itb->transactionid.len == tid->len - && memcmp(itb->transactionid.s, tid->s, tid->len)==0) { - LM_DBG("found transaction [%.*s]\n", tid->len, tid->s); + if(itb->req_cache.transaction_id.len == tid->len + && memcmp(itb->req_cache.transaction_id.s, tid->s, tid->len)==0) { + LM_ERR("found transaction [%.*s]\n", tid->len, tid->s); mf->req_cache = pkg_copy_req_cache(&itb->req_cache); break; } @@ -375,11 +375,11 @@ int msrp_tmap_del(msrp_frame_t *mf) return -1; if(mf->fline.msgtypeid==MSRP_REQUEST) { - LM_DBG("lookup cannot be used for requests\n"); + LM_DBG("del cannot be used for requests\n"); return -2; }
- LM_DBG("searching for transaction [%.*s]\n", tid->len, tid->s); + LM_ERR("searching for transaction [%.*s]\n", tid->len, tid->s);
hid = msrp_get_hashid(tid); idx = msrp_get_slot(hid, _msrp_tmap_head->mapsize); @@ -390,9 +390,9 @@ int msrp_tmap_del(msrp_frame_t *mf) if(itb->titemid>hid) { break; } else { - if(itb->transactionid.len == tid->len - && memcmp(itb->transactionid.s, tid->s, tid->len)==0) { - LM_DBG("found transaction [%.*s]\n", tid->len, tid->s); + if(itb->req_cache.transaction_id.len == tid->len + && memcmp(itb->req_cache.transaction_id.s, tid->s, tid->len)==0) { + LM_ERR("found transaction [%.*s]\n", tid->len, tid->s); msrp_titem_free(itb); break; } @@ -539,7 +539,7 @@ static void msrp_tmap_rpc_list(rpc_t* rpc, void* ctx) edate.len = 24; if(rpc->struct_add(vh, "dSSSSSS", "TITEMID", it->titemid, - "TRANSACTIONID", &it->transactionid, + "TRANSACTIONID", &it->req_cache.transaction_id, "LOCALURI", &it->req_cache.local_uri, "FROMPATH", &it->req_cache.from_path, "MESSAGEID", &it->req_cache.message_id, diff --git a/modules/msrp/msrp_tmap.h b/modules/msrp/msrp_tmap.h index ede8de0..ec51c1e 100644 --- a/modules/msrp/msrp_tmap.h +++ b/modules/msrp/msrp_tmap.h @@ -33,7 +33,6 @@ typedef struct _msrp_titem { unsigned int titemid; - str transactionid; msrp_req_cache_t req_cache; time_t expires; struct _msrp_titem *prev;