File tree 2 files changed +29
-0
lines changed
2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change @@ -464,10 +464,12 @@ func (d *DataChannel) DetachWithDeadline() (datachannel.ReadWriteCloserDeadliner
464
464
d .mu .Lock ()
465
465
466
466
if ! d .api .settingEngine .detach .DataChannels {
467
+ d .mu .Unlock ()
467
468
return nil , errDetachNotEnabled
468
469
}
469
470
470
471
if d .dataChannel == nil {
472
+ d .mu .Unlock ()
471
473
return nil , errDetachBeforeOpened
472
474
}
473
475
Original file line number Diff line number Diff line change @@ -822,3 +822,30 @@ func TestDataChannelClose(t *testing.T) {
822
822
assert .NoError (t , answerPC .Close ())
823
823
})
824
824
}
825
+
826
+ func TestDataChannel_DetachErrors (t * testing.T ) {
827
+ t .Run ("error errDetachNotEnabled" , func (t * testing.T ) {
828
+ s := SettingEngine {}
829
+ offer , answer , err := NewAPI (WithSettingEngine (s )).newPair (Configuration {})
830
+ assert .NoError (t , err )
831
+ dc , err := offer .CreateDataChannel ("data" , nil )
832
+ assert .NoError (t , err )
833
+ _ , err = dc .Detach ()
834
+ assert .ErrorIs (t , err , errDetachNotEnabled )
835
+ assert .NoError (t , offer .Close ())
836
+ assert .NoError (t , answer .Close ())
837
+ })
838
+
839
+ t .Run ("error errDetachBeforeOpened" , func (t * testing.T ) {
840
+ s := SettingEngine {}
841
+ s .DetachDataChannels ()
842
+ offer , answer , err := NewAPI (WithSettingEngine (s )).newPair (Configuration {})
843
+ assert .NoError (t , err )
844
+ dc , err := offer .CreateDataChannel ("data" , nil )
845
+ assert .NoError (t , err )
846
+ _ , err = dc .Detach ()
847
+ assert .ErrorIs (t , err , errDetachBeforeOpened )
848
+ assert .NoError (t , offer .Close ())
849
+ assert .NoError (t , answer .Close ())
850
+ })
851
+ }
You can’t perform that action at this time.
0 commit comments