Tripletail

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

#+STARTUP: fnprompt
#+STARTUP: logdone
#+OPTIONS: ^:nil
#+TODO: UNRELEASED(u) | RELEASED(r)

Revision history for Tripletail

* RELEASED 0.69
CLOSED: [2025-03-13 Thu 11:39]
** =t/0.prereq.t=
=PadWalker= がインストールされていない環境で =make test= を実行すると
=t/0.prereq.t= のテストに失敗する不具合を修正した:
https://rt.cpan.org/Public/Bug/Display.html?id=162743

* RELEASED 0.68
CLOSED: [2025-03-12 Wed 15:55]
** TL::isDomainName
ユーザーが指定出来るドメイン名としては253文字以下が正しい為、255文字以下から253文字以下に修正した。
** =t/manifest.t=
=mlpod2html= がインストールされていない環境で =make clean= 後に =make test=
を実行すると =t/manifest.t= のテストに失敗する不具合を修正した:

META.json  view on Meta::CPAN

            "ExtUtils::MakeMaker" : "6.86"
         }
      },
      "runtime" : {
         "recommends" : {
            "Cache::Memcached" : "0",
            "DBD::Pg" : "0",
            "DBD::SQLite" : "0",
            "DBD::mysql" : "0",
            "FCGI" : "0",
            "PadWalker" : "0",
            "Text::CSV_XS" : "0"
         },
         "requires" : {
            "Compress::Zlib" : "0",
            "Crypt::CBC" : "0",
            "Crypt::Rijndael" : "0",
            "DBI" : "0",
            "Digest::SHA" : "0",
            "IO::Scalar" : "0",
            "LWP::UserAgent" : "0",

META.yml  view on Meta::CPAN

  directory:
    - t
    - inc
    - sample
recommends:
  Cache::Memcached: '0'
  DBD::Pg: '0'
  DBD::SQLite: '0'
  DBD::mysql: '0'
  FCGI: '0'
  PadWalker: '0'
  Text::CSV_XS: '0'
requires:
  Compress::Zlib: '0'
  Crypt::CBC: '0'
  Crypt::Rijndael: '0'
  DBI: '0'
  Digest::SHA: '0'
  IO::Scalar: '0'
  LWP::UserAgent: '0'
  List::MoreUtils: '0'

Makefile.PL  view on Meta::CPAN

                    'Test::Pod::Coverage' => '1.04'
                   }
               },
            runtime => {
                recommends => {
                    'Cache::Memcached'  => 0,
                    'DBD::Pg'           => 0,
                    'DBD::SQLite'       => 0,
                    'DBD::mysql'        => 0,
                    'FCGI'              => 0,
                    'PadWalker'         => 0,
                    'Text::CSV_XS'      => 0
                   },
                suggests => {
                    'DBD::InterBase'    => 0,
                    'DBD::ODBC'         => 0,
                    'DBD::Oracle'       => 0,
                    'MongoDB'           => 'v1.6',
                    'Time::Moment'      => 0
                   }
               }

doc/Tripletail.html  view on Meta::CPAN

<dt><a id="errorlog"><span class="pod_lang"><code class="pod_iseq_C">errorlog</code>

</span></a></dt>
<dd>
<pre class="pod_verbatim"><code>  errorlog = 1</code></pre>

<p>
<span class="pod_lang">エラー発生時にログに情報を残すかどうかを指定する。
1 が指定されればエラー情報を残す。
2 が指定されれば、エラー情報に加え、 CGI のリクエスト内容も残す(startCgi内でのエラーのみ)。
3 が指定されれば、ローカル変数内容を含んだ詳細なエラー情報に加えて(但し PadWalker が必要)、 CGI のリクエスト内容も残す。
0 であれば情報を残さない。
デフォルトは 1。

</span>
</p>

</dd>
<dt><a id="fcgilog"><span class="pod_lang"><code class="pod_iseq_C">fcgilog</code>

</span></a></dt>

doc/Tripletail.html  view on Meta::CPAN

<span class="pod_lang">エラー発生時に表示するスタックトレースの種類。'none' の場合は、スタック
トレースを一切表示しない。'<code class="pod_iseq_C">onlystack</code>' の場合は、スタックトレースのみを
表示する。'full' の場合は、スタックトレースに加えてソースコード本体並び
に各フレームに於けるローカル変数の一覧をも表示する。デフォルトは
 '<code class="pod_iseq_C">onlystack</code>'。

</span>
</p>

<p>
<span class="pod_lang">但しローカル変数一覧を表示するには <a href="http://search.cpan.org/perldoc/PadWalker">PadWalker</a> がインストールされてい
なければならない。

</span>
</p>

<p>
<span class="pod_lang">注意: 'full' の状態では、<code class="pod_iseq_C">stackallow</code> で許された全てのユーザーが、
ブラウザから全てのソースコード及び ini
ファイルの中身を読む事が出来る点に注意すること。

