X-Git-Url: http://git.ipfire.org/?p=thirdparty%2Fsystemd.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-dns-packet.h;h=56614c4a071756ad76ca59c7f20089fe5a27a166;hp=5ebaff33d710fab04f2c0e0af37b0783d9c6832d;hb=71a681ae50175a569bf832d2615fd11994c41d73;hpb=9d0798a2edf05438499c7cb5def592d52358f397 diff --git a/src/resolve/resolved-dns-packet.h b/src/resolve/resolved-dns-packet.h index 5ebaff33d71..56614c4a071 100644 --- a/src/resolve/resolved-dns-packet.h +++ b/src/resolve/resolved-dns-packet.h @@ -117,7 +117,10 @@ static inline uint16_t DNS_PACKET_RCODE(DnsPacket *p) { static inline uint16_t DNS_PACKET_PAYLOAD_SIZE_MAX(DnsPacket *p) { - /* Returns the advertised maximum datagram size for replies, or the DNS default if there's nothing defined. */ + /* Returns the advertised maximum size for replies, or the DNS default if there's nothing defined. */ + + if (p->ipproto == IPPROTO_TCP) /* we ignore EDNS(0) size data on TCP, like everybody else */ + return DNS_PACKET_SIZE_MAX; if (p->opt) return MAX(DNS_PACKET_UNICAST_SIZE_MAX, p->opt->key->class);