From b073db4017008ceb638a9c23c8cc93e60a3a7fdb Mon Sep 17 00:00:00 2001 From: xengineering Date: Sun, 23 Mar 2025 17:53:24 +0100 Subject: fw: app: Move application firmware code here This makes the structure of the `fw` folder more clear and separates application-related code from bootloader- or rtos-related code. --- fw/src/http.c | 112 ---------------------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 fw/src/http.c (limited to 'fw/src/http.c') diff --git a/fw/src/http.c b/fw/src/http.c deleted file mode 100644 index e206f86..0000000 --- a/fw/src/http.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * This Source Code Form is subject to the terms of the Mozilla Public License, - * v. 2.0. If a copy of the MPL was not distributed with this file, You can - * obtain one at https://mozilla.org/MPL/2.0/. - */ - - -#include - -#include -#include -#include -#include -#include - -#include "ws.h" - - -LOG_MODULE_REGISTER(http); - - -static const uint8_t index_html_gz[] = { - #include "index.html.gz.inc" -}; - -struct http_resource_detail_static index_resource_detail = { - .common = { - .type = HTTP_RESOURCE_TYPE_STATIC, - .bitmask_of_supported_http_methods = BIT(HTTP_GET), - .content_encoding = "gzip", - .content_type = "text/html", - }, - .static_data = index_html_gz, - .static_data_len = sizeof(index_html_gz), -}; - -static const uint8_t js_html_gz[] = { - #include "iot-contact.js.gz.inc" -}; - -struct http_resource_detail_static js_resource_detail = { - .common = { - .type = HTTP_RESOURCE_TYPE_STATIC, - .bitmask_of_supported_http_methods = BIT(HTTP_GET), - .content_encoding = "gzip", - .content_type = "text/javascript", - }, - .static_data = js_html_gz, - .static_data_len = sizeof(js_html_gz), -}; - -static int favicon_handler( - struct http_client_ctx *client, - enum http_data_status status, - const struct http_request_ctx *request_ctx, - struct http_response_ctx *response_ctx, - void *user_data -) { - LOG_DBG("Handling favicon request"); - - response_ctx->body = NULL; - response_ctx->body_len = 0; - response_ctx->final_chunk = true; - response_ctx->status = HTTP_204_NO_CONTENT; - - LOG_DBG("Favicon request handled"); - return 0; -} - -static struct http_resource_detail_dynamic favicon_resource_detail = { - .common = { - .type = HTTP_RESOURCE_TYPE_DYNAMIC, - .bitmask_of_supported_http_methods = BIT(HTTP_GET), - }, - .cb = favicon_handler, - .user_data = NULL, -}; - -static uint8_t websocket_read_buffer[1024]; - -struct http_resource_detail_websocket websocket_resource_detail = { - .common = { - .type = HTTP_RESOURCE_TYPE_WEBSOCKET, - .bitmask_of_supported_http_methods = BIT(HTTP_GET), - }, - .cb = ws_upgrade_handler, - .data_buffer = websocket_read_buffer, - .data_buffer_len = sizeof(websocket_read_buffer), -}; - -static uint16_t http_port = 80; - -HTTP_SERVICE_DEFINE(http_service, NULL, &http_port, 1, 10, NULL, NULL); - -HTTP_RESOURCE_DEFINE(index_resource, http_service, "/", &index_resource_detail); -HTTP_RESOURCE_DEFINE(websocket_resource, http_service, "/", &websocket_resource_detail); -HTTP_RESOURCE_DEFINE(favicon_resource, http_service, "/favicon.ico", &favicon_resource_detail); -HTTP_RESOURCE_DEFINE(js_resource, http_service, "/iot-contact.js", &js_resource_detail); - -int init_http_server(void) { - LOG_DBG("Starting HTTP server"); - - int ret = http_server_start(); - if (ret < 0) { - LOG_ERR("Failed to start HTTP server (%d)", ret); - return ret; - } - - LOG_INF("HTTP server was started"); - return 0; -} -SYS_INIT(init_http_server, APPLICATION, 99); -- cgit v1.2.3-70-g09d2