@@ -256,41 +256,36 @@ mech_step(#state{step = 4, algo = Algo} = State, ClientIn) ->
256256 {error , parser_failed }
257257 end .
258258
259- cbind_valid (# state {channel_bindings = #{} = Bindings }, <<" p=" , Binding /binary >>) ->
260- maps :is_key (Binding , Bindings );
261- cbind_valid (# state {channel_bindings = #{}}, _ ) ->
262- false ;
263- cbind_valid (# state {channel_bindings = not_available }, <<" y" , _ /binary >>) ->
264- true ;
265- cbind_valid (_ , <<" y" , _ /binary >>) ->
266- false ;
267- cbind_valid (_ , <<" n" , _ /binary >>) ->
268- true ;
269- cbind_valid (_ , _ ) ->
270- false .
271-
272259extensions_valid (_State , Ext ) ->
273260 lists :all (
274261 fun (<<" m=" , _ /binary >>) -> false ;
275262 (_ ) -> true
276263 end , Ext ).
277264
265+ cbind_valid (# state {channel_bindings = #{} = Bindings }, <<" p=" , Binding /binary >>) ->
266+ maps :is_key (Binding , Bindings );
267+ cbind_valid (State , ChannelBindingSupport ) ->
268+ cbind_check (State , ChannelBindingSupport ).
269+
278270cbind_verify (# state {channel_bindings = #{} = Bindings }, <<" p=" , Binding /binary >>) ->
279271 case re :split (Binding , <<" ," >>, [{parts , 3 }, {return , binary }]) of
280272 [Type , _ , Data ] ->
281273 maps :get (Type , Bindings , none ) == Data ;
282274 _ ->
283275 false
284276 end ;
285- cbind_verify (# state {channel_bindings = #{}}, _ ) ->
277+ cbind_verify (State , ChannelBindingSupport ) ->
278+ cbind_check (State , ChannelBindingSupport ).
279+
280+ cbind_check (# state {channel_bindings = #{}}, _ ) ->
286281 false ;
287- cbind_verify (# state {channel_bindings = not_available }, <<" y" , _ /binary >>) ->
282+ cbind_check (# state {channel_bindings = not_available }, <<" y" , _ /binary >>) ->
288283 true ;
289- cbind_verify (_ , <<" y" , _ /binary >>) ->
284+ cbind_check (_ , <<" y" , _ /binary >>) ->
290285 false ;
291- cbind_verify (_ , <<" n" , _ /binary >>) ->
286+ cbind_check (_ , <<" n" , _ /binary >>) ->
292287 true ;
293- cbind_verify (_ , _ ) ->
288+ cbind_check (_ , _ ) ->
294289 false .
295290
296291parse_attribute (<<Name , $= , Val /binary >>) when Val /= <<>> ->
0 commit comments