Cente TCP/IPv4
DHCPでIP取得に時間がかかることがある
プロトコルスタックのタスク優先度より高いタスクがelap_start()、elap_stop()を呼ぶ環境の場合、DHCPサーバが存在しない環境に接続し、その後DHCPサーバが存在する環境に接続しなおしたとき、IP取得に時間がかかっていた。これを修正した。
ARP Requestの送信元IPアドレスが0.0.0.0になる
ARPキープアライブ機能が送信するARP Requestの送信元IPアドレスが0.0.0.0になる場合があったので修正した。
マルチキャストPINGに対する応答が不正
マルチキャスト宛に対するPINGを受けたとき、その応答の送信元アドレスがマルチキャストアドレスになっていたので修正した。
長さが不正なTCPパケットを受信すると不正なメモリアクセスが発生する
IPヘッダの長さフィールドの値が実際の長さより短い値となっていたとき、TCPデータ長を正しく認識できず不正なメモリアクセスが発生していた。これを修正した。
TCPACKを大量に送信することがある
TCP受信バッファの空きが少ないとき、TCP受信APIで短いデータを繰り返し読み出すと、そのたびにTCPACKが送信されることがあったので修正した。
tcp_(v)cre_rep()がエラーすることがある
TCP切断後、tcp_del_cep()、tcp_del_rep()で端点を削除し、すぐにtcp_(v)cre_rep()で着信端点を作成するとE_OBJエラーが返ることがあったので修正した。
TCPデータをすべて送信しないうちに切断してしまうことがある
一度TCPFINが付加されたパケットを送信した後、その前のパケットの再送が発生した場合、その再送パケットにTCPFINが付加されていた。これによって、通信相手はデータがそこまでであると判断して全て受信しないうちに切断してしまう。これを修正した。
DNScで名前解決に失敗することがあるのを修正
ホスト名の先頭文字が数字の場合に名前解決に失敗していたのを修正しました。
FTPdにSIZEコマンドを追加
FTPdにファイルサイズを取得するコマンドであるSIZEコマンドを追加しました。
FTPdをワイルドカードに対応
FTPdをワイルドカードに対応させました。これにより、ファイル一覧でワイルドカードが使用可能となります。
FTPdでのファイル一覧表示内容の修正
FTPdでファイル一覧を表示する時に、表示されない項目があるのを修正しました。
FTPdでデータポート接続完了待ちのタイミングを修正
FTPdでデータポート接続完了待ちのタイミングを修正しました。これにより、クライアントによってはデータポート接続に時折失敗する現象が修正されました。
FTPdでデータポートクローズのエラーを検出するように修正
FTPdでデータポートクローズ時のエラーを検出していなかったため、データポートクローズ失敗を検出できず、エラーにもかかわらず正常終了応答を 返していました。データポートクローズのエラーを検出するように修正し、エラー時にはエラー応答をクライアントに返すように修正しました。
FTPcの冗長な接続処理を修正
FTPcでTCP接続に失敗した場合リトライをしていましたが、本来はTCPレイヤーでリトライをするべきなので、FTPcでは接続のリトライをしないように修正しました。
TFTPdで重複したリクエストパケットを受け取ったときの処理を修正
TFTPdでクライアントからのリクエストパケットが重複した場合、エラーを返していました。重複パケットの場合はエラーを返さず、データ通信が中断されないように修正しました。