浏览代码

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 7 年之前
父节点
当前提交
8d6be4ed36
共有 1 个文件被更改,包括 8 次插入0 次删除
  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)
 	}