only include udp.h when necessary