Convert the module to a gen_server. Unpack the packet in a process so that if the decapsulation fails, the gen_server will not be killed.
Look up some of the network settings from /proc using the packet module and do some code clean up.
Remove local copy of the rebar script. Preferentially use the user's rebar script, if it exists in their path; otherwise, try to download it. Since the download is in the clear, a future improvement would check a hash before running the script.
spood will try to guess the default device, if it's not given. If there is more than one active interface, spood will probably guess wrong. The nameserver was grabbed from resolv.conf and also manually specified. Make consistent the name server lookup.
Change spood:start/1 to take a proplist. If the keys are not provided, lookup the values from the interfaces.
The discover strategy will attempt to lookup the client's real IP address. Add an option to allow the user to specify an IP.
Add a discover strategy for choosing the source IP address of the DNS query. Whenever snuff sees a new DNS packet, it will notify spoof of the destination address. NOTE: the real source IP address of the client will always be used. The discovered IP addresses don't have an expiry yet, so as clients leave the network, requests may timeout. Fix the random selection of the source ip from the list. It would never choose the final entry before. Some uncommitted changes for the sniff -> snuff module rename.
Some changes for the sniff -> snuff rename that I forgot to check in the next commit.