Browse Source

obs-outputs: Reset TLS on reconnect

Reverts e8b2b2092bd3e and properly fixes an issue where bad TLS data
would persist through reconnections when the connection is encrypted.
jp9000 3 years ago
parent
commit
7ba9db3744
1 changed files with 4 additions and 1 deletions
  1. 4 1
      plugins/obs-outputs/rtmp-stream.c

+ 4 - 1
plugins/obs-outputs/rtmp-stream.c

@@ -1041,9 +1041,12 @@ static int try_connect(struct rtmp_stream *stream)
 
 	// on reconnect we need to reset the internal variables of librtmp
 	// otherwise the data sent/received will not parse correctly on the other end
-	memset(&stream->rtmp, 0, sizeof(stream->rtmp));
 	RTMP_Reset(&stream->rtmp);
 
+	// apparently TLS will not properly persist through connections
+	RTMP_TLS_Free(&stream->rtmp);
+	RTMP_TLS_Init(&stream->rtmp);
+
 	// since we don't call RTMP_Init above, there's no other good place
 	// to reset this as doing it in RTMP_Close breaks the ugly RTMP
 	// authentication system