#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <ekg/debug.h>
#include <ekg/net.h>
#include <ekg/plugins.h>
#include <ekg/recode.h>
#include <ekg/queries.h>
#include <ekg/protocol.h>
#include <ekg/themes.h>
#include <ekg/windows.h>
#include <ekg/stuff.h>
#include <ekg/vars.h>
#include <ekg/xmalloc.h>
#include <ekg/log.h>
#include <ekg/msgqueue.h>
#include "icq.h"
#include "misc.h"
#include "icq_caps.h"
#include "icq_const.h"
#include "icq_flap_handlers.h"
#include "icq_snac_handlers.h"
Definicje | |
#define | ICQ_HUB_SERVER "login.icq.com" |
#define | ICQ_HUB_PORT 5190 |
#define | m_bAvatarsEnabled 0 |
#define | m_bUtfEnabled 1 |
#define | wo_idnhtni(type, str) |
#define | ICQ_ONLY SESSION_MUSTBELONG | SESSION_MUSTHASPRIVATE |
#define | ICQ_FLAGS ICQ_ONLY | SESSION_MUSTBECONNECTED |
#define | ICQ_FLAGS_TARGET ICQ_FLAGS | COMMAND_ENABLEREQPARAMS | COMMAND_PARAMASTARGET |
#define | ICQ_FLAGS_MSG ICQ_ONLY | COMMAND_ENABLEREQPARAMS | COMMAND_PARAMASTARGET |
Funkcje | |
static int | icq_theme_init () |
PLUGIN_DEFINE (icq, PLUGIN_PROTOCOL, icq_theme_init) | |
int | icq_send_pkt (session_t *s, string_t buf) |
static int | icq_ping (int type, session_t *s) |
int | icq_write_status_msg (session_t *s) |
int | icq_write_status (session_t *s) |
int | icq_write_info (session_t *s) |
void | icq_set_security (session_t *s) |
void | icq_session_connected (session_t *s) |
static uint32_t | icq_get_uid (session_t *s, const char *target) |
static int | icq_session_init (void *data, va_list ap) |
static int | icq_session_deinit (void *data, va_list ap) |
static int | icq_validate_uid (void *data, va_list ap) |
static int | icq_print_version (void *data, va_list ap) |
static int | icq_typing_out (void *data, va_list ap) |
void | icq_handle_disconnect (session_t *s, const char *reason, int type) |
static int | icq_handle_stream (int type, int fd, watch_type_t watch, session_t *s) |
static int | icq_handle_connect (int type, int fd, watch_type_t watch, session_t *s) |
static int | icq_handle_hubresolver (int type, int fd, watch_type_t watch, void *data) |
static int | icq_command_addssi (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_delssi (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static void | icq_send_msg_ch1 (session_t *session, const char *uid, const char *message) |
static void | icq_send_msg_ch2 (session_t *session, const char *uid, const char *message) |
static int | icq_command_msg (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_inline_msg (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_away (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_connect (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_disconnect (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_reconnect (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_userinfo (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_searchuin (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_search (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_auth (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_rates (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_whoami (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_command_register (const char *name, const char **params, session_t *session, const char *target, int quiet) |
static int | icq_userlist_info_handle (void *data, va_list ap) |
static void | icq_changed_our_security (session_t *s, const char *var) |
EXPORT int | icq_plugin_init (int prio) |
static int | icq_plugin_destroy () |
Zmienne | |
static plugins_params_t | icq_plugin_vars [] |
static const char * | icq_protocols [] = { "icq:", NULL } |
static const status_t | icq_statuses [] |
static struct protocol_plugin_priv | icq_priv |
#define ICQ_FLAGS ICQ_ONLY | SESSION_MUSTBECONNECTED |
#define ICQ_FLAGS_MSG ICQ_ONLY | COMMAND_ENABLEREQPARAMS | COMMAND_PARAMASTARGET |
#define ICQ_FLAGS_TARGET ICQ_FLAGS | COMMAND_ENABLEREQPARAMS | COMMAND_PARAMASTARGET |
#define ICQ_HUB_PORT 5190 |
#define ICQ_HUB_SERVER "login.icq.com" |
#define ICQ_ONLY SESSION_MUSTBELONG | SESSION_MUSTHASPRIVATE |
#define m_bAvatarsEnabled 0 |
#define m_bUtfEnabled 1 |
#define wo_idnhtni | ( | type, | ||
str | ||||
) |
{ \ uint32_t len = xstrlen(str); \ icq_pack_append(pkt, "www", (uint32_t) type, len+3, len+1); \ string_append_raw(pkt, (char *) str, len+1); \ }
static void icq_changed_our_security | ( | session_t * | s, | |
const char * | var | |||
) | [static] |
static int icq_command_addssi | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_auth | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_away | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_connect | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_delssi | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_disconnect | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_inline_msg | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_msg | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_rates | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_reconnect | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_register | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_search | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_searchuin | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_userinfo | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static int icq_command_whoami | ( | const char * | name, | |
const char ** | params, | |||
session_t * | session, | |||
const char * | target, | |||
int | quiet | |||
) | [static] |
static uint32_t icq_get_uid | ( | session_t * | s, | |
const char * | target | |||
) | [static] |
static int icq_handle_connect | ( | int | type, | |
int | fd, | |||
watch_type_t | watch, | |||
session_t * | s | |||
) | [static] |
void icq_handle_disconnect | ( | session_t * | s, | |
const char * | reason, | |||
int | type | |||
) |
static int icq_handle_hubresolver | ( | int | type, | |
int | fd, | |||
watch_type_t | watch, | |||
void * | data | |||
) | [static] |
static int icq_handle_stream | ( | int | type, | |
int | fd, | |||
watch_type_t | watch, | |||
session_t * | s | |||
) | [static] |
static int icq_ping | ( | int | type, | |
session_t * | s | |||
) | [static] |
static int icq_plugin_destroy | ( | ) | [static] |
EXPORT int icq_plugin_init | ( | int | prio | ) |
static int icq_print_version | ( | void * | data, | |
va_list | ap | |||
) | [static] |
static void icq_send_msg_ch1 | ( | session_t * | session, | |
const char * | uid, | |||
const char * | message | |||
) | [static] |
static void icq_send_msg_ch2 | ( | session_t * | session, | |
const char * | uid, | |||
const char * | message | |||
) | [static] |
void icq_session_connected | ( | session_t * | s | ) |
static int icq_session_deinit | ( | void * | data, | |
va_list | ap | |||
) | [static] |
static int icq_session_init | ( | void * | data, | |
va_list | ap | |||
) | [static] |
void icq_set_security | ( | session_t * | s | ) |
static int icq_theme_init | ( | ) | [static] |
static int icq_typing_out | ( | void * | data, | |
va_list | ap | |||
) | [static] |
static int icq_userlist_info_handle | ( | void * | data, | |
va_list | ap | |||
) | [static] |
static int icq_validate_uid | ( | void * | data, | |
va_list | ap | |||
) | [static] |
int icq_write_info | ( | session_t * | s | ) |
int icq_write_status | ( | session_t * | s | ) |
int icq_write_status_msg | ( | session_t * | s | ) |
PLUGIN_DEFINE | ( | icq | , | |
PLUGIN_PROTOCOL | , | |||
icq_theme_init | ||||
) |
plugins_params_t icq_plugin_vars[] [static] |
{ PLUGIN_VAR_ADD("alias", VAR_STR, NULL, 0, NULL), PLUGIN_VAR_ADD("auto_away", VAR_INT, "600", 0, NULL), PLUGIN_VAR_ADD("auto_away_descr", VAR_STR, 0, 0, NULL), PLUGIN_VAR_ADD("auto_back", VAR_INT, "0", 0, NULL), PLUGIN_VAR_ADD("auto_connect", VAR_BOOL, "0", 0, NULL), PLUGIN_VAR_ADD("auto_reconnect", VAR_INT, "0", 0, NULL), PLUGIN_VAR_ADD("auto_xa", VAR_INT, "0", 0, NULL), PLUGIN_VAR_ADD("auto_xa_descr", VAR_STR, 0, 0, NULL), PLUGIN_VAR_ADD("log_formats", VAR_STR, "xml,simple,sqlite", 0, NULL), PLUGIN_VAR_ADD("password", VAR_STR, NULL, 1, NULL), PLUGIN_VAR_ADD("plaintext_passwd", VAR_BOOL, "0", 0, NULL), PLUGIN_VAR_ADD("server", VAR_STR, NULL, 0, NULL), PLUGIN_VAR_ADD("hide_ip", VAR_BOOL, "1", 0, icq_changed_our_security), PLUGIN_VAR_ADD("require_auth", VAR_BOOL, "1", 0, icq_changed_our_security), PLUGIN_VAR_ADD("webaware", VAR_BOOL, "0", 0, icq_changed_our_security), }
struct protocol_plugin_priv icq_priv [static] |
{ .protocols = icq_protocols, .statuses = icq_statuses }
const char* icq_protocols[] = { "icq:", NULL } [static] |
const status_t icq_statuses[] [static] |
{ EKG_STATUS_NA, EKG_STATUS_GONE, EKG_STATUS_DND, EKG_STATUS_XA, EKG_STATUS_AWAY, EKG_STATUS_AVAIL, EKG_STATUS_FFC, EKG_STATUS_INVISIBLE, EKG_STATUS_NULL }