libarms で Push 待ち受け状態となると、select()によるI/O待ち受け処理が開始される。 このため、アプリケーション側からlibarmsに対して状態変化を通知するための仕組みが必要となる。 このため、libarms では「イベントコールバック」としてアプリケーション側にポーリングを行う仕組みが実装されている。
API 名 | 解説 |
---|---|
arms_app_event_cb_t() | コンフィグ設定コールバック関数 |
イベントコールバックとは、 arms_event_loop() 実行中に発生した、SA の状態変化をlibarms に通知するためのコールバック関数である。 この関数はlibarms から定期的(60秒毎) に呼び出される。なお、この間隔は arms_set_app_event_interval() にて変更可能。
なお、具体的には、アプリケーション側で何かの異常を検知し、Pull をやり直す必要が発生した場合などに利用することができる。 また、https-simple モードで接続されている場合、WAN側アドレスが変更されるとPushできなくなるが、それを検出した場合にも使うことができる。(https-tunnel モードの場合は自動的に再接続が行われるため該当処理は無くても良い)