lib/Tripletail.pm  view on Meta::CPAN

	init
	ini
	inigroup
	errorlog
	errormail
	errormailtype
	errortemplate
	errortemplatecharset
	escapeJs
	escapeJsString
	PadWalker
	MemCached
	memcached
	mon
	fcgilog
	filelog
	imode
	sjis-imode
	ja
	printCacheUnlessModified
	setContentFilter

lib/Tripletail.pm  view on Meta::CPAN


=back

=item C<errorlog>

  errorlog = 1

エラー発生時にログに情報を残すかどうかを指定する。
1 が指定されればエラー情報を残す。
2 が指定されれば、エラー情報に加え、 CGI のリクエスト内容も残す(startCgi内でのエラーのみ)。
3 が指定されれば、ローカル変数内容を含んだ詳細なエラー情報に加えて(但し PadWalker が必要)、 CGI のリクエスト内容も残す。
0 であれば情報を残さない。
デフォルトは 1。

=item C<fcgilog>

  fcgilog = 1

FCGI 関連の動作をログに記録するかどうかを指定する。
1 が指定されれば記録する。
0 であれば記録しない。

lib/Tripletail.pm  view on Meta::CPAN

=item C<stacktrace>

  stacktrace = full

エラー発生時に表示するスタックトレースの種類。'none' の場合は、スタック
トレースを一切表示しない。'C<onlystack>' の場合は、スタックトレースのみを
表示する。'full' の場合は、スタックトレースに加えてソースコード本体並び
に各フレームに於けるローカル変数の一覧をも表示する。デフォルトは
 'C<onlystack>'。

但しローカル変数一覧を表示するには L<PadWalker> がインストールされてい
なければならない。

注意: 'full' の状態では、C<stackallow> で許された全てのユーザーが、
ブラウザから全てのソースコード及び ini
ファイルの中身を読む事が出来る点に注意すること。

=item C<stackallow>

  stackallow = 192.168.0.0/24

lib/Tripletail/Error.pm  view on Meta::CPAN

use warnings;
use Data::Dumper;
#use Smart::Comments;
use Tripletail;
use overload
  '""'     => \&_stringify,
  fallback => 1;

sub _POST_REQUEST_HOOK_PRIORITY() { 2_000_000_000 } # Debug よりも後

my $PADWALKER_AVAILABLE; # PadWalker が利用可能であるかどうか。undef / 1 / 0

my $VARIABLE_LENGTH_LIMIT = 32 * 1024; # 1変数あたりの表示する最大長 (バイト)

my $DEFAULT_ERROR_TEMPLATE = &__load_default_error_template();

my $TRACE_ALLOWANCE_OF_CURRENT_REQUEST;

# 最後に発生した DB のエラー。内容は任意のハッシュ。
our $LAST_DB_ERROR;

lib/Tripletail/Error.pm  view on Meta::CPAN

		$this->{message} = $new;
	}
	$this->{message};
}

sub _fetch_frames {
	my $this = shift;

	if (not defined $PADWALKER_AVAILABLE) {
		eval {
			require PadWalker;
		};
		$PADWALKER_AVAILABLE = ($@ ? 0 : 1);
	}

	my $found_die_handler;
	my $level = 0;
	my $pad_level = 0;
	
	$this->{appear} = 'sudden'; # sudden/usertrap
	for (my $i = 0; my @c = caller $i; $i++) {

lib/Tripletail/Error.pm  view on Meta::CPAN

		}

		$this->{suppress_internal} and not $found_die_handler
		  and next; # まだ die ハンドラが見えていない

		my $frame = Tripletail::Error::Frame->new(
			$level++, $filename, $line, $sub);

		if ($this->{show_vars} and $PADWALKER_AVAILABLE) {
			# ローカル変数を取得
			my $mines = PadWalker::peek_my($pad_level);
			my $ours  = PadWalker::peek_our($pad_level);

			while (my ($name, $ref) = each %$mines) {
				$frame->set_variable("my $name", $ref);
			}

			while (my ($name, $ref) = each %$ours) {
				$frame->set_variable("our $name", $ref);
			}

			#my @args;

lib/Tripletail/Error.pm  view on Meta::CPAN

              q[if ($@) {] . "\n" .
              q[  die $@;  # 再度エラーを発生させる] . "\n" .
              q[}</pre>],
           );
    }
	elsif (not $PADWALKER_AVAILABLE) {
		$t->node('detail')->node('vars-unavail')->setAttr(
			REASON => 'raw',
		   );
		$t->node('detail')->node('vars-unavail')->add(
			REASON => '<a href="http://search.cpan.org/~robin/PadWalker/">PadWalker</a> が利用不可能です。');
	}
	else {
		foreach my $name (sort {$a cmp $b} keys %{$frame->vars_shallow}) {
			$t->node('detail')->node('vars-avail')->node('var')->add(
				NAME  => $name,
				VALUE => $frame->vars_shallow->{$name},
			   );
		}
		$t->node('detail')->node('vars-avail')->add;
	}



( run in 1.015 second using v1.01-cache-2.11-cpan-05444aca049 )