Compare commits

2 Commits
test ... main

Author SHA1 Message Date
e269bf62f3 fix: tryfix power status
All checks were successful
Build ESP32 BMC Firmware / build (push) Successful in 55s
2026-03-18 10:12:37 +01:00
3dd8296dbe auth: add authentication
All checks were successful
Build ESP32 BMC Firmware / build (push) Successful in 1m7s
2026-03-17 13:18:47 +01:00
4 changed files with 8 additions and 21 deletions

View File

@@ -27,7 +27,7 @@
// ============================================================================ // ============================================================================
// UART Serial Configuration // UART Serial Configuration
// ============================================================================ // ============================================================================
#define BMC_UART_NUM UART_NUM_0 #define BMC_UART_NUM UART_NUM_1
#define BMC_UART_TX_GPIO GPIO_NUM_43 #define BMC_UART_TX_GPIO GPIO_NUM_43
#define BMC_UART_RX_GPIO GPIO_NUM_44 #define BMC_UART_RX_GPIO GPIO_NUM_44
#define BMC_UART_BAUD_RATE 115200 #define BMC_UART_BAUD_RATE 115200

View File

@@ -241,6 +241,6 @@ esp_err_t gpio_reset(void) {
} }
bool gpio_power_status(void) { bool gpio_power_status(void) {
int level = gpio_get_level(BMC_GPIO_POWER); int level = gpio_read(BMC_GPIO_POWER);
return (level == 1); return (level == 1);
} }

View File

@@ -1023,7 +1023,7 @@
const indicator = document.getElementById('power-indicator'); const indicator = document.getElementById('power-indicator');
const status = document.getElementById('power-status'); const status = document.getElementById('power-status');
if (result.data.power_good) { if (result.data.power_status === 'on') {
indicator.classList.add('on'); indicator.classList.add('on');
status.textContent = 'ON'; status.textContent = 'ON';
} else { } else {
@@ -1087,14 +1087,7 @@
function connectWebSocket() { function connectWebSocket() {
const protocol = window.location.protocol === 'https' ? 'wss' : 'ws'; const protocol = window.location.protocol === 'https' ? 'wss' : 'ws';
const auth = getStoredCredentials(); const wsUrl = `${protocol}://${window.location.host}/api/serial/ws`;
let wsUrl = `${protocol}://${window.location.host}/api/serial/ws`;
// Add auth parameter for WebSocket authentication
if (auth) {
const authB64 = btoa(auth.username + ':' + auth.password);
wsUrl += `?auth=${encodeURIComponent(authB64)}`;
}
ws = new WebSocket(wsUrl); ws = new WebSocket(wsUrl);

View File

@@ -504,14 +504,9 @@ static void uart_to_ws_callback(const uint8_t *data, size_t len) {
} }
static esp_err_t ws_serial_handler(httpd_req_t *req) { static esp_err_t ws_serial_handler(httpd_req_t *req) {
#if BMC_HTTP_AUTH_ENABLED // Note: WebSocket authentication is disabled because browsers don't support
// Check authentication on WebSocket handshake // custom Authorization headers on WebSocket connections.
// The Authorization header is available during the initial HTTP upgrade request // TODO: Find a way to fix this
if (!check_auth(req)) {
// Send 401 response - this will fail the WebSocket handshake
return send_auth_required(req);
}
#endif
// For WebSocket handlers with is_websocket=true, ESP-IDF handles the handshake // For WebSocket handlers with is_websocket=true, ESP-IDF handles the handshake
// internally. This handler is only called for frame processing. // internally. This handler is only called for frame processing.
@@ -871,7 +866,6 @@ AUTH_HANDLER(auth_api_power_reset_handler, api_power_reset_handler)
AUTH_HANDLER(auth_api_serial_config_get_handler, api_serial_config_get_handler) AUTH_HANDLER(auth_api_serial_config_get_handler, api_serial_config_get_handler)
AUTH_HANDLER(auth_api_serial_config_set_handler, api_serial_config_set_handler) AUTH_HANDLER(auth_api_serial_config_set_handler, api_serial_config_set_handler)
AUTH_HANDLER(auth_api_serial_send_handler, api_serial_send_handler) AUTH_HANDLER(auth_api_serial_send_handler, api_serial_send_handler)
AUTH_HANDLER(auth_ws_serial_handler, ws_serial_handler)
AUTH_HANDLER(auth_api_system_info_handler, api_system_info_handler) AUTH_HANDLER(auth_api_system_info_handler, api_system_info_handler)
AUTH_HANDLER(auth_api_system_status_handler, api_system_status_handler) AUTH_HANDLER(auth_api_system_status_handler, api_system_status_handler)
AUTH_HANDLER(auth_api_ota_status_handler, api_ota_status_handler) AUTH_HANDLER(auth_api_ota_status_handler, api_ota_status_handler)
@@ -949,7 +943,7 @@ static const httpd_uri_t uri_api_serial_send = {
static const httpd_uri_t uri_ws_serial = { static const httpd_uri_t uri_ws_serial = {
.uri = "/api/serial/ws", .uri = "/api/serial/ws",
.method = HTTP_GET, .method = HTTP_GET,
.handler = auth_ws_serial_handler, .handler = ws_serial_handler,
.is_websocket = true, .is_websocket = true,
}; };