ekg2
|
#include "ekg2-config.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/types.h>
#include "debug.h"
#include "dynstuff.h"
#include "sessions.h"
#include "stuff.h"
#include "themes.h"
#include "userlist.h"
#include "vars.h"
#include "windows.h"
#include "xmalloc.h"
#include "dynstuff_inline.h"
#include "objects.h"
#include "compat/strlcpy.h"
#include "queries.h"
Funkcje | |
static int | session_compare (session_t *data1, session_t *data2) |
static | __DYNSTUFF_LIST_ADD_SORTED (sessions, session_t, session_compare) |
static | __DYNSTUFF_LIST_COUNT (sessions, session_t) |
static | LIST_FREE_ITEM (session_param_free_item, session_param_t *) |
static | __DYNSTUFF_ADD_BEGINNING (session_vars, session_param_t, NULL) |
static | __DYNSTUFF_DESTROY (session_vars, session_param_t, session_param_free_item) |
session_t * | session_find_ptr (session_t *s) |
session_t * | session_find (const char *uid) |
session_t * | session_add (const char *uid) |
static | LIST_FREE_ITEM (session_free_item, session_t *) |
static | __DYNSTUFF_LIST_REMOVE_SAFE (sessions, session_t, session_free_item) |
static | __DYNSTUFF_LIST_DESTROY (sessions, session_t, session_free_item) |
int | session_remove (const char *uid) |
int | session_status_set (session_t *s, status_t status) |
int | session_password_set (session_t *s, const char *password) |
const char * | session_password_get (session_t *s) |
int | session_descr_set (session_t *s, const char *descr) |
int | session_connected_set (session_t *s, int connected) |
static const status_t | session_statusdescr_split (const char **statusdescr) |
static status_t | session_status_nearest (session_t *s, status_t status) |
static const int | session_statusdescr_set (session_t *s, const char *statusdescr) |
session_param_t * | session_localvar_find (session_t *s, const char *key) |
static plugins_params_t * | PLUGIN_VAR_FIND_BYID (plugin_t *plugin, int id) |
const char * | session_get (session_t *s, const char *key) |
int | session_int_get (session_t *s, const char *key) |
int | session_is_var (session_t *s, const char *key) |
int | session_set (session_t *s, const char *key, const char *value) |
int | session_int_set (session_t *s, const char *key, int value) |
int | session_read (const char *filename) |
int | session_write () |
const char * | session_format (session_t *s) |
int | session_check (session_t *s, int need_private, const char *protocol) |
const char * | session_name (session_t *s) |
int | session_unidle (session_t *s) |
int | session_command (const char *name, const char **params, session_t *session, const char *target, int quiet) |
void | sessions_free () |
void | session_help (session_t *s, const char *name) |
void | changed_session_locks (const char *varname) |
Zmienne | |
session_t * | sessions = NULL |
session_t * | session_current = NULL |
static __DYNSTUFF_ADD_BEGINNING | ( | session_vars | , |
session_param_t | , | ||
NULL | |||
) | [static] |
static __DYNSTUFF_DESTROY | ( | session_vars | , |
session_param_t | , | ||
session_param_free_item | |||
) | [static] |
void changed_session_locks | ( | const char * | varname | ) |
changed_session_locks() is called whenever 'session_locks' variable changes it's value.
It should cleanup old locks and reinit new, if needed.
static LIST_FREE_ITEM | ( | session_free_item | , |
session_t * | |||
) | [static] |
static LIST_FREE_ITEM | ( | session_param_free_item | , |
session_param_t * | |||
) | [static] |
static plugins_params_t* PLUGIN_VAR_FIND_BYID | ( | plugin_t * | plugin, |
int | id | ||
) | [static] |
session_t* session_add | ( | const char * | uid | ) |
Add session with uid to session list.
Check by plugin_find_uid() if any plugin can handle this type of session if not return NULL
Allocate memory for variables, switch windows.. etc, etc..
Emit global SESSION_ADDED plugin which handle this session can alloc memory for his private data
uid | - full uid of new session |
int session_check | ( | session_t * | s, |
int | need_private, | ||
const char * | protocol | ||
) |
int session_command | ( | const char * | name, |
const char ** | params, | ||
session_t * | session, | ||
const char * | target, | ||
int | quiet | ||
) |
int session_connected_set | ( | session_t * | s, |
int | connected | ||
) |
int session_descr_set | ( | session_t * | s, |
const char * | descr | ||
) |
session_t* session_find | ( | const char * | uid | ) |
It's search over sessions list and checks if we have session with uid uid
uid | - uid of session you look for |
it's search over sessions list and checks if param s is in that list. it's useful for all watch handler, and if programmer was too lazy to destroy watches associated with that session (in private watch data struct) before it gone.
s | - session to look for. |
const char* session_format | ( | session_t * | s | ) |
const char* session_get | ( | session_t * | s, |
const char * | key | ||
) |
void session_help | ( | session_t * | s, |
const char * | name | ||
) |
int session_int_get | ( | session_t * | s, |
const char * | key | ||
) |
int session_int_set | ( | session_t * | s, |
const char * | key, | ||
int | value | ||
) |
int session_is_var | ( | session_t * | s, |
const char * | key | ||
) |
session_param_t* session_localvar_find | ( | session_t * | s, |
const char * | key | ||
) |
const char* session_name | ( | session_t * | s | ) |
const char* session_password_get | ( | session_t * | s | ) |
It's decrypt ,,encrypted''(and return) using base64 from session struct (s->password) is s was passed, otherwise it cleanup decrypted password from internal buffer.
s | - session of which we want get password from or NULL if we want to erase internal buf with password |
int session_password_set | ( | session_t * | s, |
const char * | password | ||
) |
int session_read | ( | const char * | filename | ) |
int session_remove | ( | const char * | uid | ) |
Remove session with uid passed in uid
This function free session params variable and internal
session data like alias, current status, descr, password..
If sesssion is connected, /disconnect command will be executed with session uid as reason
Also it remove watches connected with this session (if watch->is_session && watch->data == s)br> It'll do window->session swapping if needed... and changing current session also.
uid | - uid of session to remove |
int session_set | ( | session_t * | s, |
const char * | key, | ||
const char * | value | ||
) |
static const int session_statusdescr_set | ( | session_t * | s, |
const char * | statusdescr | ||
) | [static] |
static const status_t session_statusdescr_split | ( | const char ** | statusdescr | ) | [inline, static] |
int session_unidle | ( | session_t * | s | ) |
int session_write | ( | ) |
void sessions_free | ( | ) |
session_t* session_current = NULL |