careful of ntohl with :: cuz clang++ uses macro