Cente HTTPd/c
【HTTPd修正】
・MD5モジュールの変更
MD5モジュールを削除し、Cente Compact Cryptoに置き換えた。
【HTTPc修正】
・WebSocketクライアントに対応。
WebSocketクライアントに対応した。
・HTTPヘッダの設定追加。
HTTPヘッダでAcceptを設定できるようにした。
・MD5モジュールの変更
MD5モジュールを削除し、Cente Compact Cryptoに置き換えた。
【HTTPd修正】
・MD5モジュールの変更
MD5モジュールを削除し、Cente Compact Cryptoに置き換えた。
【HTTPc修正】
・WebSocketクライアントに対応。
WebSocketクライアントに対応した。
・HTTPヘッダの設定追加。
HTTPヘッダでAcceptを設定できるようにした。
・MD5モジュールの変更
MD5モジュールを削除し、Cente Compact Cryptoに置き換えた。
【HTTPd修正】
・SSL設定をカスタマイズするAPIを追加。
HTTPS接続時に個別にセッションチケットなどを設定するAPIを追加した。
・HTTPヘッダをカスタマイズするAPIを追加。
独自にレスポンスヘッダを付加したり、独自にリクエストヘッダをパースするAPIを追加した。
・使用メモリ低減
SSLを使用しないセッションでもSSL用のメモリを確保していたので修正した。
・認証ヘッダ解析を修正
認証ヘッダ解析が正しく動作しないことがあるのを修正した。
・軽微な修正
軽微なコード修正を行った。実動作には影響ない。
【HTTPc修正】
・HTTPヘッダをカスタマイズするAPIを追加。
独自にリクエストヘッダを付加したり、独自にレスポンスヘッダをパースするAPIを追加した。
・障害情報 Cente010-0004 を修正。
HTTPScがキープアライブ動作中に再接続に失敗することがあるのを修正した。
・軽微な修正。
軽微なコード修正を行った。実動作には影響ない。
【HTTPd修正】
・軽微な修正
ワーニング抑制など軽微なコードの修正を行った。実動作には影響ない。
【HTTPc修正】
・SSL設定をカスタマイズするAPIを追加
HTTPS接続時に個別にSSLバージョンや暗号スイートなどを設定するAPIを追加した。
・TLSセッション再開に対応
二回目以降のHTTPS接続時にTLSハンドシェイク時間を短縮するTLSセッション再開(Session resumption)に対応した。
・軽微な修正
ワーニング抑制、処理の効率化など軽微なコード修正を行った。実動作には影響ない。
【その他】
・ctlibモジュールの更新(Cente障害情報:010-0003)
Cente HTTPd/c Ver1.60同梱のctlibモジュールでは、cttime.cが2038年以降の日付を正しく処理できなかった。ctlibモジュールを更新した。
【HTTPd修正】
・MD5のソースコード変更。
MD5の計算をCente Compact Cryptoの関数を使用するようにした。
・Cente SSL非対応。
Cente SSLをサポートから外した。
【HTTPc修正】
・MD5のソースコード変更。
MD5の計算をCente Compact Cryptoの関数を使用するようにした。
・Cente SSL非対応。
Cente SSLをサポートから外した。
・プロトコルスタック非依存化。
プロトコルスタックに依存しないようにTCP関連関数はカスタマイズ部に新設したラッピング関数を呼び出すようにした。
・REST API対応。
REST APIに対応した。
・HEADメソッド対応。
HEADメソッドに対応した。
・204応答受信処理修正。(Cente障害情報:010-0002)
204応答受信時、APIが常にタイムアウトエラーを返していたのを修正した。
【HTTPd修正】
・Cente Compact SSLd対応。
Cente Compact SSLdと組み合わせて使用できるようにした。
・HTTPdタスク名変数の使用。
ctacre_tsk()でタスク生成時に指定するタスク名に、HTTPD_TASK_NAME変数が使用されていなかったため、使用するように修正。
・特定の環境におけるビルドエラー対応。
HTTPD_DT_FSYS定義の値が0の場合にサンプルコードでビルドエラーしていた問題を修正した。
・特定の環境におけるワーニング対応。
特定のビルド環境でワーニングがでることがあったので修正した。
【HTTPc修正】
・コード整形。
行末の余分なスペースの削除、タブとスペースの混在を修正した。
【HTTPd修正】
受信したヘッダのパースに失敗する事があるバグを修正。
受信したヘッダが、someheader: str=valueのように、"が無くかつ改行が続く場合に、パースに失敗するバグを修正。
(http_common_get_data_from_headerの修正)
【HTTPc修正】
プロキシサーバ対応。
プロキシサーバ経由で通信を行えるようにした。(認証、SSLにも対応)
受信したヘッダのパースに失敗する事があるバグを修正。
受信したヘッダが、someheader: str=valueのように、"が無くかつ改行が続く場合に、パースに失敗するバグを修正。
(http_common_get_data_from_headerの修正)
Basic認証が失敗した時に、1回余分にアクセスする事があるバグを修正。
Basicに認証に失敗すると、同じユーザー名・パスワードで再度アクセスを行い、計2回の失敗アクセスを行ってしまう。
queryがあった時に、Digest認証できないバグを修正。
queryがあった時のDigest値の計算ルーチンのバグ修正。それにともない、Digest値計算用のテンポラリバッファとして、T_HTTPSOCKETにdigest_uriを追加。
use_total_tmoを1にしても、指定した時間でリターンしないバグを修正。
httpc_send_dat()で、タイムアウト値を正しく減算していなかった。
httpc_get/post/get_with_sock/post_with_sockの引数チェックを強化。
・引数のヌルポインタチェックを追加。
・T_HTTPC_REQHEADERのuriが空文字列かどうかのチェックを追加。
queryの文字として、0x80-0xffの範囲の文字を使えなかったのを修正。
http_common_url_encode()で、0x80-0xffの範囲の文字を正しく変換できるように修正。
queryが内部バッファより長くなると、正しく送信できないバグを修正。
queryのトータル長がT_HTTPSOCKET->tmp_bufのサイズより大きくなると 正しくqueryが送られない。(httpc_url_encode_send()の修正)
Cookieを正しくパースできない事があるバグを修正。
httpc_parse_setcookie()の以下の不具合を修正。
・一行に複数のcookieが,で連結されている場合にパースできない。
・expiresの値を正しく取得できない
keepalive可能な場合でも、通信を切ってしまう事があるのを修正。
サーバがHTTP1.1でConnectionヘッダを送ってこない場合には、keep-aliveと見なすべきだが、HTTPc側でkeep-aliveを行わずに通信を切っていた。
httpc_get_with_sock()/post_with_sock()で認証方法をAUTH_DIGESTからAUTH_BASIC_ONCEに変更すると、アクセスに失敗する。
最初Digest認証を行った後にAUTH_BASIC_ONCEを指定すると、送られるべきAuthorizationヘッダが送られず、アクセスにに失敗する。
送信するCookieの後ろに余分な;が付く。
動作に支障は無いと考えられるが、最後の;を送らないように修正。
ドキュメント修正
本リリースは、ドキュメントの修正のみで、ソースコードの修正はありません。
バージョンアップにおける注意事項(HTTPd/c).pdfにおいて、「変更されたファイル」の漏れ・記述間違いがあったので、全て修正。
HTTPd/c改版履歴(本HTML)のHTTPd ver1.50のHTTPd修正において、「通信エラーが発生した時に次の通信に失敗する事がある不具合を修正」の記述が抜けていたので、追加記述。
HTTPd修正
CGIで、404などの場合にでも、任意のエラーページを返す事ができるようにした。
CGI内で、httpd_send_http_prolog()を呼ばなかった時にのみ、デフォルトのエラーページが送られる。
Locationヘッダを正しく送信できない不具合修正。
outheader->locationに文字列がセットされていても、その文字列を正しくブラウザに送っていなかった。
CGIやEmbDataのリソース名の制限を無くした。
CGIやEmbDataのリソース名に"."が入っていなくても動作するようにした。
404等のエラーコード送信時でも、TCPを切断せずに、可能な限りkeepaliveするようにした。
以前はエラー時には必ず
・HTTP1.0で送信
・コネクションを切る
としていたが、 可能な限りkeepaliveするように変更。
HTTPc修正
httpc_set_socketが無駄に複数回呼ばれる事があるのを修正。
httpc_connect()内でhttpc_set_socket()を呼んでいたが、一度のhttpc_get()でhttpc_connect()が複数呼ばれる事があり、その度にhttpc_set_socket()が呼ばれていた。
一回一回のパケット受信タイムアウトではなく、サーバーとのトータルの通信タイムアウトを指定できるようにした。
HTTPC_USE_TOTAL_TIMEOUTとHTTPC_TOTAL_TIMEOUTを追加。詳しい使い方は、マニュアルを参照のこと。
cepが解放されない事があるのを修正
httpc_cls_cep()で失敗(タイムアウトなど)すると、cepの解放が行われないのを修正。
マルチパートデータのPOSTのサンプルを追加。
http/sample/cthttpc_sample2.cを追加。
Basic認証時に送る文字列を、"Authorization: BASIC"から"Authorizatino: Basic"に変更
一部の組み込みwebサーバーなどで、正しく動作しないケースが見つかった。RFC上はどちらでも良い事になっているが、多くのブラウザに合わせて、"BASIC"ではなく"Basic"を送るように変更。
HTTPd修正
Connection: keep-alive のヘッダを送信するときに、不正なタイムアウト値を送信していたので削除
Digest認証で、クライアントの最初のアクセスのときの認証にもstaleフラグをtrueにしていたバグを修正
SSLを導入すると、独自md5ルーチンでビルドエラーしてしまうのを修正
HTTPc修正
HTTP1.1対応
Hostヘッダ追加
キープアライブ対応
Chunkエンコーディング対応
Chunkエンコーディング対応に伴い、ボディ受信関数の構造を変更
通信のポート番号を指定出来るようにした
通信のタイムアウト指定出来るようにした
SSL通信のときに、サーバから送られてきた証明書内のホスト名をチェックするフラグを追加(T_HTTPC_REQHEADERのverify_hostname)
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に戻り値を追加
Page 1 of 2