fix reboot logic upon server loss - release

This commit is contained in:
Philippe G
2020-09-25 21:50:44 -07:00
parent fb530645b8
commit 7f1db60c45
5 changed files with 10 additions and 9 deletions

View File

@@ -228,7 +228,6 @@ void raop_delete(struct raop_ctx_s *ctx) {
ctx->running = false;
// wake-up thread by connecting socket, needed for freeBSD
sock = socket(AF_INET, SOCK_STREAM, 0);
sock = socket(AF_INET, SOCK_STREAM, 0);
getsockname(ctx->sock, (struct sockaddr *) &addr, &nlen);
connect(sock, (struct sockaddr*) &addr, sizeof(addr));
@@ -247,14 +246,17 @@ void raop_delete(struct raop_ctx_s *ctx) {
}
// stop broadcasting devices
mdns_service_remove(ctx->svr, ctx->svc);
mdnsd_stop(ctx->svr);
#else
// then the RTSP task
ctx->joiner = xTaskGetCurrentTaskHandle();
ctx->running = false;
// brute-force exit of accept()
shutdown(ctx->sock, SHUT_RDWR);
closesocket(ctx->sock);
ctx->running = false;
ulTaskNotifyTake(pdFALSE, portMAX_DELAY);
// wait to make sure LWIP if scheduled (avoid issue with NotifyTake)
vTaskDelay(100 / portTICK_PERIOD_MS);
ulTaskNotifyTake(pdFALSE, portMAX_DELAY);