Cente SMTP/POP
SMTPcのIPv6対応
以下のAPIを追加。
smtpc_set_server_ip46
smtpc_set_server6
POPcのIPv6対応
以下のAPIを追加。
popc_login_ip46
popc_login_apop_ip46
SMTPcのIPv6対応
以下のAPIを追加。
smtpc_set_server_ip46
smtpc_set_server6
POPcのIPv6対応
以下のAPIを追加。
popc_login_ip46
popc_login_apop_ip46
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"を送るように変更。
SNTPv4対応
SNTPcのバージョン4に対応した。それに伴い、マニュアルも更新。
IPv6対応
IPv6に対応した。
SNTPポート123の不具合修正
SNTPcのリクエスト送信ポートと、NTPサーバからの応答受信ポートに同じポート123を使用してUDP通信を行っていたため、NTPサーバ応答受信待機中にSNTPcリクエストを送信することができなかった。RFC上の仕様だったがRFC4330で修正されていたのでそのように修正。
IPv6対応
IPv6に対応した。それに伴い、マニュアルも更新。
不具合修正
SYSLOG_IPID_NOを変更するとコンパイルできなくなる不具合を修正
SMTPcのIPv6対応
以下のAPIを追加。
smtpc_set_server_ip46
smtpc_set_server6
POPcのIPv6対応
以下のAPIを追加。
popc_login_ip46
popc_login_apop_ip46
stratum=0のNTPサーバから時刻を取得できない不具合修正
独自にNTPサーバを構築した場合など、参照サーバなし(stratum=0)のNTPサーバに対して現在時刻を取得できなかったので修正した。
NTPサーバのバージョンチェックが正しく行われない不具合修正
NTPサーバのバージョンが1より高いNTPサーバに対して現在時刻を取得できなかったので修正した。
アドレスエラーが発生することがある不具合修正
Ver.1.13以降のCente TCP/IPv4と組み合わせて使用すると、NTPパケット受信時にアドレスエラーが発生することがあった。これを修正した。
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に戻り値を追加
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へ変換した物を返すようにした
1tick=1msec環境で、PPPパケットの再送が5秒おきに発生する
1tick=10msecを前提とした部分があり、0.5秒おきに発生する再送が、1tick=1msec環境では5秒おきに発生していたので修正した。
MPPEで、パケット到着順が逆になるとそれ以降の通信ができなくなる。
特にインターネット環境では、ときどきパケットの到着順が前後することがある。MPPE通信のシーケンス番号が0に戻るときに到着順が前後すると、それ以降の通信ができなくなっていたので対応した。
Page 6 of 9