Răsfoiți Sursa

Merge branch 'bugfix/http_server_client_list' into 'master'

httpd_server bugfix

See merge request espressif/esp-idf!12553
Mahavir Jain 4 ani în urmă
părinte
comite
2bddd67b7d

+ 6 - 2
components/esp_http_server/include/esp_http_server.h

@@ -1492,13 +1492,17 @@ esp_err_t httpd_sess_update_lru_counter(httpd_handle_t handle, int sockfd);
  * @brief   Returns list of current socket descriptors of active sessions
  *
  * @param[in] handle    Handle to server returned by httpd_start
- * @param[in,out] fds   In: Number of fds allocated in the supplied structure client_fds
+ * @param[in,out] fds   In: Size of provided client_fds array
  *                      Out: Number of valid client fds returned in client_fds,
  * @param[out] client_fds  Array of client fds
  *
+ * @note Size of provided array has to be equal or greater then maximum number of opened
+ *       sockets, configured upon initialization with max_open_sockets field in
+ *       httpd_config_t structure.
+ *
  * @return
  *  - ESP_OK              : Successfully retrieved session list
- *  - ESP_ERR_INVALID_ARG : Wrong arguments or list is longer than allocated
+ *  - ESP_ERR_INVALID_ARG : Wrong arguments or list is longer than provided array
  */
 esp_err_t httpd_get_client_list(httpd_handle_t handle, size_t *fds, int *client_fds);
 

+ 1 - 1
components/esp_http_server/src/httpd_main.c

@@ -105,7 +105,7 @@ esp_err_t httpd_queue_work(httpd_handle_t handle, httpd_work_fn_t work, void *ar
 esp_err_t httpd_get_client_list(httpd_handle_t handle, size_t *fds, int *client_fds)
 {
     struct httpd_data *hd = (struct httpd_data *) handle;
-    if (hd == NULL || fds == NULL || *fds == 0 || client_fds == NULL || *fds < hd->config.max_open_sockets) {
+    if (hd == NULL || fds == NULL || *fds == 0 || client_fds == NULL) {
         return ESP_ERR_INVALID_ARG;
     }
     size_t max_fds = *fds;

+ 0 - 3
components/esp_http_server/src/httpd_uri.c

@@ -329,9 +329,6 @@ esp_err_t httpd_uri(struct httpd_data *hd)
         aux->sd->ws_handshake_done = true;
         aux->sd->ws_handler = uri->handler;
         aux->sd->ws_control_frames = uri->handle_ws_control_frames;
-
-        /* Return immediately after handshake, no need to call handler here */
-        return ESP_OK;
     }
 #endif