#include "ekg2-config.h"
#include <ekg/win32.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <sys/utsname.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <unistd.h>
#include <netdb.h>
#include <time.h>
#include <ekg/debug.h>
#include <ekg/dynstuff.h>
#include <ekg/plugins.h>
#include <ekg/protocol.h>
#include <ekg/sessions.h>
#include <ekg/stuff.h>
#include <ekg/userlist.h>
#include <ekg/themes.h>
#include <ekg/vars.h>
#include <ekg/xmalloc.h>
#include <ekg/log.h>
#include <ekg/queries.h>
#include "jabber.h"
#include "jabber_dcc.h"
#include "jabber_handlers_tlen.inc"
#include "jabber_handlers_iq_error.inc"
#include "jabber_handlers_iq_get.inc"
#include "jabber_handlers_iq_result.inc"
Struktury danych | |
struct | jabber_generic_handler |
struct | jabber_iq_generic_handler |
Definicje | |
#define | _XOPEN_SOURCE 600 |
#define | jabberfix(x, a) ((x) ? x : a) |
#define | JABBER_HANDLER(x) static void x(session_t *s, xmlnode_t *n) |
#define | CHECK_CONNECT(connecting_, connected_, func) |
#define | CHECK_XMLNS(n, _xmlns, func) |
Funkcje | |
int | jabber_handle_connect_ssl (int type, int fd, watch_type_t watch, session_t *s) |
static void | jabber_handle_message (session_t *s, xmlnode_t *n) |
static void | jabber_handle_iq (session_t *s, xmlnode_t *n) |
static void | jabber_handle_presence (session_t *s, xmlnode_t *n) |
static time_t | jabber_try_xdelay (const char *stamp) |
static void | jabber_session_connected (session_t *s) |
static void | newmail_common (session_t *s) |
static xmlnode_t * | xmlnode_find_child (xmlnode_t *n, const char *name) |
static xmlnode_t * | xmlnode_find_child_xmlns (xmlnode_t *n, const char *name, const char *xmlns) |
void | jabber_iq_auth_send (session_t *s, const char *username, const char *passwd, const char *stream_id) |
static void | jabber_handle_stream_features (session_t *s, xmlnode_t *n) |
static void | jabber_handle_compressed (session_t *s, xmlnode_t *n) |
static void | jabber_handle_challenge (session_t *s, xmlnode_t *n) |
static void | jabber_handle_proceed (session_t *s, xmlnode_t *n) |
static void | jabber_handle_stream_error (session_t *s, xmlnode_t *n) |
static void | jabber_handle_success (session_t *s, xmlnode_t *n) |
static void | jabber_handle_failure (session_t *s, xmlnode_t *n) |
void | jabber_handle (void *data, xmlnode_t *n) |
static void | jabber_handle_xmldata_form (session_t *s, const char *uid, const char *command, xmlnode_t *form, const char *param) |
static int | jabber_handle_xmldata_submit (session_t *s, xmlnode_t *form, const char *FORM_TYPE, int alloc,...) |
static void | jabber_handle_xmldata_result (session_t *s, xmlnode_t *form, const char *uid) |
static struct jabber_iq_generic_handler * | jabber_iq_find_handler (const struct jabber_iq_generic_handler *items, const char *type, const char *xmlns) |
static int | jabber_status_int (int tlen, const char *text) |
const char * | jabber_iq_reg (session_t *s, const char *prefix, const char *to, const char *type, const char *xmlns) |
const char * | jabber_iq_send (session_t *s, const char *prefix, jabber_iq_type_t iqtype, const char *to, const char *type, const char *xmlns) |
Zmienne | |
static struct jabber_generic_handler | jabber_handlers [] |
#define _XOPEN_SOURCE 600 |
#define CHECK_CONNECT | ( | connecting_, | ||
connected_, | ||||
func | ||||
) |
if ((j->sasl_connecting && s->connecting ? 2 : s->connecting) != connecting_ || s->connected != connected_) { \ debug_error("[jabber] %s:%d ASSERT_CONNECT connecting: %d+%d (shouldbe: %d) s->connected: %d (shouldbe: %d)\n", \ __FILE__, __LINE__, s->connecting, j->sasl_connecting, connecting_, s->connected, connected_); func; }
#define CHECK_XMLNS | ( | n, | ||
_xmlns, | ||||
func | ||||
) |
if (xstrcmp(n->xmlns, _xmlns)) { \ debug_error("[jabber] %s:%d ASSERT_XMLNS BAD XMLNS, IS: %s SHOULDBE: %s\n", __FILE__, __LINE__, n->xmlns, _xmlns); func; }
#define jabberfix | ( | x, | ||
a | ||||
) | ((x) ? x : a) |
void jabber_handle | ( | void * | data, | |
xmlnode_t * | n | |||
) |
int jabber_handle_connect_ssl | ( | int | type, | |
int | fd, | |||
watch_type_t | watch, | |||
session_t * | s | |||
) |
static void jabber_handle_xmldata_form | ( | session_t * | s, | |
const char * | uid, | |||
const char * | command, | |||
xmlnode_t * | form, | |||
const char * | param | |||
) | [static] |
static void jabber_handle_xmldata_result | ( | session_t * | s, | |
xmlnode_t * | form, | |||
const char * | uid | |||
) | [static] |
static int jabber_handle_xmldata_submit | ( | session_t * | s, | |
xmlnode_t * | form, | |||
const char * | FORM_TYPE, | |||
int | alloc, | |||
... | ||||
) | [static] |
void jabber_iq_auth_send | ( | session_t * | s, | |
const char * | username, | |||
const char * | passwd, | |||
const char * | stream_id | |||
) |
Send jabber:iq:auth with <digest>DIGEST</digest> or <password>PLAINTEXT_PASSWORD</password>
It support both tlen auth, and jabber NON-SASL Authentication [XEP-0078]
s | - session to authenticate CANNOT BE NULL | |
username | - username | |
passwd | - password to hash or to escape | |
stream_id | - id of stream. |
static struct jabber_iq_generic_handler* jabber_iq_find_handler | ( | const struct jabber_iq_generic_handler * | items, | |
const char * | type, | |||
const char * | xmlns | |||
) | [static, read] |
const char* jabber_iq_reg | ( | session_t * | s, | |
const char * | prefix, | |||
const char * | to, | |||
const char * | type, | |||
const char * | xmlns | |||
) |
const char* jabber_iq_send | ( | session_t * | s, | |
const char * | prefix, | |||
jabber_iq_type_t | iqtype, | |||
const char * | to, | |||
const char * | type, | |||
const char * | xmlns | |||
) |
static void jabber_session_connected | ( | session_t * | s | ) | [static] |
static int jabber_status_int | ( | int | tlen, | |
const char * | text | |||
) | [inline, static] |
static time_t jabber_try_xdelay | ( | const char * | stamp | ) | [static] |
static void newmail_common | ( | session_t * | s | ) | [static] |
Find child of node, with name
n | - node | |
name | - name |
static xmlnode_t* xmlnode_find_child_xmlns | ( | xmlnode_t * | n, | |
const char * | name, | |||
const char * | xmlns | |||
) | [static] |
Find child of node, with name, which has 'xmlns' atts equal xmlns
n | - node | |
name | - name | |
xmlns | - xmlns |
struct jabber_generic_handler jabber_handlers[] [static] |
{ { "message", jabber_handle_message }, { "presence", jabber_handle_presence }, { "iq", jabber_handle_iq }, { "features", jabber_handle_stream_features }, { "error", jabber_handle_stream_error }, { "challenge", jabber_handle_challenge }, { "compressed", jabber_handle_compressed }, { "proceed", jabber_handle_proceed }, { "success", jabber_handle_success }, { "failure", jabber_handle_failure }, { NULL, NULL } }