2
0
Эх сурвалжийг харах

Merge pull request #1439 from paullouisageneau/fix-sctp-reset-wait

Fix useless wait in SctpTransport::sendReset()
Paul-Louis Ageneau 1 сар өмнө
parent
commit
87389f582c

+ 1 - 1
.github/workflows/build-nomedia.yml

@@ -25,7 +25,7 @@ jobs:
     - uses: actions/checkout@v4
     - uses: ilammy/msvc-dev-cmd@v1
     - name: install packages
-      run: choco install openssl
+      run: choco install openssl --version=3.5.2
     - name: submodules
       run: git submodule update --init --recursive --depth 1
     - name: cmake

+ 1 - 1
.github/workflows/build-openssl.yml

@@ -41,7 +41,7 @@ jobs:
     - uses: actions/checkout@v4
     - uses: ilammy/msvc-dev-cmd@v1
     - name: install packages
-      run: choco install openssl
+      run: choco install openssl --version=3.5.2
     - name: submodules
       run: git submodule update --init --recursive --depth 1
     - name: cmake

+ 6 - 9
src/impl/sctptransport.cpp

@@ -729,15 +729,12 @@ void SctpTransport::sendReset(uint16_t streamId) {
 	srs.srs_number_streams = 1;
 	srs.srs_stream_list[0] = streamId;
 
-	mWritten = false;
-	if (usrsctp_setsockopt(mSock, IPPROTO_SCTP, SCTP_RESET_STREAMS, &srs, len) == 0) {
-		std::unique_lock lock(mWriteMutex); // locking before setsockopt might deadlock usrsctp...
-		mWrittenCondition.wait_for(lock, 1000ms,
-		                           [&]() { return mWritten || state() != State::Connected; });
-	} else if (errno == EINVAL) {
-		PLOG_DEBUG << "SCTP stream " << streamId << " already reset";
-	} else {
-		PLOG_WARNING << "SCTP reset stream " << streamId << " failed, errno=" << errno;
+	if (usrsctp_setsockopt(mSock, IPPROTO_SCTP, SCTP_RESET_STREAMS, &srs, len)) {
+		if (errno == EINVAL) {
+			PLOG_DEBUG << "SCTP stream " << streamId << " already reset";
+		} else {
+			PLOG_WARNING << "SCTP reset stream " << streamId << " failed, errno=" << errno;
+		}
 	}
 }