D. J. Bernstein
TCP/IP
ucspi-tcp

ucspi-tcp の以前のバージョンからのアップグレード

0.84 から 0.86 や 0.87 へ

0.86 では全面的な内部変更があります。 ほとんど全てのコードが書き直されています。

tcpclient, tcpserver, rblsmtpd は DNS 検索を行う際に djbdns の DNS ライブラリを使用するようになりました。これは、信頼性を向上し、メモリの消費を削減し、新しい 名前の修飾(name-qualification) 機能 を追加します。 ただし、私のライブラリではなくシステムの res ルーティンによって提供された他のリゾルバの機能に依存しているものが中にはあると考えられます。 DNS の振る舞いで何か違いに気づいたら、私に知らせてください。

tcprulescheck の使い方は変わりました。 コマンドライン引数の変わりに環境変数を使います。

rblsmtpd-R オプションは -c になりました。 -b-c を使っているのでしたら、-r の前にあるか確認してください。

以前の antirbl プログラムは無くなりました。 rblsmtpd+antirbl の組合わせを -r-a オプションの付いた一つの rblsmtpd に変えるべきです。

以前の fixcr プログラムは無くなりました。 新しくて使いやすい fixcrio プログラムがあります。

現在、全てのプログラムは他のプログラムを走らせるのに execvp の代わりに私の pathexec ライブラリを使用しています。 #!/bin/sh の無いシェルスクリプトを書いていて、それにもかかわらず /bin/sh を呼び出すために execvp を当てにしているのでしたら、pathexec (あるいは execve) と一緒に動くスクリプトの先頭に #!/bin/sh を挿入しなければならないでしょう。

http@ はブラウザの真似としての振る舞いが少し改善されました。 HTTP サーバに Host を送ります。 場合によっては、このことにより応答が変わります。

tcpclienttcpserverの将来のバージョンではデフォルトで -D を使うかも知れません。 何かの理由で -d を使いたいのでしたら、それを明示的に設定してください。

tcpserver には envuidgid によって設定される環境変数を読む新しい -U オプションがあります。 数字の uid と gid を写す必要がないように、多分 -u-g の代わりにこのオプションを使いたいでしょう。

0.86 や 0.87 から 0.88 へ

tcpclient は複数の IP アドレスへの接続するための新しい手順を使います。 2秒のタイムアウトで各アドレスを試みます。それから、58秒のタイムアウトでタイムアウトしたそれぞれのアドレスを再び試みます。 これはアドレスの一部が反応しないときに呼び出し時間を徹底的に減らします。 (システムがサポートしている複数アドレスへの接続機能はよりよくさえあるでしょう) しかし、誰かが古い動作に頼っていることは考えられるでしょう。
訳:滝澤 隆史
Last modified: Sun Nov 19 22:47:40 2000