Browse Source

fix encoding of MetadataResponse with version >= 2

ThrottleTimeMs and ClusterID have been added to decode(), but apparently
encode() was forgotten. This causes errors in tests, if versions >= 2 are used.
Johannes Brüderl 6 years ago
parent
commit
8d6be4ed36
1 changed files with 8 additions and 0 deletions
  1. 8 0
      metadata_response.go

+ 8 - 0
metadata_response.go

@@ -207,6 +207,10 @@ func (r *MetadataResponse) decode(pd packetDecoder, version int16) (err error) {
 }
 
 func (r *MetadataResponse) encode(pe packetEncoder) error {
+	if r.Version >= 3 {
+		pe.putInt32(r.ThrottleTimeMs)
+	}
+
 	err := pe.putArrayLength(len(r.Brokers))
 	if err != nil {
 		return err
@@ -218,6 +222,10 @@ func (r *MetadataResponse) encode(pe packetEncoder) error {
 		}
 	}
 
+	if r.Version >= 2 {
+		pe.putNullableString(r.ClusterID)
+	}
+
 	if r.Version >= 1 {
 		pe.putInt32(r.ControllerID)
 	}