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