#include <dirent.h>#include <errno.h>#include <fcntl.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <sys/stat.h>#include <sys/types.h>#include <ekg/debug.h>#include <ekg/dynstuff.h>#include <ekg/plugins.h>#include <ekg/protocol.h>#include <ekg/queries.h>#include <ekg/stuff.h>#include <ekg/userlist.h>#include <ekg/vars.h>#include <ekg/xmalloc.h>#include "compat/strlcpy.h"Definicje | |
| #define | _GNU_SOURCE |
| #define | _XOPEN_SOURCE 600 |
| #define | __BSD_VISIBLE 1 |
| #define | NAME_MAX 255 |
| #define | __func__ itoa(__LINE__) |
| #define | XMSG_UID_DIROFFSET 5 |
| #define | XMSG_NAMESEP_DEF "." |
| #define | XMSG_MAXFS_DEF "16384" |
| #define | XMSG_MAXFC_DEF "25" |
| #define | XMSG_MAXFC_TIMER "3" |
| #define | XMSG_TMPFILE_PATH "/tmp/xmsg.XXXXXX" |
| #define | XMSG_TIMER_DEF "300" |
| #define | xerr(txt,...) do { debug_error("[xmsg:%s] " txt "\n", __func__, ##__VA_ARGS__); return -1; } while (0) |
| #define | xerrn(txt,...) do { debug_error("[xmsg:%s] " txt ": %s\n", __func__, ##__VA_ARGS__, strerror(errno)); return -1; } while (0) |
| #define | xdebug(txt,...) debug("[xmsg:%s] " txt "\n", __func__, ##__VA_ARGS__) |
| #define | xdebug2(lvl, txt,...) debug_ext(lvl, "[xmsg:%s] " txt "\n", __func__, ##__VA_ARGS__) |
| #define | X(x, y) (x ? x : y) |
| #define | XMSG_CMDFLAGS SESSION_MUSTBELONG |
| #define | XMSG_CMDFLAGS_TARGET SESSION_MUSTBELONG|COMMAND_ENABLEREQPARAMS|COMMAND_PARAMASTARGET|SESSION_MUSTBECONNECTED |
Funkcje | |
| static int | xmsg_theme_init (void) |
| PLUGIN_DEFINE (xmsg, PLUGIN_PROTOCOL, xmsg_theme_init) | |
| static int | xmsg_checkoutfile (const char *file, char **data, int *len, time_t *ts, const int maxlen) |
| static const char * | xmsg_dirfix (const char *path) |
| static int | xmsg_handle_file (session_t *s, const char *fn) |
| static int | xmsg_iterate_dir (int type, session_t *s) |
| static void | xmsg_timer_change (session_t *s, const char *varname) |
| static int | xmsg_disconnect (const char *name, const char **params, session_t *session, const char *target, int quiet) |
| static int | xmsg_handle_sigusr (void *data, va_list ap) |
| static int | xmsg_validate_uid (void *data, va_list ap) |
| static int | xmsg_add_watch (session_t *s, const char *f) |
| static int | xmsg_connect (const char *name, const char **params, session_t *session, const char *target, int quiet) |
| static int | xmsg_reconnect (const char *name, const char **params, session_t *session, const char *target, int quiet) |
| static void | xmsg_unlink_dotfiles (session_t *s, const char *varname) |
| static int | xmsg_msg (const char *name, const char **params, session_t *session, const char *target, int quiet) |
| static int | xmsg_inline_msg (const char *name, const char **params, session_t *session, const char *target, int quiet) |
| int | xmsg_plugin_init (int prio) |
| static int | xmsg_plugin_destroy (void) |
Zmienne | |
| static int | in_fd = 0 |
| static struct inotify_event * | ev = NULL |
| static plugins_params_t | xmsg_plugin_vars [] |
| static const char * | xmsg_protocols [] = { "xmsg:", NULL } |
| static struct protocol_plugin_priv | xmsg_priv |
| #define __BSD_VISIBLE 1 |
| #define __func__ itoa(__LINE__) |
| #define _GNU_SOURCE |
| #define _XOPEN_SOURCE 600 |
| #define NAME_MAX 255 |
| #define X | ( | x, | ||
| y | ||||
| ) | (x ? x : y) |
| #define xdebug | ( | txt, | ||
| ... | ||||
| ) | debug("[xmsg:%s] " txt "\n", __func__, ##__VA_ARGS__) |
| #define xdebug2 | ( | lvl, | ||
| txt, | ||||
| ... | ||||
| ) | debug_ext(lvl, "[xmsg:%s] " txt "\n", __func__, ##__VA_ARGS__) |
| #define xerr | ( | txt, | ||
| ... | ||||
| ) | do { debug_error("[xmsg:%s] " txt "\n", __func__, ##__VA_ARGS__); return -1; } while (0) |
| #define xerrn | ( | txt, | ||
| ... | ||||
| ) | do { debug_error("[xmsg:%s] " txt ": %s\n", __func__, ##__VA_ARGS__, strerror(errno)); return -1; } while (0) |
| #define XMSG_CMDFLAGS SESSION_MUSTBELONG |
| #define XMSG_CMDFLAGS_TARGET SESSION_MUSTBELONG|COMMAND_ENABLEREQPARAMS|COMMAND_PARAMASTARGET|SESSION_MUSTBECONNECTED |
| #define XMSG_MAXFC_DEF "25" |
| #define XMSG_MAXFC_TIMER "3" |
| #define XMSG_MAXFS_DEF "16384" |
| #define XMSG_NAMESEP_DEF "." |
| #define XMSG_TIMER_DEF "300" |
| #define XMSG_TMPFILE_PATH "/tmp/xmsg.XXXXXX" |
| #define XMSG_UID_DIROFFSET 5 |
| PLUGIN_DEFINE | ( | xmsg | , | |
| PLUGIN_PROTOCOL | , | |||
| xmsg_theme_init | ||||
| ) |
| static int xmsg_add_watch | ( | session_t * | s, | |
| const char * | f | |||
| ) | [inline, static] |
| static int xmsg_checkoutfile | ( | const char * | file, | |
| char ** | data, | |||
| int * | len, | |||
| time_t * | ts, | |||
| const int | maxlen | |||
| ) | [static] |
| static int xmsg_connect | ( | const char * | name, | |
| const char ** | params, | |||
| session_t * | session, | |||
| const char * | target, | |||
| int | quiet | |||
| ) | [static] |
| static const char* xmsg_dirfix | ( | const char * | path | ) | [static] |
| static int xmsg_disconnect | ( | const char * | name, | |
| const char ** | params, | |||
| session_t * | session, | |||
| const char * | target, | |||
| int | quiet | |||
| ) | [static] |
| static int xmsg_handle_file | ( | session_t * | s, | |
| const char * | fn | |||
| ) | [static] |
| static int xmsg_handle_sigusr | ( | void * | data, | |
| va_list | ap | |||
| ) | [static] |
| static int xmsg_inline_msg | ( | const char * | name, | |
| const char ** | params, | |||
| session_t * | session, | |||
| const char * | target, | |||
| int | quiet | |||
| ) | [static] |
| static int xmsg_iterate_dir | ( | int | type, | |
| session_t * | s | |||
| ) | [static] |
| static int xmsg_msg | ( | const char * | name, | |
| const char ** | params, | |||
| session_t * | session, | |||
| const char * | target, | |||
| int | quiet | |||
| ) | [static] |
| static int xmsg_plugin_destroy | ( | void | ) | [static] |
| int xmsg_plugin_init | ( | int | prio | ) |
| static int xmsg_reconnect | ( | const char * | name, | |
| const char ** | params, | |||
| session_t * | session, | |||
| const char * | target, | |||
| int | quiet | |||
| ) | [static] |
| static int xmsg_theme_init | ( | void | ) | [static] |
| static void xmsg_timer_change | ( | session_t * | s, | |
| const char * | varname | |||
| ) | [static] |
| static void xmsg_unlink_dotfiles | ( | session_t * | s, | |
| const char * | varname | |||
| ) | [static] |
| static int xmsg_validate_uid | ( | void * | data, | |
| va_list | ap | |||
| ) | [static] |
struct inotify_event* ev = NULL [static] |
int in_fd = 0 [static] |
plugins_params_t xmsg_plugin_vars[] [static] |
{
PLUGIN_VAR_ADD("auto_connect", VAR_BOOL, "1", 0, NULL),
PLUGIN_VAR_ADD("charset", VAR_STR, "", 0, NULL),
PLUGIN_VAR_ADD("dotfile_suffix", VAR_STR, "", 0, NULL),
PLUGIN_VAR_ADD("log_formats", VAR_STR, "simple", 0, NULL),
PLUGIN_VAR_ADD("max_filesize", VAR_INT, XMSG_MAXFS_DEF, 0, NULL),
PLUGIN_VAR_ADD("max_oneshot_files", VAR_INT, XMSG_MAXFC_DEF, 0, NULL),
PLUGIN_VAR_ADD("name_separator", VAR_STR, XMSG_NAMESEP_DEF, 0, NULL),
PLUGIN_VAR_ADD("oneshot_resume_timer", VAR_INT, XMSG_MAXFC_TIMER, 0, NULL),
PLUGIN_VAR_ADD("send_cmd", VAR_STR, NULL, 0, NULL),
PLUGIN_VAR_ADD("rescan_timer", VAR_INT, XMSG_TIMER_DEF, 0, xmsg_timer_change),
PLUGIN_VAR_ADD("unlink_sent", VAR_BOOL, "1", 0, xmsg_unlink_dotfiles),
PLUGIN_VAR_ADD("unlink_toobig", VAR_BOOL, "0", 0, xmsg_unlink_dotfiles),
}
struct protocol_plugin_priv xmsg_priv [static] |
{
.protocols = xmsg_protocols
}
const char* xmsg_protocols[] = { "xmsg:", NULL } [static] |
1.7.1