mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-12 21:05:36 +00:00
Bug 1137932: Unwind the stack before starting the DTLS handshake. r=mt
--HG-- extra : rebase_source : c74e9a09e40c5a0ef9e00ca4dd326bc0ac8a4319
This commit is contained in:
parent
e692ef66b3
commit
376726d034
@ -577,6 +577,7 @@ bool TransportLayerDtls::Setup() {
|
|||||||
downward_->SignalPacketReceived.connect(this, &TransportLayerDtls::PacketReceived);
|
downward_->SignalPacketReceived.connect(this, &TransportLayerDtls::PacketReceived);
|
||||||
|
|
||||||
if (downward_->state() == TS_OPEN) {
|
if (downward_->state() == TS_OPEN) {
|
||||||
|
TL_SET_STATE(TS_CONNECTING);
|
||||||
Handshake();
|
Handshake();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -739,7 +740,15 @@ void TransportLayerDtls::StateChange(TransportLayer *layer, State state) {
|
|||||||
case TS_OPEN:
|
case TS_OPEN:
|
||||||
MOZ_MTLOG(ML_ERROR,
|
MOZ_MTLOG(ML_ERROR,
|
||||||
LAYER_INFO << "Lower layer is now open; starting TLS");
|
LAYER_INFO << "Lower layer is now open; starting TLS");
|
||||||
Handshake();
|
// Async, since the ICE layer might need to send a STUN response, and we
|
||||||
|
// don't want the handshake to start until that is sent.
|
||||||
|
TL_SET_STATE(TS_CONNECTING);
|
||||||
|
timer_->Cancel();
|
||||||
|
timer_->SetTarget(target_);
|
||||||
|
timer_->InitWithFuncCallback(TimerCallback,
|
||||||
|
this,
|
||||||
|
0,
|
||||||
|
nsITimer::TYPE_ONE_SHOT);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TS_CLOSED:
|
case TS_CLOSED:
|
||||||
@ -755,8 +764,6 @@ void TransportLayerDtls::StateChange(TransportLayer *layer, State state) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void TransportLayerDtls::Handshake() {
|
void TransportLayerDtls::Handshake() {
|
||||||
TL_SET_STATE(TS_CONNECTING);
|
|
||||||
|
|
||||||
// Clear the retransmit timer
|
// Clear the retransmit timer
|
||||||
timer_->Cancel();
|
timer_->Cancel();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user