自分が忘れてしまいそうなので、メモがてら。
gopacket/pcap で最近 pcap_set_rfmon に対応するコードが入った。ところが WinPcap ではビルドできない。
原因は WinPcap 側で __declspec(dllexport)
が抜けていて、リンカーがリンクできないため。
WinPcap のソースコードをダウンロードして眺めてみると、こういう事らしい:
--- winpcap/wpcap/PRJ/WPCAP.DEF.old 2014-07-13 23:09:44.009092400 +0900
+++ winpcap/wpcap/PRJ/WPCAP.DEF 2014-07-11 20:50:40.348113700 +0900
@@ -90,4 +90,6 @@
pcap_set_buffer_size
pcap_hopen_offline
pcap_setdirection
- pcap_free_datalinks
\ No newline at end of file
+ pcap_free_datalinks
+ pcap_set_rfmon
+ pcap_can_set_rfmon
\ No newline at end of file
このWPCAP.DEF
ファイルを参照して wpcap.lib
が生成されるのだが、通常の方法だとコンパイル環境がないといけない。ビルド済みのバイナリは既にあるので、dlltool で裏技的に生成するのが簡単だろう。
dlltool.exe --input-def WPCAP.DEF --output-lib wpcap.lib
生成された wpcap.lib
を C:\WpdPack\Lib\x64
にコピーすればOK。
ところでバグレポするにしても、ML が機能していないってのは、なんだかなぁ。いろんなプロジェクトではまってるのを見かけるけど、メールサーバの運用ってのは、大変だなぁ。