Debian で Ad-hoc wireless ICS (Internet connection sharing)

Commandline からは、参加する node 全員が

ifconfig wlan0 down
iwconfig wlan0 mode ad-hoc essid foo
ifconfig wlan0 up
iwlist wlan0 scan > /dev/null
ifconfig wlan0 自分のIP

したらいい。最後の一行の代わりに dnsmasq あたりで DHCP server を立ててもいい。

が、wicd から同じ事ができない。通信相手が作った Network を見つけるところまでは行くけど、自動的に dhclient 呼びにいって帰ってこない。
そりゃ DHCP server 立ててませんからね、とか思って Ubuntu が入ってる node で NetworkManager 使って network 作ってみたら、今度は DHCP server が立ってるはずなのに同じ症状。何それ。

とりあえず wicd の source 読んでみたらこんなん書いてあった:

        if response == 1:
            wireless.CreateAdHocNetwork(essid_entry.entry.get_text(),
                                        channel_entry.entry.get_text(),
                                        ip_entry.entry.get_text(), "WEP",
                                        self.key_entry.entry.get_text(),
                                        self.chkbox_use_encryption.get_active(),
                                        False) #chkbox_use_ics.get_active())

ちょっと酷い bug の予感。chkbox_use_ics というのは「インターネット接続を共有する」check box を表す object で、check 状態に関わらずこっそり False にされてる。これを False にしないと iptables への依存が発生するからか?

追記: upstream にも入ってるよ…orz