#ifndef _STREAM_ADDR_H #define _STREAM_ADDR_H #ifdef __cpluscplus extern "C" { #endif #include enum stream_addr_type { STREAM_ADDR_TYPE_V4, STREAM_ADDR_TYPE_V6, }; struct stream_addr_v4 { struct in_addr src_addr; /* network order */ struct in_addr dst_addr; /* network order */ in_port_t src_port; /* network order */ in_port_t dst_port; /* network order */ }; struct stream_addr_v6 { struct in6_addr src_addr; /* network order */ struct in6_addr dst_addr; /* network order */ in_port_t src_port; /* network order */ in_port_t dst_port; /* network order */ }; struct stream_addr { enum stream_addr_type addr_type; union { struct stream_addr_v4 addr_v4; struct stream_addr_v6 addr_v6; }; }; char *stream_addr_to_str(const struct stream_addr *addr); #ifdef __cpluscplus } #endif #endif