net.cc is confusing, uses a lot of
        struct ifconf data;
        struct ifreq device[IFCONF_LENGTH];

        struct in_addr interfaceAddr, netAddr;
        struct sockaddr_in addr;
        struct ip_mreq imr;

        struct ip_mreq imr;

        fd_set readfds;
        struct timeval tv, *tv_ptr;

        ssize_t ret;
        struct msghdr msg;
        struct iovec vec[1];
        struct sockaddr_in from_addr;
        union {
                struct cmsghdr cm;
                char    control[CMSG_SPACE(sizeof(struct timeval))];
        }     cmsg_un;
        struct cmsghdr *cmsg;
        struct timeval *tv;
        struct timespec ts;

        ssize_t ret;
        struct sockaddr_in addr;
        socklen_t addr_len = sizeof(struct sockaddr_in);

        ssize_t ret;
        struct sockaddr_in addr;

        ssize_t ret;
        struct sockaddr_in addr;