改版履歴

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を指定しての通信を可能とした。

Cente HTTPd/c

HTTPcで、SSLサーバーの認証をしないための方法を追加

T_HTTPC_REQHEADERのverify_peerを0にする事で、安全ではないサイトへ強制的に接続する事も可能にした。

HTTPd修正

拡張子判定の際に、拡張子が見つからない場合に不正アクセスしてしまう件を修正。

HTTPdのメモリプール領域が4の倍数ではない件を修正。

http_requ_header_analysis()で、strncasecmp(a,b,sizeof("文字列"))のバグを修正。

httpd_util_itoa()で、sizeofの使い方がおかしい件を修正。

httpd_util_get_string_by_key関数で、不正なデータ長チェックを削除。

httpd_util_get_string_by_key関数で、URLデコード後に不正な領域にを書き込んでいるバグを修正。

httpd_util_url_decode関数で、バッファ長によるループ終了条件が不正だったのを修正。

httpd_resp_send_error関数で、エラーHTMLに記述ミスがあったのを修正。

HTTPc修正

http_communication関数の返すエラー値が誤っているバグを修正。

httpd_util_get_string_by_key関数で、URLデコード後に不正な領域にを書き込んでいるバグを修正。

httpd_util_url_decode関数で、バッファ長によるループ終了条件が不正だったのを修正。

Page 7 of 9