We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
デフォルトで利用する interface を動的に決定する。
#2 の修正は link-up しないインターフェースを対象に含めないようにするもの。 対象は初回にリストアップされ次回以降キャッシュされてしまうので、 以下のようなケースでは SSDP が機能しない懸念がある。
LANケーブルは繋がずに電源を入れる go-ssdp を使ったプログラムが起動 LANケーブルに繋ぐ
組み込み機器等では普通にありそうなシナリオで困りそう。
そこで対象となる interface を動的に決定することで、それを回避しようという算段。 interface 一覧を監視して、自動で再接続という手もありか。
The text was updated successfully, but these errors were encountered:
まずはI/Fをリストアップするプログラムを書いて、 各OSでどう見えるか実際に観測してみないとダメそうだ…
Sorry, something went wrong.
状態は毎回 net.Interfaces() を呼び出した際に変わるので、状態を監視するなら毎回 net.Interfaces() を呼び出さないといけないっすね。問題は2つあって、一つが FlagUp の件、もう1件はif.MTU が0以下になる件があります。
MTU が0なのは明らかにおかしいので、そういう interface はスキップすれば良いんですかね? どうせUDPが正しく動くことも期待できないし。
ケーブルを差しなおすケースがありえる場合を考えると ssdp.Interfaces は元の形に戻して、実際に listen する手前で次回ループに回す(Sleepあり)的なのが良いのかもしれないですね。いつ復活するか分からないし。
まぁ、そこはポーリングでも良いかなって思ってます。 定期的に利用可能な interface 一覧を、実際に使ってる一覧と比較して 違いがあったら listen し直すみたいな。
koron
No branches or pull requests
デフォルトで利用する interface を動的に決定する。
#2 の修正は link-up しないインターフェースを対象に含めないようにするもの。
対象は初回にリストアップされ次回以降キャッシュされてしまうので、
以下のようなケースでは SSDP が機能しない懸念がある。
組み込み機器等では普通にありそうなシナリオで困りそう。
そこで対象となる interface を動的に決定することで、それを回避しようという算段。
interface 一覧を監視して、自動で再接続という手もありか。
The text was updated successfully, but these errors were encountered: