Compare commits

...

3 Commits

Author SHA1 Message Date
Philippe G
c36348e99d limit sockets used by HTTP server
seems that ctrl and msg sockets are not needed
2021-11-15 10:59:06 -08:00
Philippe G
faa9976d3d switching or losing server connection was exhausting sockets - release 2021-11-13 19:17:50 -08:00
Philippe G
1dbffe6753 no EXTRAM attribute + cosmetics - release 2021-11-13 16:43:51 -08:00
6 changed files with 6 additions and 33 deletions

View File

@@ -218,7 +218,7 @@ void raop_sink_init(raop_cmd_vcb_t cmd_cb, raop_data_cb_t data_cb) {
raop_cbs.data = data_cb; raop_cbs.data = data_cb;
TimerHandle_t timer = xTimerCreate("raopStart", 5000 / portTICK_RATE_MS, pdTRUE, NULL, raop_start_handler); TimerHandle_t timer = xTimerCreate("raopStart", 5000 / portTICK_RATE_MS, pdTRUE, NULL, raop_start_handler);
xTimerStart(timer, portMAX_DELAY); xTimerStart(timer, portMAX_DELAY);
LOG_INFO( "delaying AirPlay start"); LOG_INFO( "Delaying AirPlay start");
} }
} }

View File

@@ -47,7 +47,8 @@ static EXT_RAM_ATTR struct button_s {
TimerHandle_t timer; TimerHandle_t timer;
} buttons[MAX_BUTTONS]; } buttons[MAX_BUTTONS];
static EXT_RAM_ATTR struct { // can't use EXT_RAM_ATTR for initialized structure
static struct {
int gpio, level; int gpio, level;
struct button_s *button; struct button_s *button;
} polled_gpio[] = { {36, -1, NULL}, {39, -1, NULL}, {-1, -1, NULL} }; } polled_gpio[] = { {36, -1, NULL}, {39, -1, NULL}, {-1, -1, NULL} };

View File

@@ -218,7 +218,6 @@ static void notify(in_addr_t ip, u16_t hport, u16_t cport) {
// close existing CLI connection and open new one // close existing CLI connection and open new one
if (cli_sock >= 0) closesocket(cli_sock); if (cli_sock >= 0) closesocket(cli_sock);
cli_sock = socket(AF_INET, SOCK_STREAM, 0);
connect_cli_socket(); connect_cli_socket();
LOG_INFO("notified server %s hport %hu cport %hu", inet_ntoa(ip), hport, cport); LOG_INFO("notified server %s hport %hu cport %hu", inet_ntoa(ip), hport, cport);

View File

@@ -76,24 +76,7 @@ static esp_err_t _httpd_server_init(struct httpd_data *hd)
return ESP_FAIL; return ESP_FAIL;
} }
int ctrl_fd = cs_create_ctrl_sock(hd->config.ctrl_port);
if (ctrl_fd < 0) {
ESP_LOGE(TAG, LOG_FMT("error in creating ctrl socket (%d)"), errno);
close(fd);
return ESP_FAIL;
}
int msg_fd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
if (msg_fd < 0) {
ESP_LOGE(TAG, LOG_FMT("error in creating msg socket (%d)"), errno);
close(fd);
close(ctrl_fd);
return ESP_FAIL;
}
hd->listen_fd = fd; hd->listen_fd = fd;
hd->ctrl_fd = ctrl_fd;
hd->msg_fd = msg_fd;
return ESP_OK; return ESP_OK;
} }
@@ -198,14 +181,6 @@ static esp_err_t _httpd_server(struct httpd_data *hd)
} }
/* Case0: Do we have a control message? */ /* Case0: Do we have a control message? */
if (FD_ISSET(hd->ctrl_fd, &read_set)) {
ESP_LOGD(TAG, LOG_FMT("processing ctrl message"));
_httpd_process_ctrl_msg(hd);
if (hd->hd_td.status == THREAD_STOPPING) {
ESP_LOGD(TAG, LOG_FMT("stopping thread"));
return ESP_FAIL;
}
}
/* Case1: Do we have any activity on the current data /* Case1: Do we have any activity on the current data
* sessions? */ * sessions? */
@@ -259,8 +234,6 @@ static void _httpd_thread(void *arg)
} }
ESP_LOGD(TAG, LOG_FMT("web server exiting")); ESP_LOGD(TAG, LOG_FMT("web server exiting"));
close(hd->msg_fd);
cs_free_ctrl_sock(hd->ctrl_fd);
_httpd_close_all_sessions(hd); _httpd_close_all_sessions(hd);
close(hd->listen_fd); close(hd->listen_fd);
hd->hd_td.status = THREAD_STOPPED; hd->hd_td.status = THREAD_STOPPED;