@@ -76,29 +76,27 @@ mainloop(ChannelPid) ->
7676 {method , MethodName , FieldsBin } = read_frame (ChannelPid ),
7777 Method = rabbit_framing :decode_method_fields (MethodName , FieldsBin ),
7878 case rabbit_framing :method_has_content (MethodName ) of
79- true -> rabbit_channel :do (ChannelPid , Method ,
80- collect_content (ChannelPid , MethodName ));
79+ true -> {ClassId , _MethodId } = rabbit_framing :method_id (MethodName ),
80+ rabbit_channel :do (ChannelPid , Method ,
81+ collect_content (ChannelPid , ClassId ));
8182 false -> rabbit_channel :do (ChannelPid , Method )
8283 end ,
8384 ? MODULE :mainloop (ChannelPid ).
8485
85- collect_content (ChannelPid , MethodName ) ->
86- {ClassId , _MethodId } = rabbit_framing :method_id (MethodName ),
86+ collect_content (ChannelPid , ClassId ) ->
8787 case read_frame (ChannelPid ) of
88- {content_header , HeaderClassId , 0 , BodySize , PropertiesBin } ->
89- if HeaderClassId == ClassId ->
90- Payload = collect_content_payload (ChannelPid , BodySize , []),
91- # content {class_id = ClassId ,
92- properties = none ,
93- properties_bin = PropertiesBin ,
94- payload_fragments_rev = Payload };
95- true ->
96- rabbit_misc :protocol_error (
97- command_invalid ,
98- " expected content header for class ~w , "
99- " got one for class ~w instead" ,
100- [ClassId , HeaderClassId ])
101- end ;
88+ {content_header , ClassId , 0 , BodySize , PropertiesBin } ->
89+ Payload = collect_content_payload (ChannelPid , BodySize , []),
90+ # content {class_id = ClassId ,
91+ properties = none ,
92+ properties_bin = PropertiesBin ,
93+ payload_fragments_rev = Payload };
94+ {content_header , HeaderClassId , 0 , _BodySize , _PropertiesBin } ->
95+ rabbit_misc :protocol_error (
96+ command_invalid ,
97+ " expected content header for class ~w , "
98+ " got one for class ~w instead" ,
99+ [ClassId , HeaderClassId ]);
102100 _ ->
103101 rabbit_misc :protocol_error (
104102 command_invalid ,
0 commit comments