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
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

View file

@ -1,8 +1,11 @@
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <controller.h>
#include <cookies.h>
#define SESSION_PTR_TYPE const char*
#include <sessions.h>
#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);
}