From 57c1d787e3503590931576a268382e7ee4ff2b4b Mon Sep 17 00:00:00 2001 From: cpq Date: Mon, 20 Feb 2023 21:25:55 +0000 Subject: [PATCH] Fix #2075. Add MG_HTTP_DIRLIST_TIME_FMT, remove MG_HTTP_DIRLIST_TIME and MG_HTTP_DIRLIST_TIME_UTC --- examples/http-server/Makefile | 4 ++-- mongoose.c | 13 +++---------- src/http.c | 13 +++---------- 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/examples/http-server/Makefile b/examples/http-server/Makefile index b5b1b1eb..aad919a9 100644 --- a/examples/http-server/Makefile +++ b/examples/http-server/Makefile @@ -5,8 +5,8 @@ SOURCES = main.c mongoose.c # Source code files CFLAGS = -W -Wall -Wextra -g -I. # Build options # Mongoose build options. See https://mongoose.ws/documentation/#build-options -CFLAGS_MONGOOSE += -DMG_HTTP_DIRLIST_TIME=1 -DMG_ENABLE_SSI=1 -CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 -DMG_ENABLE_IPV6=1 +CFLAGS_MONGOOSE += -DMG_HTTP_DIRLIST_TIME_FMT="%Y/%m/%d %H:%M:%S" +CFLAGS_MONGOOSE += -DMG_ENABLE_LINES=1 -DMG_ENABLE_IPV6=1 -DMG_ENABLE_SSI=1 ifeq ($(OS),Windows_NT) # Windows settings. Assume MinGW compiler. To use VC: make CC=cl CFLAGS=/MD OUT=/Feprog.exe PROG ?= example.exe # Use .exe suffix for the binary diff --git a/mongoose.c b/mongoose.c index 6cb77e29..7e0dc78c 100644 --- a/mongoose.c +++ b/mongoose.c @@ -1861,22 +1861,15 @@ static void printdirentry(const char *name, void *userdata) { } else { mg_snprintf(sz, sizeof(sz), "%lld", (uint64_t) size); } -#if defined(MG_HTTP_DIRLIST_TIME) +#if defined(MG_HTTP_DIRLIST_TIME_FMT) { - char time_str[30]; + char time_str[40]; struct tm *time_info = localtime(&t); strftime(time_str, sizeof time_str, "%Y/%m/%d %H:%M:%S", time_info); mg_snprintf(mod, sizeof(mod), "%s", time_str); } -#elif defined(MG_HTTP_DIRLIST_TIME_UTC) - { - char time_str[30]; - struct tm *time_info = gmtime(&t); - strftime(time_str, sizeof time_str, "%Y/%m/%d %H:%M:%S", time_info); - mg_snprintf(mod, sizeof(mod), "%s", time_str); - } #else - mg_snprintf(mod, sizeof(mod), "%ld", (unsigned long) t); + mg_snprintf(mod, sizeof(mod), "%lu", (unsigned long) t); #endif n = (int) mg_url_encode(name, strlen(name), path, sizeof(path)); mg_printf(d->c, diff --git a/src/http.c b/src/http.c index f9885ac6..e36ef25d 100644 --- a/src/http.c +++ b/src/http.c @@ -562,22 +562,15 @@ static void printdirentry(const char *name, void *userdata) { } else { mg_snprintf(sz, sizeof(sz), "%lld", (uint64_t) size); } -#if defined(MG_HTTP_DIRLIST_TIME) +#if defined(MG_HTTP_DIRLIST_TIME_FMT) { - char time_str[30]; + char time_str[40]; struct tm *time_info = localtime(&t); strftime(time_str, sizeof time_str, "%Y/%m/%d %H:%M:%S", time_info); mg_snprintf(mod, sizeof(mod), "%s", time_str); } -#elif defined(MG_HTTP_DIRLIST_TIME_UTC) - { - char time_str[30]; - struct tm *time_info = gmtime(&t); - strftime(time_str, sizeof time_str, "%Y/%m/%d %H:%M:%S", time_info); - mg_snprintf(mod, sizeof(mod), "%s", time_str); - } #else - mg_snprintf(mod, sizeof(mod), "%ld", (unsigned long) t); + mg_snprintf(mod, sizeof(mod), "%lu", (unsigned long) t); #endif n = (int) mg_url_encode(name, strlen(name), path, sizeof(path)); mg_printf(d->c,