Skip to content

Commit aaadd1d

Browse files
committed
Missing update
1 parent f8e8e1e commit aaadd1d

1 file changed

Lines changed: 8 additions & 2 deletions

File tree

‎dnscrypt-proxy/crypto.go‎

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,13 @@ func (proxy *Proxy) computeSharedKey(
140140
return ComputeSharedKey(cryptoConstruction, &proxy.proxySecretKey, serverPk, providerName)
141141
}
142142

143+
func minRelayedQuerySize(serverInfo *ServerInfo, proto string) int {
144+
if proto == "tcp" && serverInfo.Relay != nil {
145+
return MaxDNSPacketSize
146+
}
147+
return 0
148+
}
149+
143150
func (proxy *Proxy) Encrypt(
144151
serverInfo *ServerInfo,
145152
packet []byte,
@@ -193,9 +200,8 @@ func (proxy *Proxy) Encrypt(
193200
paddedLength := Min(MaxDNSUDPPacketSize, (Max(minQuestionSize, QueryOverhead)+1+63) & ^63)
194201
if serverInfo.knownBugs.fragmentsBlocked && proto == "udp" {
195202
paddedLength = MaxDNSUDPSafePacketSize
196-
} else if serverInfo.Relay != nil && proto == "tcp" {
197-
paddedLength = MaxDNSPacketSize
198203
}
204+
paddedLength = Max(paddedLength, minRelayedQuerySize(serverInfo, proto))
199205
if QueryOverhead+len(packet)+1 > paddedLength {
200206
err = errors.New("Question too large; cannot be padded")
201207
return sharedKey, encrypted, clientNonce, queryEpoch, err

0 commit comments

Comments
 (0)