diff options
| author | Jesper Jensen <jesper@jnsn.dev> | 2026-02-21 18:49:18 +0100 |
|---|---|---|
| committer | Jesper Jensen <jesper@jnsn.dev> | 2026-02-21 18:49:18 +0100 |
| commit | 983074cc8724f690948355d8962466d5b6cacb00 (patch) | |
| tree | c1aae17d8b32a865d7a6dff9c58caf9216b882fa /src | |
| parent | 9cb59aa6fd10b809d6a3bce8bd7d0b87f1684bea (diff) | |
Add the protocol to the curl example
Diffstat (limited to 'src')
| -rw-r--r-- | src/html.c | 7 | ||||
| -rw-r--r-- | src/html.h | 1 | ||||
| -rw-r--r-- | src/web.c | 5 | ||||
| -rw-r--r-- | src/web.h | 1 |
4 files changed, 10 insertions, 4 deletions
@@ -409,7 +409,7 @@ char *html_render_clients_page(const char *host, const struct ListClientResult * return buf; } -char *html_render_client_detail_page(const char *host, const struct GetClientOnlyResult *client_result, const struct GetBackupsResult *backups_result, size_t *out_len) { +char *html_render_client_detail_page(const char *host, const char* proto, const struct GetClientOnlyResult *client_result, const struct GetBackupsResult *backups_result, size_t *out_len) { // Determine status and staleness int is_stale = 0; const char *current_status = "OK"; @@ -468,14 +468,15 @@ char *html_render_client_detail_page(const char *host, const struct GetClientOnl " <details>\n" " <summary>How To</summary>\n" " <div>\n" - " <pre><code>curl -s -X POST %s \\\n" + " <pre><code>curl -s -X POST %s://%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", + proto != NULL ? proto : "http", + host != NULL ? host : "localhost", client_result->name, client_result->secret ); @@ -12,6 +12,7 @@ char *html_render_clients_page( char *html_render_client_detail_page( const char *host, + const char *proto, const struct GetClientOnlyResult *client, const struct GetBackupsResult *backups, size_t *out_len); @@ -144,7 +144,10 @@ static enum MHD_Result handler( *ptr = request; request->server = server; + // @COMPL: The proxy might rewrite this, and we should support that request->host = MHD_lookup_connection_value(connection, MHD_HEADER_KIND, "Host"); + // @COMPL: There are other headers we should look into + request->proto = MHD_lookup_connection_value(connection, MHD_HEADER_KIND, "X-Forwarded-Proto"); if(strcmp(method, "POST") == 0) { if(strcmp(url, "/clients") == 0 || strcmp(url, "/clients/delete") == 0 || strcmp(url, "/login") == 0) { @@ -518,7 +521,7 @@ static enum MHD_Result handler( // Render HTML size_t html_len; - char *html = html_render_client_detail_page(request->host, &client_result, backups_result, &html_len); + char *html = html_render_client_detail_page(request->host, request->proto, &client_result, backups_result, &html_len); free(backups_result); if (!html) { @@ -39,4 +39,5 @@ struct Request { struct MHD_PostProcessor *post_proc; // NULL when using PostCollector struct FormData form; const char *host; + const char *proto; }; |
