Преглед изворни кода

libobs: Limit reconnect retry interval to 15 mins max

The retry interval seconds could grow exponentially large.  Limit it to
a maximum of 15 minutes between retry intervals.
jp9000 пре 9 година
родитељ
комит
e284ffd896
1 измењених фајлова са 4 додато и 0 уклоњено
  1. 4 0
      libobs/obs-output.c

+ 4 - 0
libobs/obs-output.c

@@ -1793,6 +1793,8 @@ static void *reconnect_thread(void *param)
 	return NULL;
 	return NULL;
 }
 }
 
 
+#define MAX_RETRY_SEC (15 * 60)
+
 static void output_reconnect(struct obs_output *output)
 static void output_reconnect(struct obs_output *output)
 {
 {
 	int ret;
 	int ret;
@@ -1818,6 +1820,8 @@ static void output_reconnect(struct obs_output *output)
 
 
 	if (output->reconnect_retries) {
 	if (output->reconnect_retries) {
 		output->reconnect_retry_cur_sec *= 2;
 		output->reconnect_retry_cur_sec *= 2;
+		if (output->reconnect_retry_cur_sec > MAX_RETRY_SEC)
+			output->reconnect_retry_cur_sec = MAX_RETRY_SEC;
 	}
 	}
 
 
 	output->reconnect_retries++;
 	output->reconnect_retries++;