#include "esp_err.h"
#include "esp_http_server.h"
+typedef enum {
+ HTTPD_SSL_TRANSPORT_SECURE, // SSL Enabled
+ HTTPD_SSL_TRANSPORT_INSECURE // SSL disabled
+} httpd_ssl_transport_mode_t;
+
/**
* HTTPS server config struct
*
/** Private key byte length */
size_t prvtkey_len;
- /** Enable SSL (default true) */
- bool secure_enable;
+ /** Transport Mode (default secure) */
+ httpd_ssl_transport_mode_t transport_mode;
- /** Port used when SSL is enabled (default 443) */
+ /** Port used when transport mode is secure (default 443) */
uint16_t port_secure;
- /** Port used when SSL is disabled (default 80) */
+ /** Port used when transport mode is insecure (default 80) */
uint16_t port_insecure;
};
* (http_server default config had to be copied for customization)
*
* Notes:
- * - port is set when starting the server, according to 'secure_enable'
+ * - port is set when starting the server, according to 'transport_mode'
* - one socket uses ~ 40kB RAM with SSL, we reduce the default socket count to 4
* - SSL sockets are usually long-lived, closing LRU prevents pool exhaustion DOS
* - Stack size may need adjustments depending on the user application
.open_fn = NULL, \
.close_fn = NULL, \
}, \
- .secure_enable = true, \
+ .transport_mode = HTTPD_SSL_TRANSPORT_SECURE, \
.port_secure = 443, \
.port_insecure = 80, \
}
httpd_sess_set_transport_ctx(server, sockfd, ssl, httpd_ssl_close);
// Set rx/tx/pending override functions
- httpd_set_sess_send_override(server, sockfd, httpd_ssl_send);
- httpd_set_sess_recv_override(server, sockfd, httpd_ssl_recv);
- httpd_set_sess_pending_override(server, sockfd, httpd_ssl_pending);
+ httpd_sess_set_send_override(server, sockfd, httpd_ssl_send);
+ httpd_sess_set_recv_override(server, sockfd, httpd_ssl_recv);
+ httpd_sess_set_pending_override(server, sockfd, httpd_ssl_pending);
// all access should now go through SSL
ESP_LOGI(TAG, "Starting server");
- if (config->secure_enable) {
+ if (HTTPD_SSL_TRANSPORT_SECURE == config->transport_mode) {
SSL_CTX *ctx = create_secure_context(config);
if (!ctx) {
return ESP_FAIL;