改版履歴

Cente SNTP(TCP/IPv4 オプション)

stratum=0のNTPサーバから時刻を取得できない不具合修正

独自にNTPサーバを構築した場合など、参照サーバなし(stratum=0)のNTPサーバに対して現在時刻を取得できなかったので修正した。

NTPサーバのバージョンチェックが正しく行われない不具合修正

NTPサーバのバージョンが1より高いNTPサーバに対して現在時刻を取得できなかったので修正した。

アドレスエラーが発生することがある不具合修正

Ver.1.13以降のCente TCP/IPv4と組み合わせて使用すると、NTPパケット受信時にアドレスエラーが発生することがあった。これを修正した。

Cente HTTPd/c

HTTPd修正

Connection: keep-alive のヘッダを送信するときに、不正なタイムアウト値を送信していたので削除

Digest認証で、クライアントの最初のアクセスのときの認証にもstaleフラグをtrueにしていたバグを修正

SSLを導入すると、独自md5ルーチンでビルドエラーしてしまうのを修正

HTTPc修正

HTTP1.1対応

Hostヘッダ追加

キープアライブ対応

Chunkエンコーディング対応

Chunkエンコーディング対応に伴い、ボディ受信関数の構造を変更

通信のポート番号を指定出来るようにした

通信のタイムアウト指定出来るようにした

SSL通信のときに、サーバから送られてきた証明書内のホスト名をチェックするフラグを追加(T_HTTPC_REQHEADERのverify_hostname)

Cente HTTPd/c

HTTP共通ルーチン修正

T_HTTP_AUTH_INFOの名称をT_HTTP_AUTH_TYPEに変更

Digest認証で使用するMD5ルーチンを、cryptoのものから独自実装へ変更し、HTTPd/c共通ルーチン化 HTTPcDigest認証対応のため、HTTPdで使用していたDigest認証ルーチンの一部をHTTP共通ルーチンへ移動

HTTPd修正

MD5独自ルーチン採用に伴う修正

CGI/SSI/HTMLの追加ルーチンで、エラーチェックを強化

認証関係のソースコードを一部整理

HTTPc修正

Cookie送受信に対応

Digest認証に対応

Hostヘッダに対応

httpc_iniに戻り値を追加

Cente SMTP/POP

SMTPAUTHのCRAM-MD5とDIGEST-MD5に対応

smtpc_set_auth()のtypeを追加。smtpc_set_serverstr()とsmtpc_set_realm()を作規に作成。

Centecryptoに依存しないようにした

md5/ctmail_md5.cとして、md5関数を独自実装

添付ファイル名を取得できるようにした(日本語も可)

T_MIME_ATTACHINFOに、filenameを追加

受信メールの日本語の件名をデコードできるようにした

mime_get_msghdrで、subjectをJISからSJISへ変換した物を返すようにした

Cente SMTP/POP

1tick=1msec環境で、PPPパケットの再送が5秒おきに発生する

1tick=10msecを前提とした部分があり、0.5秒おきに発生する再送が、1tick=1msec環境では5秒おきに発生していたので修正した。

MPPEで、パケット到着順が逆になるとそれ以降の通信ができなくなる。

特にインターネット環境では、ときどきパケットの到着順が前後することがある。MPPE通信のシーケンス番号が0に戻るときに到着順が前後すると、それ以降の通信ができなくなっていたので対応した。

Cente HTTPd/c

HTTPd修正

HTTPd内部での通信シーケンスを一新し、エラーフローが一箇所で行えるようになるように修正

Chunkエンコーディング機能を実装

POSTされたデータを保存する箇所をカスタマイズ化(httpd_save_post_data関数)

Digest認証で、nonce値をサーバで保存し、指定された時間間隔で更新するように修正

クライアントから複数行にまたがるヘッダを送られたときに解析できなかったバグを修正

MPF領域を使用禁止にしたT_INHEADERおよびT_OUTHEADER構造体は、文字列の実体をその構造体の中に持つようにした。

T_HTTPD_INTERNAL_INFO構造体を追加。T_INHEADERでもT_OUTHEADERでもない、HTTPd内部で使用する変数を、この構造体内にまとめた。

HTTPdでタスクごとに使用する構造体をT_HTTPD_SESSION構造体にまとめ、static領域で実体を宣言するようにした。

Cookieヘッダのパースにバグがあったのを修正。パース後のCookie情報を、各Cookieごとの情報と複数のCookie全体に対する情報とに区別した。

HTTPc修正

T_HTTPC_RSPHEADER構造体に、メンバbody_file_pathを追加。受信したボディ部のファイルシステムへの保存を実装した。

body用に用意したバッファのサイズが0のときも、HTTP通信を可能にした。

body用に用意したバッファが不足した場合も、すべてのボディ部を受信してからHTTPのコネクションを切るように修正。

Cente SMTP/POP

SMTPAUTHのうち、LOGINとPLAINに対応

smtpc_set_auth()を新規に追加

tcp_cls_cep用のタイムアウト値を追加

ctpopc_cfg.hにPOPC_TCPCLS_TMOUTを追加

APOPに対応

popc_login_apop()を新規に作成

一部サーバーで添付ファイルの送信に失敗するのを修正

添付ファイルがある時に、メールのヘッダとボディの間に改行が入っていなかった

Cente HTTPd/c

HTTPd修正

HEADメソッドでは認証が通らないバグを修正

POSTメソッドでは認証が行われないバグを修正

qop値のパースの際にブラウザをチェックしてそれぞれの動作に合わせて処理を行っていたが、IE・NetScape以外のブラウザではパースできないケースがあった。ブラウザに関わらずqop値をパースで切るように修正。

http認証でclient_urlの格納バッファをHTTPD_LONGSTR_MAXで取るように修正

http認証で、URIがバッファに格納できない場合に414を返すように修正

OPTIONメソッドの処理シーケンスを追加

httpd_request関数呼出し後にエラーした後にメモリを開放し忘れていたので、修正

HTTPc修正

T_HTTPC_REQHEADER構造体に、メンバipifを追加。IPIFを指定しての通信を可能とした。

Page 6 of 9