Tsukiji Systems
RSS1.0


googleで
サイト内検索
このブログ
を検索!
  help

巻き戻し中。

2012年
10月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31


2012-10-13(土) 改造 [長年日記]

_ PC mod_limitipcpnn

はいはい、こっちもエラーの画面を書き換えましたよっと。バーボンハウスw

こっちの場合は、元々戻り値に「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");


アクセスカウンター!
累計:
本日:
昨日:
最近のツッコミ