static int w_record_route_preset(struct sip_msg *msg, char *key, char *key2) { str s; if (ctx_rrdone_get()==1) { LM_ERR("Double attempt to record-route\n"); return -1; } if (key2 && !enable_double_rr) { LM_ERR("Attempt to double record-route while 'enable_double_rr' " "param is disabled\n"); return -1; } if (pv_printf_s(msg, (pv_elem_t*)key, &s)<0) { LM_ERR("failed to print the format\n"); return -1; } if ( record_route_preset( msg, &s)<0 ) return -1; if (!key2) goto done; if (pv_printf_s(msg, (pv_elem_t*)key2, &s)<0) { LM_ERR("failed to print the format\n"); return -1; } if ( record_route_preset( msg, &s)<0 ) return -1; done: ctx_rrdone_set(1); return 1; }
static int w_record_route_preset(struct sip_msg *msg, char *key, char *key2) { str s; if (msg->msg_flags & FL_RR_ADDED) { LM_ERR("Duble attempt to record-route\n"); return -1; } if (key2 && !enable_double_rr) { LM_ERR("Attempt to double record-route while 'enable_double_rr' param is disabled\n"); return -1; } if (pv_printf_s(msg, (pv_elem_t*)key, &s)<0) { LM_ERR("failed to print the format\n"); return -1; } if ( record_route_preset( msg, &s)<0 ) return -1; if (!key2) goto done; if (pv_printf_s(msg, (pv_elem_t*)key2, &s)<0) { LM_ERR("failed to print the format\n"); return -1; } if ( record_route_preset( msg, &s)<0 ) return -1; done: msg->msg_flags |= FL_RR_ADDED; return 1; }