Metriche repository
- Star
- (27.997 star)
- Metriche merge PR
- (Merge medio 8g) (378 PR mergiate in 30 g)
Descrizione
When UDP proxying from A-B it's really unfortunate when bad or misconfigured hardware ends up routing your packets in a loop. Decrementing TTL means you don't end up with that loop being infinite and destroying your CPU.
useful kernel options:
setsockopt(fd, IPPROTO_IP, IP_RECVTTL, &get_ttl, sizeof(get_ttl));
setsockopt(fd, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &get_ttl, sizeof(get_ttl));
kMinCmsgSpaceForRead += CMSG_SPACE(sizeof(int)) // TTL
if ((cmsg->cmsg_level == IPPROTO_IP && cmsg->cmsg_type == IP_TTL) || (cmsg->cmsg_level == IPPROTO_IPV6 && cmsg->cmsg_type == IPV6_HOPLIMIT)) { ttl = reinterpret_cast<int*>(CMSG_DATA(cmsg)))); }