diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2026-02-21 13:19:25 +0100 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2026-02-21 13:19:25 +0100 |
| commit | a66d5b90db496208d8fd2aa022fa935285a0b9a9 (patch) | |
| tree | aa40637b79b2810e2af6f28127ffced1bf155b34 | |
| parent | 1b19afaa339f2f68520d61b634600ddeb04effb7 (diff) | |
Simplify some of teh html
| -rw-r--r-- | src/app.c | 7 | ||||
| -rw-r--r-- | src/html.c | 37 |
2 files changed, 10 insertions, 34 deletions
@@ -21,16 +21,19 @@ static void sqliteError(void *pArg, int iErrCode, const char *zMsg) { static int generate_secret(char *out) { unsigned char bytes[16]; int fd = open("/dev/urandom", O_RDONLY); - if (fd < 0) return -1; + if (fd < 0) abort(); ssize_t n = read(fd, bytes, 16); close(fd); - if (n != 16) return -1; + + if (n != 16) abort(); + static const char hex[] = "0123456789abcdef"; for (int i = 0; i < 16; i++) { out[i*2] = hex[(bytes[i] >> 4) & 0x0f]; out[i*2+1] = hex[bytes[i] & 0x0f]; } out[32] = '\0'; + return 0; } @@ -440,14 +440,6 @@ char *html_render_client_detail_page(const char *host, const struct GetClientOnl " <title>BorgFlag - %s</title>\n", client_result->name); emit_stylesheet(f); fprintf(f, - "<script>\n" - "function copy(btn) {\n" - " navigator.clipboard.writeText(btn.closest('pre').innerText.replace('Copy','').trim()).then(() => {\n" - " btn.textContent = 'Copied!';\n" - " setTimeout(() => btn.textContent = 'Copy', 2000);\n" - " });\n" - "}\n" - "</script>\n" "</head>\n" "<body>\n" " <header>\n" @@ -476,36 +468,17 @@ char *html_render_client_detail_page(const char *host, const struct GetClientOnl " <code>Secret: %s</code>\n" " </article>\n" " <details>\n" - " <summary>API Snippets</summary>\n" + " <summary>How To</summary>\n" " <div>\n" - " <div>\n" - " <h4>Start backup</h4>\n" - " <pre><span class=\"cmd\">curl</span> <span class=\"flag\">-X POST</span> <span class=\"url\">http://%s/api/report</span> \\\n" - " <span class=\"flag\">-H</span> <span class=\"val\">\"Content-Type: application/json\"</span> \\\n" - " <span class=\"flag\">-d</span> <span class=\"val\">'{</span>\n" - " <span class=\"key\">\"client\"</span>: <span class=\"val\">\"%s\"</span>,\n" - " <span class=\"key\">\"secret\"</span>: <span class=\"secret\">\"%s\"</span>,\n" - " <span class=\"key\">\"event\"</span>: <span class=\"val\">\"begin_backup\"</span>\n" - " <span class=\"val\">}'</span><button onclick=\"copy(this)\">Copy</button></pre>\n" - " </div>\n" - " <div>\n" - " <h4>End backup</h4>\n" - " <pre><span class=\"cmd\">curl</span> <span class=\"flag\">-X POST</span> <span class=\"url\">http://%s/api/report</span> \\\n" - " <span class=\"flag\">-H</span> <span class=\"val\">\"Content-Type: application/json\"</span> \\\n" - " <span class=\"flag\">-d</span> <span class=\"val\">'{</span>\n" - " <span class=\"key\">\"client\"</span>: <span class=\"val\">\"%s\"</span>,\n" - " <span class=\"key\">\"secret\"</span>: <span class=\"secret\">\"%s\"</span>,\n" - " <span class=\"key\">\"event\"</span>: <span class=\"val\">\"end_backup\"</span>\n" - " <span class=\"val\">}'</span><button onclick=\"copy(this)\">Copy</button></pre>\n" - " </div>\n" + " <pre><code>curl -s -X POST %s \\\n" + " -H \"Content-Type: application/json\" \\\n" + " -d \'{\"client\": \"%s\", \"secret\": \"%s\", \"event\": \"begin_backup\"}\'" + "</pre></code>\n" " </div>\n" " </details>\n", client_result->secret, host ? host : "localhost", client_result->name, - client_result->secret, - host ? host : "localhost", - client_result->name, client_result->secret ); |
