Commit 865ac097 authored by Sergey Lyubka's avatar Sergey Lyubka

started to work on sessions

parent b5d7c34b
......@@ -21,6 +21,11 @@
#include "mongoose.h"
#define MAX_USER_LEN 20
#define MAX_MESSAGE_LEN 100
#define MAX_MESSAGES 5
#define MAX_SESSIONS 2
static const char *login_url = "/login.html";
static const char *authorize_url = "/authorize";
static const char *web_root = "./html";
......@@ -37,13 +42,23 @@ static const char *ajax_reply_start =
// the message is then originated from the server itself.
struct message {
long id;
char user[20];
char text[200];
char user[MAX_USER_LEN];
char text[MAX_MESSAGE_LEN];
time_t utc_timestamp;
};
static struct message messages[5]; // Ringbuffer where messages are kept
// Describes web session.
struct session {
char session_id[33];
char authenticated_user[MAX_USER_LEN];
time_t expiration_timestamp_utc;
};
static struct message messages[MAX_MESSAGES]; // Ringbuffer for messages
static struct session sessions[MAX_SESSIONS]; // Current sessions
static long last_message_id;
// Protects messages, sessions, last_message_id
static pthread_rwlock_t rwlock = PTHREAD_RWLOCK_INITIALIZER;
// Get a get of messages with IDs greater than last_id and transform them
......@@ -208,9 +223,9 @@ static int must_authorize(const struct mg_request_info *request_info) {
strcmp(request_info->uri, authorize_url) != 0);
}
static int process_request(struct mg_connection *conn,
static enum mg_error_t process_request(struct mg_connection *conn,
const struct mg_request_info *request_info) {
int processed = 1;
enum mg_error_t processed = MG_SUCCESS;
if (must_authorize(request_info) &&
!is_authorized(conn, request_info)) {
......@@ -225,7 +240,7 @@ static int process_request(struct mg_connection *conn,
} else {
// No suitable handler found, mark as not processed. Mongoose will
// try to serve the request.
processed = 0;
processed = MG_ERROR;
}
return processed;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment