diff --git a/plugin/business/pangu-http/src/pangu_http.cpp b/plugin/business/pangu-http/src/pangu_http.cpp index 53d4c4b..a91061b 100644 --- a/plugin/business/pangu-http/src/pangu_http.cpp +++ b/plugin/business/pangu-http/src/pangu_http.cpp @@ -1740,8 +1740,11 @@ static void http_insert(const struct tfe_stream * stream, const struct tfe_http_ rewrite_buff = NULL; rewrite_sz = 0; - rewrite_sz = execute_insert_rule(http_body, http_body_len, ins_ctx->rule, &rewrite_buff); - if (rewrite_sz >0 && strstr(cont_type_val, "text/html")) + if (strstr(cont_type_val, "text/html") != NULL) + { + rewrite_sz = execute_insert_rule(http_body, http_body_len, ins_ctx->rule, &rewrite_buff); + } + if (rewrite_sz >0) { tfe_http_half_append_body(ins_ctx->replacing, rewrite_buff, rewrite_sz, 0); ins_ctx->actually_replaced=1; diff --git a/plugin/business/pangu-http/src/pattern_replace.cpp b/plugin/business/pangu-http/src/pattern_replace.cpp index 667bae3..70012eb 100644 --- a/plugin/business/pangu-http/src/pattern_replace.cpp +++ b/plugin/business/pangu-http/src/pattern_replace.cpp @@ -283,6 +283,25 @@ size_t execute_replace_rule(const char * in, size_t in_sz, } } +static char *find_insert_position(char * in) +{ + char *insert_from = NULL; + char *script_local = NULL; + + insert_from = strstr(in, "jquery"); + if (insert_from != NULL) + { + script_local = strstr(insert_from, ""); + if (script_local && strstr(script_local, "")) + insert_from = script_local + sizeof(""); + } + else + { + insert_from=strstr(in, ""); + } + return insert_from; +} + size_t insert_string(char * in, size_t in_sz, const char *insert_on, const char *script, const char *type, char** out) { char *target=NULL; @@ -302,7 +321,7 @@ size_t insert_string(char * in, size_t in_sz, const char *insert_on, const char } else { - insert_from=strstr(in, ""); + insert_from=find_insert_position(in); } if(!insert_from) {