From bfd04560ed845d05019ee5f42225dbdb697a3de5 Mon Sep 17 00:00:00 2001 From: overflowerror Date: Tue, 15 Jun 2021 18:43:36 +0200 Subject: [PATCH] added demo for sessions --- Makefile | 4 ++-- demo/demo.c | 31 ++++++++++++++++++------------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/Makefile b/Makefile index 48ce236..659a53e 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,14 @@ CC = gcc LD = gcc CFLAGS = -Wall -g -std=c99 -ICFloor/src/ -Ilibargo/src/ -Ilibparcival/src/ -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 -LDFLAGS = -lpthread -lrt +LDFLAGS = -lpthread -lrt -luuid CFLOOR_LIB = CFloor/libcfloor.a LIBARGO = libargo/libargo.a LIBPARCIVAL = libparcival/libparcival.a LIBS = $(CFLOOR_LIB) $(LIBARGO) $(LIBPARCIVAL) -OBJS = obj/router.o obj/request.o obj/base_cfloor.o obj/base_cgi.o obj/auth.o obj/base64.o obj/common.o obj/cookies.o +OBJS = obj/router.o obj/request.o obj/base_cfloor.o obj/base_cgi.o obj/auth.o obj/base64.o obj/common.o obj/cookies.o obj/sessions.o DEPS = $(OBJS:%.o=%.d) DEMO_OBJS = obj/demo.o obj/entities.tab.o obj/template.tab.o diff --git a/demo/demo.c b/demo/demo.c index 5384a0f..e2eb4c7 100644 --- a/demo/demo.c +++ b/demo/demo.c @@ -1,8 +1,11 @@ #include #include +#include #include -#include + +#define SESSION_PTR_TYPE const char* +#include #include "entities.h" @@ -49,19 +52,21 @@ response_t template(ctx_t* ctx) { return templateResponse(200, "demo.templ", "Page Title", "Overflow"); } -GET("/cookies", cookies); -response_t cookies(ctx_t* ctx) { - char* test = getCookie(ctx, "test"); +GET("/sessions", sessions); +response_t sessions(ctx_t* ctx) { + const char** sessiondata = session_start(ctx); + + const char* output = "null\n"; - setCookie(ctx, "test", "foobar", cookieSettingsNull()); - - if (test == NULL) { - return rawResponse(200, "cookie not set"); - } else if (strcmp(test, "foobar") == 0) { - free(test); - return rawResponse(200, "cookie value correct"); + if (*sessiondata == NULL) { + *sessiondata = "Test\n"; } else { - free(test); - return rawResponse(200, "cookie value incorrect"); + output = *sessiondata; } + + fprintf(stderr, "%s, %d\n", output, strlen(output)); + + return rawResponse(200, output); } + +