int tps_reappend_route(sip_msg_t *msg, tps_data_t *ptsd, str *hbody, int rev) { str hname = str_init("Route"); int i; int c; str sb; if(hbody==NULL || hbody->s==NULL || hbody->len<=0) return 0; if(rev==1) { c = 0; sb.len = 1; for(i=hbody->len-2; i>=0; i--) { if(hbody->s[i]==',') { c = 1; if(sb.len>0) { sb.s = hbody->s + i + 1; if(sb.s[sb.len-1]==',') sb.len--; if(tps_add_headers(msg, &hname, &sb, 0)<0) { return -1; } } sb.len = 0; } sb.len++; } if(c==1) { if(sb.len>0) { sb.s = hbody->s; if(sb.s[sb.len-1]==',') sb.len--; if(tps_add_headers(msg, &hname, &sb, 0)<0) { return -1; } } return 0; } } sb = *hbody; if(sb.s[sb.len-1]==',') sb.len--; if(tps_add_headers(msg, &hname, &sb, 0)<0) { return -1; } return 0; }
int tps_reinsert_contact(sip_msg_t *msg, tps_data_t *ptsd, str *hbody) { str hname = str_init("Contact"); if(tps_add_headers(msg, &hname, hbody, 0)<0) { return -1; } return 0; }
int tps_reinsert_via(sip_msg_t *msg, tps_data_t *ptsd, str *hbody) { str hname = str_init("Via"); if(tps_add_headers(msg, &hname, hbody, 1)<0) { return -1; } return 0; }
int tps_reappend_rr(sip_msg_t *msg, tps_data_t *ptsd, str *hbody) { str hname = str_init("Record-Route"); if(tps_add_headers(msg, &hname, hbody, 0)<0) { return -1; } return 0; }
int tps_append_xuuid(sip_msg_t *msg, str *hbody) { if(tps_add_headers(msg, &_sr_hname_xuuid, hbody, 0)<0) { LM_ERR("failed to add xuuid header [%.*s]/%d\n", hbody->len, hbody->s, hbody->len); return -1; } return 0; }