From 6092f321ddf5fccf9bded4c0b1b8eff40c5189d4 Mon Sep 17 00:00:00 2001 From: cel Date: Fri, 16 Oct 2020 11:15:24 -0400 Subject: [PATCH] Return search errors in HTML --- zet.dpi.c | 66 +++++++++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 36 deletions(-) diff --git a/zet.dpi.c b/zet.dpi.c index c63e94c..af16b35 100644 --- a/zet.dpi.c +++ b/zet.dpi.c @@ -234,6 +234,20 @@ static int dpi_respond_err(int fd, const char *fmt, ...) { return rc; } +static int html_error(int fd, const char *fmt, ...) { + int rc; + va_list ap; + int err = errno; + va_start(ap, fmt); + rc = write_buf(fd, "\nError:\n"); + rc |= vdprintf(fd, fmt, ap); + if (err != 0) rc |= dprintf(fd, ": %s", strerror(err)); + if (rc < 0) warn("dprintf"); + va_end(ap); + if (close(fd) < 0) warn("close"); + return 0; +} + static char *zet_get_title_fd(int fd, char *buf, size_t len) { if (fd < 0) return NULL; int rc = read_some(fd, (unsigned char *)buf, &len); @@ -383,8 +397,6 @@ static int zet_search_close(struct zet_search *sz) { static int dpi_serve_zet_all(int fd) { int rc; struct zet_search zs; - rc = zet_search_start(&zs, NULL, NULL); - if (rc < 0) return dpi_respond_err(fd, "Unable to list"); rc = dpi_send_header(fd, "text/html"); if (rc < 0) { warn("dpi_send_header"); close(fd); return 0; } rc = dprintf(fd, @@ -394,19 +406,15 @@ static int dpi_serve_zet_all(int fd) { "" ""); rc |= write_topbar(fd, PAGE_ALL, NULL, NULL); - rc |= write_buf(fd, "