added demo for sessions

This commit is contained in:
overflowerror 2021-06-15 18:43:36 +02:00
parent 491c4d929a
commit bfd04560ed
2 changed files with 20 additions and 15 deletions

View file

@ -1,14 +1,14 @@
CC = gcc CC = gcc
LD = gcc LD = gcc
CFLAGS = -Wall -g -std=c99 -ICFloor/src/ -Ilibargo/src/ -Ilibparcival/src/ -D_POSIX_C_SOURCE=200809L -D_XOPEN_SOURCE=500 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 CFLOOR_LIB = CFloor/libcfloor.a
LIBARGO = libargo/libargo.a LIBARGO = libargo/libargo.a
LIBPARCIVAL = libparcival/libparcival.a LIBPARCIVAL = libparcival/libparcival.a
LIBS = $(CFLOOR_LIB) $(LIBARGO) $(LIBPARCIVAL) 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) DEPS = $(OBJS:%.o=%.d)
DEMO_OBJS = obj/demo.o obj/entities.tab.o obj/template.tab.o DEMO_OBJS = obj/demo.o obj/entities.tab.o obj/template.tab.o

View file

@ -1,8 +1,11 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <stdio.h>
#include <controller.h> #include <controller.h>
#include <cookies.h>
#define SESSION_PTR_TYPE const char*
#include <sessions.h>
#include "entities.h" #include "entities.h"
@ -49,19 +52,21 @@ response_t template(ctx_t* ctx) {
return templateResponse(200, "demo.templ", "Page Title", "Overflow"); return templateResponse(200, "demo.templ", "Page Title", "Overflow");
} }
GET("/cookies", cookies); GET("/sessions", sessions);
response_t cookies(ctx_t* ctx) { response_t sessions(ctx_t* ctx) {
char* test = getCookie(ctx, "test"); const char** sessiondata = session_start(ctx);
const char* output = "null\n";
setCookie(ctx, "test", "foobar", cookieSettingsNull()); if (*sessiondata == NULL) {
*sessiondata = "Test\n";
if (test == NULL) {
return rawResponse(200, "cookie not set");
} else if (strcmp(test, "foobar") == 0) {
free(test);
return rawResponse(200, "cookie value correct");
} else { } else {
free(test); output = *sessiondata;
return rawResponse(200, "cookie value incorrect");
} }
fprintf(stderr, "%s, %d\n", output, strlen(output));
return rawResponse(200, output);
} }