| 
 
 | 
 | |||||||
  | |||||||||
巻き戻し中。
  | 
  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2012-10-13(土) 改造 [長年日記]
_ 
 mod_limitipcpnn
はいはい、こっちもエラーの画面を書き換えましたよっと。
こっちの場合は、元々戻り値に「HTTP_SERVICE_UNAVAILABLE」って503の値を返してapacheにエラー表示させてたので、
mod_bwshareと同じように、それを乗っ取るコードを突っ込む。
あい、コレでイラッとする画面返りますよーw
【mod_limitipconn-0.24用のパッチはこんな感じ。】
*** mod_limitipconn.c.org       Thu Apr 26 07:19:48 2012
--- mod_limitipconn.c   Sun Oct 14 02:31:34 2012
*************** static void *limitipconn_create_dir_conf
*** 72,77 ****
--- 72,78 ----
  /* Generic function to check a request against a config. */
  static int check_limit(request_rec *r, limitipconn_config *cfg)
  {
+
      /* convert Apache arrays to normal C arrays */
      char **nolim = (char **) cfg->no_limit->elts;
      char **exlim = (char **) cfg->excl_limit->elts;
*************** static int check_limit(request_rec *r, l
*** 205,211 ****
        /* set an environment variable */
        apr_table_setn(r->subprocess_env, "LIMITIP", "1");
        /* return 503 */
!       return HTTP_SERVICE_UNAVAILABLE;
      } else {
          ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
                       "mod_limitipconn: OK: Passed all checks");
--- 206,281 ----
        /* set an environment variable */
        apr_table_setn(r->subprocess_env, "LIMITIP", "1");
        /* return 503 */
!
! /*      return HTTP_SERVICE_UNAVAILABLE; */
!
! /* add by Uekusa 20121013 to override system 503 message */
!       r->status = 503;
!       r->status_line = "503 Service Temporarily Unavailable - Too many connections";
!       r->content_type = "text/html";
!       ap_discard_request_body(r);
! /*    ap_send_http_header(r); */
!               /* Is this for the case that "HEAD" is the action requested? */
!         if (! r->header_only) {
!             /* Basic fixed header. */
!             ap_rputs(
!           "\n"
!                 "\n"
!               "\n"
!                 "503 Service Temporarily Unavailable - Throttled \n"
!                 "\n\n"
!                 "\n"
!                 "\n"
!                 "\n"
!                 "\n"
!                 "\n"
!                 "\n"
!                 "\n"
!                 "
 \n"
!                 "\n"
!                 "おまえ初めてかここは?力抜けよ。
"
!               "やあ (´・ω・`)
ようこそ、バーボンハウスへ。  \n"
!                 "
\n"
!                 "
\n"
!                 "\n"
!                 "   ∧_∧ やあ 
 \n"
!               "   (´・ω・`)       /          ようこそ、バーボンハウスへ。 
 \n"
!               "  /∇y:::::::\   [‾‾]         このテキーラはサービスだから、まず飲んで落ち着いて欲しい。 
 \n"
!               "  |:::⊃:|:::::::::::::|   |──| 
 \n"
!               "‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾| うん、「また」なんだ。済まない。 
 \n"
!               "‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾|‾‾ 仏の顔もって言うしね、謝って許してもらおうとも思っていない。 
 \n"
!               "‾‾‾‾‾‾‾‾‾‾‾‾‾‾/| 
 \n"
!               "    ∇ ∇ ∇ ∇      /./|   でも、このスレタイを見たとき、君は、きっと言葉では言い表せない 
 \n"
!               "    ┴ ┴ ┴ ┴     / / .|   「ときめき」みたいなものを感じてくれたと思う。 
 \n"
!               "‾‾‾‾‾‾‾‾‾‾‾‾|/   |   殺伐とした世の中で、そういう気持ちを忘れないで欲しい 
 \n"
!               "‾‾‾‾‾‾‾‾‾‾‾‾     |   そう思って、このスレを立てたんだ。 
 \n"
!               "   (⊆⊇) (⊆⊇) (⊆⊇)      | 
 \n"
!               "     ||    ||    .||       |   じゃあ、注文を聞こうか。 
 \n"
!               "   ./|\  /|\  /|\
 \n"
!                 "
 \n"
!                 "
\n", r);
!
!             /* The real message for the user. */
!           ap_rputs(
!               "limitipconn モジュールがリクエストを拒否しました。
\n", r);
!           ap_rputs(
!               "同時セッション数が多すぎます。
\n", r);
!           ap_rputs(
!               "連打して無くても、「キレ」の悪いProxy配下でも起きるよ。
\n", r);
!           ap_rputs(
!               "Proxyのリソースももったいないんだから、用が済んだらさっさとセッション切ればいいのにね。
\n", r);
!           ap_rputs(
!               "「*timeout」系のパラメータでも眺めてみれば?\n", r);
!
!             /* Basic trailer. */
!             ap_rputs(ap_psignature("\n
\n", r), r);
!             ap_rputs("   
  
  Not Acceptable 受理不可
 \n", r);
!             ap_rputs("HTTP 503 \n", r);
!             ap_rputs("
\n", r);
!             ap_rputs("\n", r);
!             }
!     return DONE;
!
      } else {
          ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,
                       "mod_limitipconn: OK: Passed all checks");
| Tweets by RC31E | |||||||||
  | |||||||||
  | |||||||||


