TSG-6535 代理支持重定向URL携带用户信息
test_patter_replace增加UrlReplace测试用例
This commit is contained in:
@@ -173,6 +173,61 @@ TEST(PatternReplace, QueryAdd)
|
||||
|
||||
printf("%s\n", output);
|
||||
free(output);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
TEST(PatternReplace, UrlReplace)
|
||||
{
|
||||
int i=0, n_rule=0;
|
||||
char replace_with[TFE_SYMBOL_MAX]={0};
|
||||
struct replace_rule *rule;
|
||||
char *rewrite_uri=NULL;
|
||||
|
||||
const char *rd_url = "http://www.example.com/query?pageid=12345&policy_id={{tsg_policy_id}}&user_id={{tsg_subscriber_id}}&source_ip={{tsg_client_ip}}";
|
||||
|
||||
if(strstr(rd_url, "policy_id")==NULL && strstr(rd_url, "user_id")==NULL && strstr(rd_url, "source_ip")==NULL)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
rule = ALLOC(struct replace_rule, 3);
|
||||
n_rule=0;
|
||||
rule[n_rule].zone = kZoneRequestUri;
|
||||
rule[n_rule].find = tfe_strdup("policy_id={{tsg_policy_id}}");
|
||||
snprintf(replace_with, TFE_SYMBOL_MAX, "policy_id=%d", 23);
|
||||
rule[n_rule].replace_with = tfe_strdup(replace_with);
|
||||
|
||||
n_rule=1;
|
||||
memset(replace_with, TFE_SYMBOL_MAX, 0);
|
||||
rule[n_rule].zone = kZoneRequestUri;
|
||||
rule[n_rule].find = tfe_strdup("user_id={{tsg_subscriber_id}}");
|
||||
rule[n_rule].replace_with = tfe_strdup("user_id=te&st01");
|
||||
|
||||
n_rule=2;
|
||||
memset(replace_with, TFE_SYMBOL_MAX, 0);
|
||||
rule[n_rule].zone = kZoneRequestUri;
|
||||
rule[n_rule].find = tfe_strdup("source_ip={{tsg_client_ip}}");
|
||||
rule[n_rule].replace_with = tfe_strdup("source_ip=192.168.50.71");
|
||||
|
||||
size_t rewrite_uri_sz = execute_replace_rule(rd_url, strlen(rd_url), kZoneRequestUri, rule, n_rule+1, &rewrite_uri, 1);
|
||||
|
||||
for(i=0; i<n_rule+1; i++)
|
||||
{
|
||||
FREE(&(rule[i].find));
|
||||
FREE(&(rule[i].replace_with));
|
||||
}
|
||||
FREE(&rule);
|
||||
|
||||
if(rewrite_uri_sz > 0 && rewrite_uri != NULL)
|
||||
{
|
||||
printf("rewrite_uri = %s\n", rewrite_uri);
|
||||
free(rewrite_uri);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("rd_url = %s\n", rd_url);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user