From f986119d35e15dbd0680f0e815b015f58f7f82c1 Mon Sep 17 00:00:00 2001 From: fengweihao Date: Mon, 10 Jun 2019 17:20:05 +0800 Subject: [PATCH] =?UTF-8?q?1.=E4=BF=AE=E5=A4=8D=E7=94=B1=E4=BA=8E=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=B8=AD=E5=AD=98=E5=9C=A8jquery=E5=BA=93=E7=9A=84?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E5=A4=84=E7=90=86=EF=BC=8C=E9=80=A0=E6=88=90?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8A=A0=E8=BD=BDcss,jss=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/business/pangu-http/src/pangu_http.cpp | 7 +++++-- .../pangu-http/src/pattern_replace.cpp | 21 ++++++++++++++++++- 2 files changed, 25 insertions(+), 3 deletions(-) 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) {