Chris Nelson
2004-10-22 15:46:55 UTC
I'm trying to write a little program that acts like an IGMPv2 host, sending IGMP Reports at startup, listening for IGMP Query messages, and sending IGMP Reports in response after a random delay (unless another host beats it to the punch). If I get it working -- and can figure out where to post it -- I'll be glad to add it to the libnet samples.
I've heavily adapted icmp_echo_cq.c and added code from a pcap sample to listen for IGMP messages then use libnet to respond. I'm initializing libnet and libpcat with the same device string. However, my system has two interfaces and I'm seeing Query messages on eth1 (the device I specified) but sending Report messages out eth0 (as confirmed by Ethereal).
Can someone explain to me why libnet would send on an interface other than the device passed to libnet_init()? I'll be glad to show you my code but I don't see anyway to attach it here and 300 lines is a bit much to paste into this message.
TIA.
Chris
I've heavily adapted icmp_echo_cq.c and added code from a pcap sample to listen for IGMP messages then use libnet to respond. I'm initializing libnet and libpcat with the same device string. However, my system has two interfaces and I'm seeing Query messages on eth1 (the device I specified) but sending Report messages out eth0 (as confirmed by Ethereal).
Can someone explain to me why libnet would send on an interface other than the device passed to libnet_init()? I'll be glad to show you my code but I don't see anyway to attach it here and 300 lines is a bit much to paste into this message.
TIA.
Chris