From 49cee347f5b234be056f57b1063617bfc221314b Mon Sep 17 00:00:00 2001 From: Francesco Cozzuto Date: Fri, 5 Dec 2025 09:19:25 +0100 Subject: [PATCH] Add the terminator "/" to directory names when returning directory listings from the web interface --- web/src/proxy_get.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/web/src/proxy_get.c b/web/src/proxy_get.c index 79bf3b1..04610e7 100644 --- a/web/src/proxy_get.c +++ b/web/src/proxy_get.c @@ -61,18 +61,22 @@ bool process_completion_read_dir(ProxyState *state, if (completion.type == TOASTY_RESULT_LIST_SUCCESS) { http_response_builder_status(operation->builder, 200); for (int i = 0; i < completion.listing.count; i++) { + + ToastyListingEntry *entry = &completion.listing.items[i]; + char vtag[32]; - int ret = snprintf(vtag, sizeof(vtag), "%lu", completion.listing.items[i].vtag); + int ret = snprintf(vtag, sizeof(vtag), "%lu", entry->vtag); if (ret < 0 || ret >= (int) sizeof(vtag)) { http_response_builder_status(operation->builder, 500); // Internal Server Error http_response_builder_send(operation->builder); return true; } - http_response_builder_body(operation->builder, (HTTP_String) { - completion.listing.items[i].name, - strlen(completion.listing.items[i].name), - }); - http_response_builder_body(operation->builder, HTTP_STR(" ")); + http_response_builder_body(operation->builder, (HTTP_String) { entry->name, strlen(entry->name) }); + if (entry->is_dir) { + http_response_builder_body(operation->builder, HTTP_STR("/ ")); + } else { + http_response_builder_body(operation->builder, HTTP_STR(" ")); + } http_response_builder_body(operation->builder, (HTTP_String) { vtag, ret }); http_response_builder_body(operation->builder, HTTP_STR("\n")); }