summaryrefslogtreecommitdiff
path: root/content/fetchers/about/about.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2020-09-24 23:07:40 +0100
committerVincent Sanders <vince@kyllikki.org>2020-09-27 00:37:32 +0100
commit86ecde9a473deffdbb023317074a46c124477ca2 (patch)
tree808f0e13af021415296f32902d6f4ec85538d6fa /content/fetchers/about/about.c
parentda7904554c476f4e8451cc54f6f3de882c2f03b6 (diff)
downloadnetsurf-86ecde9a473deffdbb023317074a46c124477ca2.tar.gz
netsurf-86ecde9a473deffdbb023317074a46c124477ca2.tar.bz2
split out about handler config handler
Diffstat (limited to 'content/fetchers/about/about.c')
-rw-r--r--content/fetchers/about/about.c101
1 files changed, 1 insertions, 100 deletions
diff --git a/content/fetchers/about/about.c b/content/fetchers/about/about.c
index 117bd6689..e41e6c899 100644
--- a/content/fetchers/about/about.c
+++ b/content/fetchers/about/about.c
@@ -52,6 +52,7 @@
#include "certificate.h"
#include "imagecache.h"
#include "atestament.h"
+#include "config.h"
#include "about.h"
typedef bool (*fetch_about_handler)(struct fetch_about_context *);
@@ -288,106 +289,6 @@ static bool fetch_about_licence_handler(struct fetch_about_context *ctx)
}
-/**
- * Handler to generate about scheme config page
- *
- * \param ctx The fetcher context.
- * \return true if handled false if aborted.
- */
-static bool fetch_about_config_handler(struct fetch_about_context *ctx)
-{
- fetch_msg msg;
- char buffer[1024];
- int slen = 0;
- unsigned int opt_loop = 0;
- int elen = 0; /* entry length */
- nserror res;
- bool even = false;
-
- /* content is going to return ok */
- fetch_set_http_code(ctx->fetchh, 200);
-
- /* content type */
- if (fetch_about_send_header(ctx, "Content-Type: text/html")) {
- goto fetch_about_config_handler_aborted;
- }
-
- res = fetch_about_ssenddataf(ctx,
- "<html>\n<head>\n"
- "<title>NetSurf Browser Config</title>\n"
- "<link rel=\"stylesheet\" type=\"text/css\" "
- "href=\"resource:internal.css\">\n"
- "</head>\n"
- "<body "
- "id =\"configlist\" "
- "class=\"ns-even-bg ns-even-fg ns-border\" "
- "style=\"overflow: hidden;\">\n"
- "<h1 class=\"ns-border\">NetSurf Browser Config</h1>\n"
- "<table class=\"config\">\n"
- "<tr><th>Option</th>"
- "<th>Type</th>"
- "<th>Provenance</th>"
- "<th>Setting</th></tr>\n");
- if (res != NSERROR_OK) {
- goto fetch_about_config_handler_aborted;
- }
-
- msg.type = FETCH_DATA;
- msg.data.header_or_data.buf = (const uint8_t *) buffer;
-
- do {
- if (even) {
- elen = nsoption_snoptionf(buffer + slen,
- sizeof buffer - slen,
- opt_loop,
- "<tr class=\"ns-even-bg\">"
- "<th class=\"ns-border\">%k</th>"
- "<td class=\"ns-border\">%t</td>"
- "<td class=\"ns-border\">%p</td>"
- "<td class=\"ns-border\">%V</td>"
- "</tr>\n");
- } else {
- elen = nsoption_snoptionf(buffer + slen,
- sizeof buffer - slen,
- opt_loop,
- "<tr class=\"ns-odd-bg\">"
- "<th class=\"ns-border\">%k</th>"
- "<td class=\"ns-border\">%t</td>"
- "<td class=\"ns-border\">%p</td>"
- "<td class=\"ns-border\">%V</td>"
- "</tr>\n");
- }
- if (elen <= 0)
- break; /* last option */
-
- if (elen >= (int) (sizeof buffer - slen)) {
- /* last entry would not fit in buffer, submit buffer */
- msg.data.header_or_data.len = slen;
- if (fetch_about_send_callback(&msg, ctx))
- goto fetch_about_config_handler_aborted;
- slen = 0;
- } else {
- /* normal addition */
- slen += elen;
- opt_loop++;
- even = !even;
- }
- } while (elen > 0);
-
- slen += snprintf(buffer + slen, sizeof buffer - slen,
- "</table>\n</body>\n</html>\n");
-
- msg.data.header_or_data.len = slen;
- if (fetch_about_send_callback(&msg, ctx))
- goto fetch_about_config_handler_aborted;
-
- fetch_about_send_finished(ctx);
-
- return true;
-
-fetch_about_config_handler_aborted:
- return false;
-}
/**