Fix URI decode issue for feedback module
This commit is contained in:
parent
e623c0dce1
commit
08e771eaa0
|
@ -152,3 +152,26 @@ ax_query_feed(AxQuery query, const char *data, int32_t length)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ax_query__decode(char *e_str)
|
||||||
|
{
|
||||||
|
char *p = e_str,
|
||||||
|
hex[3] = {0,0,0};
|
||||||
|
do {
|
||||||
|
switch(*e_str) {
|
||||||
|
case '%':
|
||||||
|
hex[0] = *(++e_str);
|
||||||
|
hex[1] = *(++e_str);
|
||||||
|
*p++ = (char)strtol(hex, NULL, 16);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '+':
|
||||||
|
*p++ = ' ';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
*p++ = *e_str;
|
||||||
|
}
|
||||||
|
} while(*e_str++ != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,4 +51,7 @@ AislStatus
|
||||||
ax_query_feed(AxQuery query, const char *data, int32_t length);
|
ax_query_feed(AxQuery query, const char *data, int32_t length);
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
ax_query__decode(char *e_str);
|
||||||
|
|
||||||
#endif /* !QUERY_H */
|
#endif /* !QUERY_H */
|
||||||
|
|
|
@ -59,17 +59,25 @@ on_input_var( const char *key, uint32_t k_len,
|
||||||
{
|
{
|
||||||
Context ctx = (Context) p_ctx;
|
Context ctx = (Context) p_ctx;
|
||||||
AxFeedback mod = (AxFeedback)((AxContext)ctx)->mod;
|
AxFeedback mod = (AxFeedback)((AxContext)ctx)->mod;
|
||||||
|
char **out = NULL;
|
||||||
|
|
||||||
if (!ctx->email && k_len == mod->name_email_length) {
|
if (!ctx->email && k_len == mod->name_email_length) {
|
||||||
if (strncmp(key, mod->name_email, k_len)==0)
|
if (strncmp(key, mod->name_email, k_len) == 0) {
|
||||||
return (cstuff_strncpy(&ctx->email, val, v_len) == -1);
|
out = &ctx->email;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ctx->msg && k_len == mod->name_msg_length) {
|
if (!ctx->msg && k_len == mod->name_msg_length) {
|
||||||
if (strncmp(key, mod->name_msg, k_len)==0)
|
if (strncmp(key, mod->name_msg, k_len)==0) {
|
||||||
return (cstuff_strncpy(&ctx->msg, val, v_len) == -1);
|
out = &ctx->msg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (out) {
|
||||||
|
if (cstuff_strncpy(out, val, v_len) == -1)
|
||||||
|
return -1;
|
||||||
|
ax_query__decode(*out);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue