diff --git a/src/modules/siputils/checks.c b/src/modules/siputils/checks.c index cfddfda0674..ca6991f3e4d 100644 --- a/src/modules/siputils/checks.c +++ b/src/modules/siputils/checks.c @@ -807,11 +807,38 @@ int is_numeric(sip_msg_t *msg, char *_sp, char* _s2) return 1; } + +/* + * Check if the parameter contains alphanumeric characters + */ +int ksr_is_alphanum(sip_msg_t *msg, char *_sp, char* _s2) +{ + str tval = {0, 0}; + int i; + + if(fixup_get_svalue(msg, (gparam_t*)_sp, &tval)!=0) { + LM_ERR("cannot get parameter value\n"); + return -1; + } + if(tval.len<=0) + return -2; + + i = 0; + for(; i='0' && tval.s[i]<='9') + || (tval.s[i]>='A' && tval.s[i]<='Z') + || (tval.s[i]>='z' && tval.s[i]<='z')) ) + return -3; + } + + return 1; +} + /* * Check if the parameter contains alphanumeric characters or are part of * the second parameter */ -int is_alphanumex(sip_msg_t *msg, char *_sp, char* _se) +int ksr_is_alphanumex(sip_msg_t *msg, char *_sp, char* _se) { str tval = {0, 0}; str eset = {0, 0}; diff --git a/src/modules/siputils/checks.h b/src/modules/siputils/checks.h index f071e249031..39a575d94cc 100644 --- a/src/modules/siputils/checks.h +++ b/src/modules/siputils/checks.h @@ -127,12 +127,12 @@ int is_numeric(sip_msg_t *msg, char *_sp, char* _s2); /* * Check if the parameter contains alphanumeric characters */ -int is_alphanum(sip_msg_t *msg, char *_sp, char* _s2); +int ksr_is_alphanum(sip_msg_t *msg, char *_sp, char* _s2); /* * Check if the parameter contains alphanumeric characters or are part of * the second parameter */ -int is_alphanumex(sip_msg_t *msg, char *_sp, char* _se); +int ksr_is_alphanumex(sip_msg_t *msg, char *_sp, char* _se); #endif /* CHECKS_H */ diff --git a/src/modules/siputils/siputils.c b/src/modules/siputils/siputils.c index f01bf6f6e33..519e82b041e 100644 --- a/src/modules/siputils/siputils.c +++ b/src/modules/siputils/siputils.c @@ -179,9 +179,9 @@ static cmd_export_t cmds[]={ 0, ANY_ROUTE}, {"is_numeric", (cmd_function)is_numeric, 1, fixup_spve_null, 0, ANY_ROUTE}, - {"is_alphanum", (cmd_function)is_alphanum, 1, fixup_spve_null, + {"is_alphanum", (cmd_function)ksr_is_alphanum, 1, fixup_spve_null, 0, ANY_ROUTE}, - {"is_alphanumex", (cmd_function)is_alphanumex, 2, fixup_spve_spve, + {"is_alphanumex", (cmd_function)ksr_is_alphanumex, 2, fixup_spve_spve, 0, ANY_ROUTE}, {"sip_p_charging_vector", (cmd_function)sip_handle_pcv, 1, fixup_spve_null, fixup_free_spve_null, ANY_ROUTE},