| ) |
| htype, handler[, dir]) |
この関数を使うと動的にハンドラを追加できます。htype は、たとえば
"PythonHandler" のように、任意の (ただしフィルタハンドラや接続ハンドラは
除きます) Apache リクエストハンドラのディレクティブ名が入った文字列です。
handler はモジュールやハンドラ関数の名前が入った文字列です。
dir はオプションで、sys.path に追加するディレクトリ名の
入った文字列です。ディレクトリ名を指定しない場合、もしすでに同じタイプの
ハンドラが登録されていれば、その設定を継承します。PythonPath
ディレクティブが有効であるばあい、sys.path はPythonPath
の設定だけに従います (ディレクトリの追加は行わず、dir は無視されます)。
この関数を使って追加したハンドラは、リクエストの終了までしか存続しません。 あるハンドラの内部で同じタイプのハンドラをさらに追加してもかまいませんが、 その場合は無限ループを形成しないように気を付けねばなりません。
動的なハンドラ登録はコードの次の振舞いを動的に変更できる便利なテクニックです。
典型的な例は、認証のレベルに応じて異なるPythonHandler を切替えるような
PythonAuthenHandler でしょう:
if manager:
req.add_handler("PythonHandler", "menu::admin")
else:
req.add_handler("PythonHandler", "menu::basic")
| methods[, reset]) |
Allowed: ヘッダに渡されます。Apache は何らメソッド制限に対する操作を
行わず。リストはただ単にヘッダの構築に使われるだけです。実際にメソッドを制限する
ロジックはハンドラコードで書かねばなりません。
methods は文字列からなる配列です。reset が 1 の場合、
最初にメソッドのリストを消去します。
| ) |
| ) |
| ) |
Python*Handler
および PythonOption の設定を除いた内容の入ったテーブルオブジェクトへの
参照を返します (PythonOption の設定はreq.get_options()
で取得できます)。テーブルのキーはディレクティブ名になり、テーブルの値は
ディレクティブの値 (あれば) になります。
| [type, str_is_ip]) |
type 引数は以下のような値に指定できます:
apache.REMOTE_HOST DNS を参照します。Apache の
HostNameLookups がoff の場合や、ホスト名を特定できなかった
場合には None を返します。
apache.REMOTE_NAME (デフォルト) DNS 名があれば返し、
なければ IP アドレスを (10進ドット表記の文字列で) 返します。
apache.REMOTE_NOLOOKUP DNS 名の参照を行わず、IP アドレスを
返します。注意: 以前の呼び出しで DNS を参照した場合、その結果としてキャッシュ
されたホスト名を返します。
apache.REMOTE_DOUBLE_REV 二重逆引きを強制的に行います。
失敗すると None を返します。
str_is_ip をNone にしたり省略したりすると、戻り値は
DNS 名または IP アドレスのいずれかを表現した文字列になります。
str_is_ip 引数を None 以外の値にすると、
戻り値は(address, str_is_ip) からなるタプルになります。
このとき、address が IP アドレスを示す文字列であれば、
タプルの str_is_ip はゼロ以外の値になります。
それ以外の場合には None を返します。
| ) |
PythonOption ディレクティブで設定したオプションの入った
テーブルオブジェクトへの参照を返します。
| new_uri) |
httpd サーバは、新たなリクエストオブジェクトと全てのリクエスト
フェイズを生成して内部的なリダイレクションを実現します。内部リダイレクションの
中では、req.prev にリダイレクト元のリクエストオブジェクトへの参照
が入ります。
| message[, level]) |
ap_log_rerror 関数へのインタフェースです。
message はエラーメッセージの入った文字列で、level
は以下のフラグ定数のいずれかでなければなりません:
APLOG_EMERG
APLOG_ALERT
APLOG_CRIT
APLOG_ERR
APLOG_WARNING
APLOG_NOTICE
APLOG_INFO
APLOG_DEBUG
APLOG_NOERRNO
リクエストオブジェクトへの参照がない状態でログを記録したければ、 apache.log_error 関数を使ってください。
| ) |
require ディレクティブの引数に指定した文字列からなる
タプルを返します。
例えば、Apache の設定が以下のようになっているとすると:
AuthType Basic require user joe require valid-user
('user joe', 'valid-user')
を返します。
| [len]) |
クライアントから最大len バイトのデータを直接読み出し、読み出した データを文字列にして返します。len 引数を省略するか、負の値に指定すると、 クライアントから提供される全てのデータを読み出します。
この関数はApacheの Timeput 設定ディレクティブの影響を受けます。
クライアントからデータを読み出す際にTimeout に指定した時刻を
超過すると、読み出し操作を中断してIOError を送出します。
この関数ではクライアントが Content-length ヘッダを提供するものと
想定しています。Content-length ヘッダがなければ、
Content-length: 0 であるかのように扱います。
Content-length が誤った値である場合、この関数はクライアントが提供
できる以上のデータを読みだそうとして、その結果 Timeout に到達するまで
処理をブロックさせる可能性があります。
| [len]) |
| [sizehint]) |
| callable[, data]) |
後処理 (cleanup) 用の関数を登録します。 callable は任意の呼び出し可能
オブジェクトにできます。オプションの引数 data は任意のオブジェクトに
できます (デフォルトではNone です)。callable は、リクエストが
終了した直後でかつApache が実際のリクエストレコードを破壊する直前に、data
を引数にして呼び出されます。
リクエストオブジェクトを data に渡しても問題はありませんが、 後処理を実行している時にはリクエスト処理はほとんど完結しており、 クライアントへの書き込みのような操作には全く意味がないということを 心に留めておいてください。
後処理中にエラーが生じた場合、そのことを必ずエラーログに記録せねばなりません。 後処理におけるエラーはリクエストの処理に何ら影響を及ぼさないため、後処理 におけるバグを追求しにくくなるからです。
後処理の実行に入る前にサーバがシャットダウンを始めると、 後処理が実行されない可能性があります。
| path[, offset, len]) |
この関数はクライアントにファイルを送信する最も効率的な方法です。
| string[, flush=1]) |
| ) |
| len) |