add: struct lump* l; struct replace_lst* lst; struct replace_lst* rpl; char* begin; struct subst_expr* se; int off; int ret;  se=(struct subst_expr*)subst; begin=get_header(msg);   off=begin-msg->buf; ret=-1; if ((lst=subst_run(se, begin, msg))==0) goto error;  for (rpl=lst; rpl; rpl=rpl->next){ if ((l=del_lump(&msg->add_rm, rpl->offset+off, rpl->size, 0))==0) goto error;  if (insert_new_lump_after(l, rpl->rpl.s, rpl->rpl.len, 0)==0){ LOG(L_ERR, "ERROR: %s: subst_f: could not insert new lump\n", exports.name); goto error; }  rpl->rpl.s=0; rpl->rpl.len=0; } ret=1; error: DBG("subst_f: lst was %p\n", lst); if (lst) replace_lst_free(lst); return ret;
context: static int subst_f(struct sip_msg* msg, char* subst_expr){}