From f08ddd86586c02e117d012c7afd00b8529dfb747 Mon Sep 17 00:00:00 2001 From: simon987 Date: Sun, 19 Apr 2020 20:02:44 -0400 Subject: [PATCH] Bug fixes --- src/index/static_generated.c | 2 +- src/log.c | 6 ++-- src/log.h | 4 +-- src/main.c | 1 - src/web/serve.c | 70 ++++++++++++++++++------------------ third-party/libscan | 2 +- 6 files changed, 41 insertions(+), 44 deletions(-) diff --git a/src/index/static_generated.c b/src/index/static_generated.c index 0c708f9..496cbfe 100644 --- a/src/index/static_generated.c +++ b/src/index/static_generated.c @@ -1,3 +1,3 @@ -char mappings_json[1517] = {123,34,112,114,111,112,101,114,116,105,101,115,34,58,123,34,95,116,105,101,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,100,111,99,95,118,97,108,117,101,115,34,58,116,114,117,101,125,44,34,95,100,101,112,116,104,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,125,44,34,112,97,116,104,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,112,97,116,104,95,97,110,97,108,121,122,101,114,34,44,34,102,105,101,108,100,100,97,116,97,34,58,116,114,117,101,44,34,105,110,100,101,120,95,112,114,101,102,105,120,101,115,34,58,123,125,125,44,34,109,105,109,101,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,118,105,100,101,111,99,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,97,117,100,105,111,99,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,100,117,114,97,116,105,111,110,34,58,123,34,116,121,112,101,34,58,34,102,108,111,97,116,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,119,105,100,116,104,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,104,101,105,103,104,116,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,109,116,105,109,101,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,125,44,34,115,105,122,101,34,58,123,34,116,121,112,101,34,58,34,108,111,110,103,34,125,44,34,105,110,100,101,120,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,110,97,109,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,102,105,101,108,100,115,34,58,123,34,110,71,114,97,109,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,125,125,125,44,34,102,111,110,116,95,110,97,109,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,108,98,117,109,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,114,116,105,115,116,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,116,105,116,108,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,103,101,110,114,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,108,98,117,109,95,97,114,116,105,115,116,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,95,107,101,121,119,111,114,100,46,42,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,95,116,101,120,116,46,42,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,102,105,101,108,100,115,34,58,123,34,110,71,114,97,109,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,125,125,125,44,34,95,117,114,108,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,99,111,110,116,101,110,116,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,105,110,100,101,120,95,111,112,116,105,111,110,115,34,58,34,111,102,102,115,101,116,115,34,44,34,102,105,101,108,100,115,34,58,123,34,110,71,114,97,109,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,125,125,125,44,34,116,97,103,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,109,97,107,101,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,101,120,105,102,95,109,111,100,101,108,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,101,120,105,102,58,115,111,102,116,119,97,114,101,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,101,120,105,102,95,101,120,112,111,115,117,114,101,95,116,105,109,101,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,102,110,117,109,98,101,114,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,105,115,111,95,115,112,101,101,100,95,114,97,116,105,110,103,115,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,102,111,99,97,108,95,108,101,110,103,116,104,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,117,115,101,114,95,99,111,109,109,101,110,116,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,125,125,0}; +char mappings_json[1617] = {123,34,112,114,111,112,101,114,116,105,101,115,34,58,123,34,95,116,105,101,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,100,111,99,95,118,97,108,117,101,115,34,58,116,114,117,101,125,44,34,95,100,101,112,116,104,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,125,44,34,112,97,116,104,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,112,97,116,104,95,97,110,97,108,121,122,101,114,34,44,34,102,105,101,108,100,100,97,116,97,34,58,116,114,117,101,44,34,105,110,100,101,120,95,112,114,101,102,105,120,101,115,34,58,123,125,125,44,34,109,105,109,101,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,116,104,117,109,98,110,97,105,108,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,118,105,100,101,111,99,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,97,117,100,105,111,99,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,100,117,114,97,116,105,111,110,34,58,123,34,116,121,112,101,34,58,34,102,108,111,97,116,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,119,105,100,116,104,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,104,101,105,103,104,116,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,109,116,105,109,101,34,58,123,34,116,121,112,101,34,58,34,105,110,116,101,103,101,114,34,125,44,34,115,105,122,101,34,58,123,34,116,121,112,101,34,58,34,108,111,110,103,34,125,44,34,105,110,100,101,120,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,110,97,109,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,102,105,101,108,100,115,34,58,123,34,110,71,114,97,109,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,125,125,125,44,34,102,111,110,116,95,110,97,109,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,108,98,117,109,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,114,116,105,115,116,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,116,105,116,108,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,103,101,110,114,101,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,108,98,117,109,95,97,114,116,105,115,116,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,95,107,101,121,119,111,114,100,46,42,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,95,116,101,120,116,46,42,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,102,105,101,108,100,115,34,58,123,34,110,71,114,97,109,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,125,125,125,44,34,95,117,114,108,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,44,34,105,110,100,101,120,34,58,102,97,108,115,101,125,44,34,99,111,110,116,101,110,116,34,58,123,34,97,110,97,108,121,122,101,114,34,58,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,44,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,105,110,100,101,120,95,111,112,116,105,111,110,115,34,58,34,111,102,102,115,101,116,115,34,44,34,102,105,101,108,100,115,34,58,123,34,110,71,114,97,109,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,44,34,97,110,97,108,121,122,101,114,34,58,34,109,121,95,110,71,114,97,109,34,125,125,125,44,34,116,97,103,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,109,97,107,101,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,101,120,105,102,95,109,111,100,101,108,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,101,120,105,102,58,115,111,102,116,119,97,114,101,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,101,120,105,102,95,101,120,112,111,115,117,114,101,95,116,105,109,101,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,102,110,117,109,98,101,114,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,105,115,111,95,115,112,101,101,100,95,114,97,116,105,110,103,115,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,102,111,99,97,108,95,108,101,110,103,116,104,34,58,123,34,116,121,112,101,34,58,34,107,101,121,119,111,114,100,34,125,44,34,101,120,105,102,95,117,115,101,114,95,99,111,109,109,101,110,116,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,97,117,116,104,111,114,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,44,34,109,111,100,105,102,105,101,100,95,98,121,34,58,123,34,116,121,112,101,34,58,34,116,101,120,116,34,125,125,125,0}; char settings_json[525] = {123,34,105,110,100,101,120,34,58,123,34,114,101,102,114,101,115,104,95,105,110,116,101,114,118,97,108,34,58,34,51,48,115,34,44,34,99,111,100,101,99,34,58,34,98,101,115,116,95,99,111,109,112,114,101,115,115,105,111,110,34,125,44,34,97,110,97,108,121,115,105,115,34,58,123,34,116,111,107,101,110,105,122,101,114,34,58,123,34,112,97,116,104,95,116,111,107,101,110,105,122,101,114,34,58,123,34,116,121,112,101,34,58,34,112,97,116,104,95,104,105,101,114,97,114,99,104,121,34,125,44,34,109,121,95,110,71,114,97,109,95,116,111,107,101,110,105,122,101,114,34,58,123,34,116,121,112,101,34,58,34,110,71,114,97,109,34,44,34,109,105,110,95,103,114,97,109,34,58,51,44,34,109,97,120,95,103,114,97,109,34,58,51,125,125,44,34,97,110,97,108,121,122,101,114,34,58,123,34,112,97,116,104,95,97,110,97,108,121,122,101,114,34,58,123,34,116,111,107,101,110,105,122,101,114,34,58,34,112,97,116,104,95,116,111,107,101,110,105,122,101,114,34,44,34,102,105,108,116,101,114,34,58,91,34,108,111,119,101,114,99,97,115,101,34,93,125,44,34,99,97,115,101,95,105,110,115,101,110,115,105,116,105,118,101,95,107,119,95,97,110,97,108,121,122,101,114,34,58,123,34,116,111,107,101,110,105,122,101,114,34,58,34,107,101,121,119,111,114,100,34,44,34,102,105,108,116,101,114,34,58,91,34,108,111,119,101,114,99,97,115,101,34,93,125,44,34,109,121,95,110,71,114,97,109,34,58,123,34,116,111,107,101,110,105,122,101,114,34,58,34,109,121,95,110,71,114,97,109,95,116,111,107,101,110,105,122,101,114,34,44,34,102,105,108,116,101,114,34,58,91,34,108,111,119,101,114,99,97,115,101,34,44,34,97,115,99,105,105,102,111,108,100,105,110,103,34,93,125,44,34,99,111,110,116,101,110,116,95,97,110,97,108,121,122,101,114,34,58,123,34,116,111,107,101,110,105,122,101,114,34,58,34,115,116,97,110,100,97,114,100,34,44,34,102,105,108,116,101,114,34,58,91,34,108,111,119,101,114,99,97,115,101,34,44,34,97,115,99,105,105,102,111,108,100,105,110,103,34,93,125,125,125,125,0}; char pipeline_json[217] = {123,34,100,101,115,99,114,105,112,116,105,111,110,34,58,34,67,111,112,121,32,95,105,100,32,116,111,32,95,116,105,101,44,32,115,97,118,101,32,112,97,116,104,32,100,101,112,116,104,34,44,34,112,114,111,99,101,115,115,111,114,115,34,58,91,123,34,115,99,114,105,112,116,34,58,123,34,115,111,117,114,99,101,34,58,34,99,116,120,46,95,116,105,101,32,61,32,99,116,120,46,95,105,100,59,32,99,116,120,46,95,100,101,112,116,104,32,61,32,99,116,120,46,112,97,116,104,46,108,101,110,103,116,104,40,41,32,61,61,32,48,32,63,32,48,32,58,32,49,32,43,32,99,116,120,46,112,97,116,104,46,108,101,110,103,116,104,40,41,32,45,32,99,116,120,46,112,97,116,104,46,114,101,112,108,97,99,101,40,92,34,47,92,34,44,32,92,34,92,34,41,46,108,101,110,103,116,104,40,41,59,34,125,125,93,125,0}; diff --git a/src/log.c b/src/log.c index f8dc734..b0a27d3 100644 --- a/src/log.c +++ b/src/log.c @@ -12,7 +12,7 @@ const char *log_levels[] = { "DEBUG", "INFO", "WARNING", "ERROR", "FATAL" }; -void sist_logf(char *filepath, int level, char *format, ...) { +void sist_logf(const char *filepath, int level, char *format, ...) { static int is_tty = -1; if (is_tty == -1) { @@ -61,11 +61,11 @@ void sist_logf(char *filepath, int level, char *format, ...) { int ret = write(STDERR_FILENO, log_str, log_len); if (ret == -1) { - LOG_FATALF("serialize.c", "Could not write index descriptor: %s", strerror(errno)); + LOG_FATALF("serialize.c", "Could not write index descriptor: %s", strerror(errno)) } } -void sist_log(char *filepath, int level, char *str) { +void sist_log(const char *filepath, int level, char *str) { static int is_tty = -1; if (is_tty == -1) { diff --git a/src/log.h b/src/log.h index 43abe89..78e3c69 100644 --- a/src/log.h +++ b/src/log.h @@ -39,8 +39,8 @@ #include "sist.h" -void sist_logf(char *filepath, int level, char *format, ...); +void sist_logf(const char *filepath, int level, char *format, ...); -void sist_log(char *filepath, int level, char *str); +void sist_log(const char *filepath, int level, char *str); #endif diff --git a/src/main.c b/src/main.c index f0bc0e3..3eebc0a 100644 --- a/src/main.c +++ b/src/main.c @@ -82,7 +82,6 @@ void initialize_scan_context(scan_args_t *args) { // Media ScanCtx.media_ctx.tn_qscale = args->quality; ScanCtx.media_ctx.tn_size = args->size; - ScanCtx.media_ctx.content_size = args->content_size; ScanCtx.media_ctx.log = sist_log; ScanCtx.media_ctx.logf = sist_logf; ScanCtx.media_ctx.store = _store; diff --git a/src/web/serve.c b/src/web/serve.c index 56460f5..b1adfbe 100644 --- a/src/web/serve.c +++ b/src/web/serve.c @@ -59,7 +59,7 @@ void search_index(struct mg_connection *nc) { nc->flags |= MG_F_SEND_AND_CLOSE; } -int javascript(struct mg_connection *nc) { +void javascript(struct mg_connection *nc) { send_response_line(nc, 200, sizeof(bundle_js), "Content-Type: application/javascript"); mg_send(nc, bundle_js, sizeof(bundle_js)); nc->flags |= MG_F_SEND_AND_CLOSE; @@ -85,7 +85,7 @@ int client_requested_dark_theme(struct http_message *hm) { return ret; } -int style(struct mg_connection *nc, struct http_message *hm) { +void style(struct mg_connection *nc, struct http_message *hm) { if (client_requested_dark_theme(hm)) { send_response_line(nc, 200, sizeof(bundle_dark_css), "Content-Type: text/css"); @@ -98,7 +98,7 @@ int style(struct mg_connection *nc, struct http_message *hm) { nc->flags |= MG_F_SEND_AND_CLOSE; } -int img_sprite_skin_flat(struct mg_connection *nc, struct http_message *hm) { +void img_sprite_skin_flat(struct mg_connection *nc, struct http_message *hm) { if (client_requested_dark_theme(hm)) { send_response_line(nc, 200, sizeof(sprite_skin_flat_dark_png), "Content-Type: image/png"); mg_send(nc, sprite_skin_flat_dark_png, sizeof(sprite_skin_flat_dark_png)); @@ -113,7 +113,7 @@ int img_sprite_skin_flat(struct mg_connection *nc, struct http_message *hm) { void thumbnail(struct mg_connection *nc, struct http_message *hm, struct mg_str *path) { if (path->len != UUID_STR_LEN * 2 + 2) { - LOG_DEBUGF("serve.c", "Invalid thumbnail path: %.*s", (int) path->len, path->p); + LOG_DEBUGF("serve.c", "Invalid thumbnail path: %.*s", (int) path->len, path->p) nc->flags |= MG_F_SEND_AND_CLOSE; return; } @@ -129,14 +129,14 @@ void thumbnail(struct mg_connection *nc, struct http_message *hm, struct mg_str uuid_t uuid; int ret = uuid_parse(arg_uuid, uuid); if (ret != 0) { - LOG_DEBUGF("serve.c", "Invalid thumbnail UUID: %s", arg_uuid); + LOG_DEBUGF("serve.c", "Invalid thumbnail UUID: %s", arg_uuid) nc->flags |= MG_F_SEND_AND_CLOSE; return; } store_t *store = get_store(arg_index); if (store == NULL) { - LOG_DEBUGF("serve.c", "Could not get store for index: %s", arg_index); + LOG_DEBUGF("serve.c", "Could not get store for index: %s", arg_index) nc->flags |= MG_F_SEND_AND_CLOSE; return; } @@ -159,7 +159,7 @@ void search(struct mg_connection *nc, struct http_message *hm) { return; } - char * body = malloc(hm->body.len + 1); + char *body = malloc(hm->body.len + 1); memcpy(body, hm->body.p, hm->body.len); *(body + hm->body.len) = '\0'; @@ -170,23 +170,26 @@ void search(struct mg_connection *nc, struct http_message *hm) { free(body); } -//TODO -//int serve_file_from_url(cJSON *json, index_t *idx, onion_request *req, onion_response *res) { -// -// const char *path = cJSON_GetObjectItem(json, "path")->valuestring; -// const char *name = cJSON_GetObjectItem(json, "name")->valuestring; -// const char *ext = cJSON_GetObjectItem(json, "extension")->valuestring; -// -// char url[8196]; -// snprintf(url, sizeof(url), -// "%s%s/%s%s%s", -// idx->desc.rewrite_url, path, name, strlen(ext) == 0 ? "" : ".", ext); -// -// dyn_buffer_t encoded = url_escape(url); -// int ret = onion_shortcut_redirect(encoded.buf, req, res); -// dyn_buffer_destroy(&encoded); -// return ret; -//} +int serve_file_from_url(cJSON *json, index_t *idx, struct mg_connection *nc) { + + const char *path = cJSON_GetObjectItem(json, "path")->valuestring; + const char *name = cJSON_GetObjectItem(json, "name")->valuestring; + const char *ext = cJSON_GetObjectItem(json, "extension")->valuestring; + + char url[8196]; + snprintf(url, sizeof(url), + "%s%s/%s%s%s", + idx->desc.rewrite_url, path, name, strlen(ext) == 0 ? "" : ".", ext); + + dyn_buffer_t encoded = url_escape(url); + mg_http_send_redirect( + nc, 308, + (struct mg_str) MG_MK_STR_N(encoded.buf, encoded.cur), + (struct mg_str) MG_NULL_STR + ); + dyn_buffer_destroy(&encoded); + nc->flags |= MG_F_SEND_AND_CLOSE; +} void serve_file_from_disk(cJSON *json, index_t *idx, struct mg_connection *nc, struct http_message *hm) { @@ -209,7 +212,7 @@ void serve_file_from_disk(cJSON *json, index_t *idx, struct mg_connection *nc, s mg_http_serve_file(nc, hm, full_path, mg_mk_str(mime), mg_mk_str(disposition)); } -int index_info(struct mg_connection *nc) { +void index_info(struct mg_connection *nc) { cJSON *json = cJSON_CreateObject(); cJSON *arr = cJSON_AddArrayToObject(json, "indices"); @@ -238,7 +241,7 @@ int index_info(struct mg_connection *nc) { void document_info(struct mg_connection *nc, struct http_message *hm, struct mg_str *path) { if (path->len != UUID_STR_LEN + 2) { - LOG_DEBUGF("serve.c", "Invalid document_info path: %.*s", (int) path->len, path->p); + LOG_DEBUGF("serve.c", "Invalid document_info path: %.*s", (int) path->len, path->p) nc->flags |= MG_F_SEND_AND_CLOSE; return; } @@ -265,7 +268,7 @@ void document_info(struct mg_connection *nc, struct http_message *hm, struct mg_ } char *json_str = cJSON_PrintUnformatted(source); - send_response_line(nc, 200, (int)strlen(json_str), "Content-Type: application/json"); + send_response_line(nc, 200, (int) strlen(json_str), "Content-Type: application/json"); free(json_str); cJSON_Delete(doc); @@ -275,7 +278,7 @@ void document_info(struct mg_connection *nc, struct http_message *hm, struct mg_ void file(struct mg_connection *nc, struct http_message *hm, struct mg_str *path) { if (path->len != UUID_STR_LEN + 2) { - LOG_DEBUGF("serve.c", "Invalid file path: %.*s", (int) path->len, path->p); + LOG_DEBUGF("serve.c", "Invalid file path: %.*s", (int) path->len, path->p) nc->flags |= MG_F_SEND_AND_CLOSE; return; } @@ -316,13 +319,12 @@ void file(struct mg_connection *nc, struct http_message *hm, struct mg_str *path if (strlen(idx->desc.rewrite_url) == 0) { serve_file_from_disk(source, idx, nc, hm); } else { - //TODO: -// serve_file_from_url(source, idx, nc, hm); + serve_file_from_url(source, idx, nc); } cJSON_Delete(doc); } -int status(struct mg_connection *nc) { +void status(struct mg_connection *nc) { char *status = elastic_get_status(); if (strcmp(status, "open") == 0) { send_response_line(nc, 204, 0, "Content-Type: application/json"); @@ -335,10 +337,6 @@ int status(struct mg_connection *nc) { nc->flags |= MG_F_SEND_AND_CLOSE; } -typedef struct { - void *resp; -} req_ctx_t; - static void ev_router(struct mg_connection *nc, int ev, void *p) { struct mg_str scheme; struct mg_str user_info; @@ -383,7 +381,7 @@ static void ev_router(struct mg_connection *nc, int ev, void *p) { } else if (ev == MG_EV_POLL) { if (nc->user_data != NULL) { //Waiting for ES reply - subreq_ctx_t *ctx = (subreq_ctx_t*) nc->user_data; + subreq_ctx_t *ctx = (subreq_ctx_t *) nc->user_data; mg_mgr_poll(&ctx->mgr, 0); if (ctx->ev_data.done == TRUE) { diff --git a/third-party/libscan b/third-party/libscan index ec129b8..23d88d7 160000 --- a/third-party/libscan +++ b/third-party/libscan @@ -1 +1 @@ -Subproject commit ec129b84e87550a2bd4361d3a3701c687590992a +Subproject commit 23d88d7ea3d830f4aa864fec37b12022b2c8395c