Coding Divert Sockets/Before You Begin

First, there are a couple (hopefully nothing new) include files you will need to know about.

sys/types.h and sys/socket.hEdit

This pair of header files is probably the most important one out of all the header files when coding any type socket. sys/socket.h contains several important constants (AF_INET? It's in here, as are all the other address families) and several less important constants, famous and infamous socket functions (socket() anyone?). The main structure worthy of note here is sockaddr.

netinet/in_systm.h and netinet/in.hEdit

netinet/in_systm.h defines network times (which has nothing to do with divert sockets, but it is required by netinet/in.h to compile properly.) netinet/in.h is the more important header here. It defines all transport-level protocol numbers (as found in RFC 1700), sockaddr_in, fun IPFW defines, and more stuff you probably have dealt with in normal sockets.


This header defines some structures we will send to instruct the IPFW program, later on in the book.

netinet/ip.h, netinet/tcp.h, and netinet/udp.hEdit

These files define protocol structures (as if you didn't know.)