feat: configure api key using env var
parent
3b1df332a3
commit
323fa65921
|
@ -1,9 +1,9 @@
|
|||
#ifndef LANDER_HTTP_TYPES
|
||||
#define LANDER_HTTP_TYPES
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
// Array mapping the http_request_method enum to strings
|
||||
extern const char *http_method_names[];
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
|
||||
#include "http/types.h"
|
||||
|
||||
http_body *http_body_init() {
|
||||
return calloc(sizeof(http_body), 1);
|
||||
}
|
||||
http_body *http_body_init() { return calloc(sizeof(http_body), 1); }
|
||||
|
||||
void http_body_reset(http_body *body) {
|
||||
if (body->type == http_body_file) {
|
||||
|
|
|
@ -76,8 +76,8 @@ bool http_loop_step_body_to_buf(event_loop_conn *conn) {
|
|||
|
||||
size_t bytes_to_copy = MIN(conn->rbuf_size - conn->rbuf_read,
|
||||
ctx->req.body.expected_len - ctx->req.body.len);
|
||||
memcpy(&ctx->req.body.buf[ctx->req.body.len],
|
||||
&conn->rbuf[conn->rbuf_read], bytes_to_copy);
|
||||
memcpy(&ctx->req.body.buf[ctx->req.body.len], &conn->rbuf[conn->rbuf_read],
|
||||
bytes_to_copy);
|
||||
ctx->req.body.len += bytes_to_copy;
|
||||
conn->rbuf_read += bytes_to_copy;
|
||||
|
||||
|
@ -114,7 +114,8 @@ bool http_loop_step_auth(event_loop_conn *conn) {
|
|||
struct phr_header *header = &ctx->req.headers[i];
|
||||
|
||||
if ((strncmp("X-Api-Key", header->name, header->name_len) == 0) &&
|
||||
(strncmp(header->value, ctx->g->api_key, header->value_len) == 0)) {
|
||||
(strncmp(header->value, ctx->g->api_key, header->value_len) == 0) &&
|
||||
strlen(ctx->g->api_key) == header->value_len) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
11
src/main.c
11
src/main.c
|
@ -3,9 +3,18 @@
|
|||
#include "lander.h"
|
||||
#include "log.h"
|
||||
|
||||
#define ENV(var, env_var) \
|
||||
const char *var = getenv(env_var); \
|
||||
if (var == NULL) { \
|
||||
critical(1, "Missing environment variable %s", env_var); \
|
||||
} \
|
||||
var = strdup(var);
|
||||
|
||||
int main() {
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
|
||||
ENV(api_key, "LANDER_API_KEY");
|
||||
|
||||
info("Initializing trie");
|
||||
|
||||
Trie *trie;
|
||||
|
@ -21,7 +30,7 @@ int main() {
|
|||
gctx->trie = trie;
|
||||
gctx->routes = lander_routes;
|
||||
gctx->route_count = sizeof(lander_routes) / sizeof(lander_routes[0]);
|
||||
gctx->api_key = "test";
|
||||
gctx->api_key = api_key;
|
||||
event_loop *el = http_loop_init(gctx);
|
||||
|
||||
http_loop_run(el, 18080);
|
||||
|
|
Loading…
Reference in New Issue