改版履歴

Cente HTTPd/c

【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モジュールを更新した。

Cente HTTPd/c

【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が常にタイムアウトエラーを返していたのを修正した。

Cente HTTPd/c

【HTTPd修正】
・Cente Compact SSLd対応。
Cente Compact SSLdと組み合わせて使用できるようにした。
・HTTPdタスク名変数の使用。
ctacre_tsk()でタスク生成時に指定するタスク名に、HTTPD_TASK_NAME変数が使用されていなかったため、使用するように修正。
・特定の環境におけるビルドエラー対応。
HTTPD_DT_FSYS定義の値が0の場合にサンプルコードでビルドエラーしていた問題を修正した。
・特定の環境におけるワーニング対応。
特定のビルド環境でワーニングがでることがあったので修正した。
【HTTPc修正】
・コード整形。
行末の余分なスペースの削除、タブとスペースの混在を修正した。

Cente HTTPd/c

【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の後ろに余分な;が付く。
動作に支障は無いと考えられるが、最後の;を送らないように修正。 

Cente HTTPd/c

ドキュメント修正

本リリースは、ドキュメントの修正のみで、ソースコードの修正はありません。

バージョンアップにおける注意事項(HTTPd/c).pdfにおいて、「変更されたファイル」の漏れ・記述間違いがあったので、全て修正。

HTTPd/c改版履歴(本HTML)のHTTPd ver1.50のHTTPd修正において、「通信エラーが発生した時に次の通信に失敗する事がある不具合を修正」の記述が抜けていたので、追加記述。

Cente HTTPd/c

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"を送るように変更。

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 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 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 1 of 2

Social Media