Explorar o código

avoid long domain names in mux

Darien Raymond %!s(int64=8) %!d(string=hai) anos
pai
achega
9f392eb506
Modificáronse 1 ficheiros con 7 adicións e 2 borrados
  1. 7 2
      app/proxyman/mux/frame.go

+ 7 - 2
app/proxyman/mux/frame.go

@@ -80,9 +80,14 @@ func (f FrameMetadata) AsSupplier() buf.Supplier {
 				b = append(b, addr.IP()...)
 				length += 17
 			case net.AddressFamilyDomain:
-				nDomain := len(addr.Domain())
+				domain := addr.Domain()
+				nDomain := len(domain)
+				if nDomain > 256 {
+					nDomain = 256
+					domain = domain[:256]
+				}
 				b = append(b, byte(protocol.AddressTypeDomain), byte(nDomain))
-				b = append(b, addr.Domain()...)
+				b = append(b, domain...)
 				length += nDomain + 2
 			}
 		}