Skip to content

Commit 70f0211

Browse files
authored
Add GetRemoteParameters to ICETransport
Implementing to match webrtc-pc
1 parent 969ab68 commit 70f0211

File tree

2 files changed

+41
-4
lines changed

2 files changed

+41
-4
lines changed

icetransport.go

+22
Original file line numberDiff line numberDiff line change
@@ -358,6 +358,28 @@ func (t *ICETransport) GetLocalParameters() (ICEParameters, error) {
358358
return t.gatherer.GetLocalParameters()
359359
}
360360

361+
// GetRemoteParameters returns an IceParameters object which provides information
362+
// uniquely identifying the remote peer for the duration of the ICE session.
363+
func (t *ICETransport) GetRemoteParameters() (ICEParameters, error) {
364+
t.lock.Lock()
365+
defer t.lock.Unlock()
366+
367+
agent := t.gatherer.getAgent()
368+
if agent == nil {
369+
return ICEParameters{}, fmt.Errorf("%w: unable to get remote parameters", errICEAgentNotExist)
370+
}
371+
372+
uFrag, uPwd, err := agent.GetRemoteUserCredentials()
373+
if err != nil {
374+
return ICEParameters{}, fmt.Errorf("%w: unable to get remote parameters", err)
375+
}
376+
377+
return ICEParameters{
378+
UsernameFragment: uFrag,
379+
Password: uPwd,
380+
}, nil
381+
}
382+
361383
func (t *ICETransport) setState(i ICETransportState) {
362384
t.state.Store(i)
363385
}

icetransport_test.go

+19-4
Original file line numberDiff line numberDiff line change
@@ -125,19 +125,34 @@ func TestICETransport_GetSelectedCandidatePair(t *testing.T) {
125125
closePairNow(t, offerer, answerer)
126126
}
127127

128-
func TestICETransport_GetLocalParameters(t *testing.T) {
128+
func TestICETransport_GetLocalAndRemoteParameters(t *testing.T) {
129129
offerer, answerer, err := newPair()
130130
assert.NoError(t, err)
131131

132+
_, err = offerer.SCTP().Transport().ICETransport().GetRemoteParameters()
133+
assert.Error(t, err, errICEAgentNotExist)
134+
132135
peerConnectionConnected := untilConnectionState(PeerConnectionStateConnected, offerer, answerer)
133136

134137
assert.NoError(t, signalPair(offerer, answerer))
135138
peerConnectionConnected.Wait()
136139

137-
localParameters, err := offerer.SCTP().Transport().ICETransport().GetLocalParameters()
140+
offerLocalParameters, err := offerer.SCTP().Transport().ICETransport().GetLocalParameters()
141+
assert.NoError(t, err)
142+
143+
offerRemoteParameters, err := offerer.SCTP().Transport().ICETransport().GetRemoteParameters()
144+
assert.NoError(t, err)
145+
146+
answerLocalParameters, err := answerer.SCTP().Transport().ICETransport().GetLocalParameters()
147+
assert.NoError(t, err)
148+
149+
answerRemoteParameters, err := answerer.SCTP().Transport().ICETransport().GetRemoteParameters()
138150
assert.NoError(t, err)
139-
assert.NotEqual(t, localParameters.UsernameFragment, "")
140-
assert.NotEqual(t, localParameters.Password, "")
151+
152+
assert.Equal(t, offerLocalParameters.UsernameFragment, answerRemoteParameters.UsernameFragment)
153+
assert.Equal(t, offerLocalParameters.Password, answerRemoteParameters.Password)
154+
assert.Equal(t, answerLocalParameters.UsernameFragment, offerRemoteParameters.UsernameFragment)
155+
assert.Equal(t, answerLocalParameters.Password, offerRemoteParameters.Password)
141156

142157
closePairNow(t, offerer, answerer)
143158
}

0 commit comments

Comments
 (0)