diff options
Diffstat (limited to 'src/emap/data/session.c')
-rw-r--r-- | src/emap/data/session.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/emap/data/session.c b/src/emap/data/session.c new file mode 100644 index 0000000..c3c3ffa --- /dev/null +++ b/src/emap/data/session.c @@ -0,0 +1,48 @@ +// Copyright (c) Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) 2014 Evol developers + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "common/HPMi.h" +#include "common/malloc.h" +#include "common/mmo.h" +#include "common/socket.h" +#include "common/strlib.h" +#include "map/pc.h" + +#include "emap/data/session.h" +#include "emap/struct/sessionext.h" + +struct SessionExt *session_get(int fd) +{ + struct SessionExt *data = getFromSession(session[fd], 0); + if (!data) + { + data = session_create(); + addToSession(session[fd], data, 0, true); + } + return data; +} + +struct SessionExt *session_get_bysd(TBL_PC *sd) +{ + if (!sd) + return NULL; + + return session_get(sd->fd); +} + +struct SessionExt *session_create(void) +{ + struct SessionExt *data = NULL; + CREATE(data, struct SessionExt, 1); + if (!data) + return NULL; + data->clientVersion = 0; + data->language = 0; + data->state = 0; + data->onlinelistlasttime = 0; + return data; +} |