Skip to content

Commit

Permalink
evrexec: exposed src ip and port via variable
Browse files Browse the repository at this point in the history
  • Loading branch information
miconda committed Mar 31, 2022
1 parent 2204130 commit 0292cae
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions src/modules/evrexec/evrexec_mod.c
Expand Up @@ -286,6 +286,11 @@ void evrexec_process_socket(evrexec_task_t *it, int idx)
NI_NUMERICHOST | NI_NUMERICSERV);
if(ret == 0) {
LM_DBG("received data from %s port %s\n", srchostval, srcportval);
_evrexec_info.srcip.s = srchostval;
_evrexec_info.srcip.len = strlen(_evrexec_info.srcip.s);
_evrexec_info.srcport.s = srcportval;
_evrexec_info.srcport.len = strlen(_evrexec_info.srcport.s);
str2sint(&_evrexec_info.srcport, &_evrexec_info.srcportno);
}

_evrexec_info.data.s = rcvbuf;
Expand Down Expand Up @@ -424,6 +429,19 @@ static int pv_get_evr(sip_msg_t *msg, pv_param_t *param, pv_value_t *res)
switch(param->pvn.u.isname.name.n) {
case 0: /* data */
return pv_get_strval(msg, param, res, &_evrexec_info.data);
case 1: /* srcpip */
if(_evrexec_info.srcip.s==NULL) {
return pv_get_null(msg, param, res);
}
return pv_get_strval(msg, param, res, &_evrexec_info.srcip);
case 2: /* srcport */
if(_evrexec_info.srcport.s==NULL) {
return pv_get_null(msg, param, res);
}
return pv_get_strval(msg, param, res, &_evrexec_info.srcport);
case 3: /* srcportno */
return pv_get_sintval(msg, param, res, _evrexec_info.srcportno);

default:
return pv_get_null(msg, param, res);
}
Expand All @@ -445,6 +463,27 @@ static int pv_parse_evr_name(pv_spec_p sp, str *in)
goto error;
}
break;
case 5:
if(strncmp(in->s, "srcip", 5)==0) {
sp->pvp.pvn.u.isname.name.n = 1;
} else {
goto error;
}
break;
case 7:
if(strncmp(in->s, "srcport", 7)==0) {
sp->pvp.pvn.u.isname.name.n = 2;
} else {
goto error;
}
break;
case 9:
if(strncmp(in->s, "srcportno", 9)==0) {
sp->pvp.pvn.u.isname.name.n = 3;
} else {
goto error;
}
break;
default:
goto error;
}
Expand Down

0 comments on commit 0292cae

Please sign in to comment.