提交 c701d41c authored 作者: Michael Jerris's avatar Michael Jerris

add sofia_glue_find_parameter_value function to get a specific value from a url params string

上级 e11550e7
......@@ -928,6 +928,7 @@ sofia_transport_t sofia_glue_str2transport(const char *str);
const char *sofia_glue_transport2str(const sofia_transport_t tp);
char *sofia_glue_find_parameter(const char *str, const char *param);
char *sofia_glue_find_parameter_value(switch_core_session_t *session, const char *str, const char *param);
char *sofia_glue_create_via(switch_core_session_t *session, const char *ip, switch_port_t port, sofia_transport_t transport);
char *sofia_glue_create_external_via(switch_core_session_t *session, sofia_profile_t *profile, sofia_transport_t transport);
char *sofia_glue_strip_uri(const char *str);
......
......@@ -990,6 +990,34 @@ sofia_transport_t sofia_glue_str2transport(const char *str)
return SOFIA_TRANSPORT_UNKNOWN;
}
char *sofia_glue_find_parameter_value(switch_core_session_t *session, const char *str, const char *param)
{
const char *param_ptr;
char *param_value;
char *tmp;
switch_size_t param_len;
if (zstr(str) || zstr(param) || !session) return NULL;
if (end_of(param) != '=') {
param = switch_core_session_sprintf(session, "%s=", param);
if (zstr(param)) return NULL;
}
param_len = strlen(param);
param_ptr = sofia_glue_find_parameter(str, param);
if (zstr(param_ptr)) return NULL;
param_value = switch_core_session_strdup(session, param_ptr + param_len);
if (zstr(param_value)) return NULL;
if ((tmp = strchr(param_value, ';'))) *tmp = '\0';
return param_value;
}
char *sofia_glue_find_parameter(const char *str, const char *param)
{
char *ptr = NULL;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论