Closed masibw closed 3 years ago
継続的にdrop対象のパケットが送られてきている状態でSIGINTを送ると処理がストップします.
例) curl サーバーIP {cnetで拒否設定のポート} をしている状態でctrl+cにより終了しようとしてもsignalを受け取った後進まなくなる
curl サーバーIP {cnetで拒否設定のポート}
ctrl+c
nfqueueが使用しているchanを閉じていなかった.
queue.GetPackets()で得られるチャンネルは受信専用であり,closeすることができない(送信側からcloseする必要がある) ライブラリには後片付け用のClose()があるがチャンネルのcloseを行っていない(おそらくバグ) そのため上記ライブラリをForkして書き換えたものを使用するように変更しました
queue.GetPackets()
Close()
一応PRを送りますが、長らくメンテナンスされていないライブラリなのでどうなるかわかりません
治ったと思ったら治らなくてぴえんです
これもこれで問題でしたが解決しなかったのと(おそらく)本当の解決策と共存し得ないのでcloseします
16 の修正です.
再現方法
継続的にdrop対象のパケットが送られてきている状態でSIGINTを送ると処理がストップします.
例)
curl サーバーIP {cnetで拒否設定のポート}
をしている状態でctrl+c
により終了しようとしてもsignalを受け取った後進まなくなる原因
nfqueueが使用しているchanを閉じていなかった.
対処法
queue.GetPackets()
で得られるチャンネルは受信専用であり,closeすることができない(送信側からcloseする必要がある) ライブラリには後片付け用のClose()
があるがチャンネルのcloseを行っていない(おそらくバグ) そのため上記ライブラリをForkして書き換えたものを使用するように変更しました一応PRを送りますが、長らくメンテナンスされていないライブラリなのでどうなるかわかりません
治ったと思ったら治らなくてぴえんです