feat(lander): re-add Server header

new-lnm-integration
Jef Roosens 2023-12-09 12:34:02 +01:00
parent cda61f5433
commit 4ae1355cec
Signed by: Jef Roosens
GPG Key ID: B75D4F293C7052DB
4 changed files with 16 additions and 0 deletions

View File

@ -85,6 +85,8 @@ lnm_err lnm_http_loop_run(lnm_http_loop *hl, uint16_t port);
void lnm_http_loop_set_api_key(lnm_http_loop *hl, const char *api_key); void lnm_http_loop_set_api_key(lnm_http_loop *hl, const char *api_key);
void lnm_http_loop_set_server(lnm_http_loop *hl, const char *value);
/** /**
* Represents what state an HTTP loop request is currently in. * Represents what state an HTTP loop request is currently in.
*/ */
@ -118,6 +120,7 @@ typedef struct lnm_http_loop_gctx {
lnm_http_ctx_reset_fn ctx_reset; lnm_http_ctx_reset_fn ctx_reset;
lnm_http_ctx_free_fn ctx_free; lnm_http_ctx_free_fn ctx_free;
const char *api_key; const char *api_key;
const char *server;
void *c; void *c;
} lnm_http_loop_gctx; } lnm_http_loop_gctx;

View File

@ -131,3 +131,8 @@ void lnm_http_loop_set_api_key(lnm_http_loop *hl, const char *api_key) {
lnm_http_loop_gctx *gctx = hl->gctx; lnm_http_loop_gctx *gctx = hl->gctx;
gctx->api_key = api_key; gctx->api_key = api_key;
} }
void lnm_http_loop_set_server(lnm_http_loop *hl, const char *server) {
lnm_http_loop_gctx *gctx = hl->gctx;
gctx->server = server;
}

View File

@ -158,6 +158,11 @@ void lnm_http_loop_state_process_add_headers(lnm_http_conn *conn) {
lnm_http_res_add_header_len(res, lnm_http_header_content_length, buf, digits, lnm_http_res_add_header_len(res, lnm_http_header_content_length, buf, digits,
true); true);
if (ctx->g->server != NULL) {
lnm_http_res_add_header(res, lnm_http_header_server, (char *)ctx->g->server,
false);
}
ctx->state = lnm_http_loop_state_write_status_line; ctx->state = lnm_http_loop_state_write_status_line;
} }

View File

@ -7,6 +7,8 @@
#include "lander.h" #include "lander.h"
#include "log.h" #include "log.h"
const char *lander_server = "lander/" LANDER_VERSION;
lnm_http_loop *loop_init(lander_gctx *gctx, const char *api_key) { lnm_http_loop *loop_init(lander_gctx *gctx, const char *api_key) {
lnm_http_loop *hl; lnm_http_loop *hl;
lnm_http_step *step = NULL; lnm_http_step *step = NULL;
@ -15,6 +17,7 @@ lnm_http_loop *loop_init(lander_gctx *gctx, const char *api_key) {
(lnm_http_ctx_reset_fn)lander_ctx_reset, (lnm_http_ctx_reset_fn)lander_ctx_reset,
(lnm_http_ctx_free_fn)lander_ctx_free); (lnm_http_ctx_free_fn)lander_ctx_free);
lnm_http_loop_set_api_key(hl, api_key); lnm_http_loop_set_api_key(hl, api_key);
lnm_http_loop_set_server(hl, lander_server);
lnm_http_step_init(&step, lander_get_index); lnm_http_step_init(&step, lander_get_index);
lnm_http_route_init_literal(&route, lnm_http_method_get, "/", step); lnm_http_route_init_literal(&route, lnm_http_method_get, "/", step);