Cente MQTTc
・マニュアルの変更
マニュアルにおいて、奥付の情報を更新した。ソースコードに変更はない。
・マニュアルの変更
マニュアルにおいて、奥付の情報を更新した。ソースコードに変更はない。
【HTTPd修正】
・MD5モジュールの変更
MD5モジュールを削除し、Cente Compact Cryptoに置き換えた。
【HTTPc修正】
・WebSocketクライアントに対応。
WebSocketクライアントに対応した。
・HTTPヘッダの設定追加。
HTTPヘッダでAcceptを設定できるようにした。
・MD5モジュールの変更
MD5モジュールを削除し、Cente Compact Cryptoに置き換えた。
MQTTv5.0に対応
Cente MQTTc Ver1.10までのMQTTv3.1.1に加え、MQTTv5.0に対応しました。
複数ブローカへの接続に対応
あるブローカへ接続したまま、他のブローカへ接続できるようにしました。
HTTPプロキシに対応
HTTPプロキシ経由でブローカへ接続できるようにしました(プロキシ認証はBasic認証に対応)。
エラーコールバック関数からmqtt_disconnect()を実行するとリターンしないことがある(Cente013-0001)
エラーコールバック関数からmqtt_disconnect()を実行するとリターンしないことがありました。これを修正しました。
・GmailのOAuth2.0認証対応
GmailのOAuth2.0認証に対応した。
・軽微なコード修正
ワーニング対策のための軽微なコード修正を行った。動作に影響はない。
【HTTPd修正】
・SSL設定をカスタマイズするAPIを追加。
HTTPS接続時に個別にセッションチケットなどを設定するAPIを追加した。
・HTTPヘッダをカスタマイズするAPIを追加。
独自にレスポンスヘッダを付加したり、独自にリクエストヘッダをパースするAPIを追加した。
・使用メモリ低減
SSLを使用しないセッションでもSSL用のメモリを確保していたので修正した。
・認証ヘッダ解析を修正
認証ヘッダ解析が正しく動作しないことがあるのを修正した。
・軽微な修正
軽微なコード修正を行った。実動作には影響ない。
【HTTPc修正】
・HTTPヘッダをカスタマイズするAPIを追加。
独自にリクエストヘッダを付加したり、独自にレスポンスヘッダをパースするAPIを追加した。
・障害情報 Cente010-0004 を修正。
HTTPScがキープアライブ動作中に再接続に失敗することがあるのを修正した。
・軽微な修正。
軽微なコード修正を行った。実動作には影響ない。
発行番号: Cente013-0001
Rev: 第1版
発行日: 2021/10/13
題名: エラーコールバック関数からmqtt_disconnect()を実行するとリターンしないことがある
適用製品:
・Cente MQTTc Ver.1.10
【該当するユーザ環境】
Cente MQTTc Ver.1.10をお使いの全てのユーザ。
【障害内容】
MQTTのAPIでエラー(送信エラー、受信エラー)が発生すると、エラーコールバック関数が呼び出されます。エラーコールバック関数ではmqtt_disconnect()を実行する必要がありますが、送信エラーによるコールバックからmqtt_disconnect()を実行すると、リターンしないことがありました。
【発生理由】
セマフォによる排他制御に不適切な処理があり、取得済みのセマフォをmqtt_disconnect()でさらに取得しようとして、デッドロックすることがありました。
【回避方法】
ソースコードの改変が必要です。
修正箇所については、support_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。
発行番号: Cente010-0004
Rev: 第1版
発行日: 2020/12/21
題名: HTTPScがキープアライブ動作中に再接続に失敗する現象について
適用製品
・Cente HTTPd/c Ver.1.61
【該当するユーザ環境】
以下の関数をまとめて「httpc_XXX_with_sock()」と記述します。
– httpc_get_with_sock()
– httpc_post_with_sock()
– httpc_put_with_sock()
– httpc_delete_with_sock()
以下の条件をすべて満たした場合、httpc_XXX_with_sock()がエラーでリターンすることがあります。
– httpc_XXX_with_sock()で、HTTPキープアライブ有効かつka_retry=1として自動再接続を有効にして通信する。
– usessl=1としてSSL通信する。
– HTTPサーバがHTTPキープアライブタイムアウトでTCPを切断したあと、httpc_XXX_with_sock()で再接続が発生する。
自動再接続が無効の場合や、SSLを使用しない場合は、該当しません。
【障害内容】
HTTPは、TCP接続のオーバヘッドを減らすために、HTTPキープアライブ機能があります。Cente HTTPcは、httpc_XXX_with_sock()でHTTPキープアライブを使用できます。HTTPキープアライブ有効時でも、HTTPサーバは任意のタイムアウトでTCPを切断します。切断後のhttpc_XXX_with_sock()でka_retry=1として自動再接続を有効にしているとAPI内で再接続します。
再接続時には、API内で通信端点の削除と作成を行いますが、この通信端点のIDをSSL使用時に更新しておらず、以前のIDで通信してエラー(HTTPC_E_CON)になることがありました。
このエラーが発生した場合、httpc_disconnect()でHTTPcを切断して、再度httpc_XXX_with_sock()を呼び出す必要がありました。
【回避方法】
ミドルウェアのソースコードを修正し、通信端点のIDをSSLで正しく使用するようにします。
詳細については、営業担当またはsupport_XXXatmarkXXX_cente.jpまでお問い合わせください(_XXXatmarkXXX_は@にしてください)。
・ユーザーズマニュアルの変更
ユーザーズマニュアルにおいて、奥付の情報を更新した。
・軽微なコード修正
ワーニング対策のための軽微なコード修正を行った。動作に影響はない。
・ユーザーズマニュアルの変更
ユーザーズマニュアルにおいて、奥付の情報を更新した。
・SMTPcの軽微なコード修正
ワーニング対策のための軽微なコード修正を行った。動作に影響はない。
【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モジュールを更新した。
Page 1 of 9