

第1.2a版と過去の版との主な違い
目次- 1.0.0 factotum へのパッチはあてない。
- 2.0.0 HTTPS のサポート
- 3.0.0 実行ハンドラの
$target
- 4.0.0 namespace.cgi による名前空間の編成の時期
- 5.0.0 httpd の起動オプション
- 6.0.0 httpd のライブラリのバグ
2002/10/03
factotum へのパッチはあてない。
Pegasus 1.2 ではユーザ web でサービスを行うために factotum にパッチをあてていましたが、筆者の理解不足でした。パッチは必要ありませんし、望ましくもありません。mon を工夫すれば解決します。
Pegasus 1.2 と 1.2a の主な違いは mon.c です。
Pegasus の本体の違いは僅かで 、httpd を TLS で ユーザ none によってサービスできるようにしました。
1.1版は1.0版を Plan9 4ed に移植しただけで仕様上の違いは存在しない。
また 1.2a版は 1.2 版のパグ修正版であり、仕様上の違いはない。
以下に 1.2版と1.0版の違いを載せます。
HTTPS のサポート
Pegasus 1.2 版では HTTPS がサポートされています。実際のサービスをどのユーザの名前で行うかに関しては3つの選択肢があります。
- hostowner の権限のままサービスを行う。
これは危険であり採用しずらい。
- none に変身してサービスを行う。
実際に HTTPS が必要になるのは CGI を使っての書き込みです。none の権限で書き込みアクセスを許すのは抵抗がある。
- ユーザ web に変身してサービスを行う。
これが最も望ましい。
実行ハンドラの $target
Pegasus 1.0 では /etc/handler
の中に# path mimetype ramfs execpath arg ... *.http - 0 $target *.html text/html 1 $target *.dx_html text/html 0 /bin/dxの最後の行のように
$target
が無い場合には、/bin/dx
の後に $target
を付加して解釈したのですが、これは廃止します。$target
が必要なら省略しないで書いて下さい。ですから次のように書きます。
# path mimetype ramfs execpath arg ... *.http - 0 $target *.html text/html 1 $target *.dx_html text/html 0 /bin/dx $target
namespace.cgi による名前空間の編成の時期
Pegasus 1.0 では CGI が実行される直前にnamespace.cgi
が参照されていました。そのために実行ハンドラの中にユーザ定義のハンドラを使用できませんでした。(これはむしろバグと言った方がよいですね。)
Pegasus 1.2 ではハンドラを判定する段階で
namespace.cgi
を参照する事にしたので実行ハンドラの中にユーザ定義のハンドラが使用できるようになりました。
httpd の起動オプション
サーバモードで-a が廃止になり、代わりに -p が導入されました。 -c が追加され HTTPS が使えるようになりました。 -f が追加されました。