ekg2
Strona główna
Dodatkowe strony
Moduły
Struktury Danych
Pliki
Lista plików
Globalne
All
Struktury Danych
Pliki
Funkcje
Zmienne
Definicje typów
Wyliczenia
Wartości wyliczeń
Definicje
Grupay
Strony
plugins
icq
misc.h
Idź do dokumentacji tego pliku.
1
#ifndef __ICQ_MISC_H
2
#define __ICQ_MISC_H
3
4
#include <stdint.h>
5
6
#include <
ekg/dynstuff.h
>
7
8
typedef
struct
icq_tlv_list
{
9
struct
icq_tlv_list
*
next
;
10
11
uint16_t
type
;
12
uint16_t
len
;
13
14
uint32_t
nr
;
15
unsigned
char
*
buf
;
16
}
icq_tlv_t
;
17
18
struct
fieldnames_t
{
19
int
code
;
20
char
*
text
;
21
};
22
23
extern
struct
fieldnames_t
snac_families
[];
24
25
/* pack, unpack */
26
int
icq_unpack
(
unsigned
char
*buf,
unsigned
char
**endbuf,
int
*l,
char
*
format
, ...);
27
int
icq_unpack_nc
(
unsigned
char
*buf,
int
len,
char
*
format
, ...);
28
#define icq_unpack_tlv_word(tlv, val) \
29
do { \
30
val = 0; \
31
icq_unpack_nc(tlv ? tlv->buf : NULL, tlv ? tlv->len : 0, "W", &val); \
32
} while(0);
33
34
35
string_t
icq_pack
(
char
*
format
, ...);
36
string_t
icq_pack_append
(
string_t
str,
char
*
format
, ...);
37
38
#define icq_pack_tlv(type, data, datalen) (uint32_t) type, (uint32_t) datalen, (uint8_t *) data
39
#define icq_pack_tlv_char(type, data) (uint32_t) type, (uint32_t) 1, (uint32_t) data
40
#define icq_pack_tlv_word(type, data) (uint32_t) type, (uint32_t) 2, (uint32_t) data
41
#define icq_pack_tlv_dword(type, data) (uint32_t) type, (uint32_t) 4, (uint32_t) data
42
#define icq_pack_tlv_str(type, str) icq_pack_tlv(type, str, xstrlen(str))
43
44
struct
icq_tlv_list
*
icq_unpack_tlvs
(
unsigned
char
**str,
int
*maxlen,
unsigned
int
maxcount);
45
struct
icq_tlv_list
*
icq_unpack_tlvs_nc
(
unsigned
char
*str,
int
maxlen,
unsigned
int
maxcount);
46
icq_tlv_t
*
icq_tlv_get
(
struct
icq_tlv_list
*l, uint16_t
type
);
47
void
icq_tlvs_destroy
(
struct
icq_tlv_list
**
list
);
48
49
void
icq_hexdump
(
int
level,
unsigned
char
*p,
size_t
len
);
50
char
*
icq_encryptpw
(
const
char
*pw);
51
uint16_t
icq_status
(
int
status);
52
53
#define ICQ_UNPACK(endbuf, args...) (icq_unpack(buf, endbuf, &len, args))
54
55
status_t
icq2ekg_status
(
int
icq_status
);
56
status_t
icq2ekg_status2
(
int
nMsgType);
57
58
/* misc */
59
int
tlv_length_check
(
char
*
name
,
icq_tlv_t
*
t
,
int
length);
60
61
#define ICQ_SNAC_NAMES_DEBUG 1
62
63
#if ICQ_SNAC_NAMES_DEBUG
64
const
char
*
icq_snac_name
(
int
family,
int
cmd);
65
#endif
66
67
const
char
*
icq_lookuptable
(
struct
fieldnames_t
*table,
int
code);
68
69
void
icq_pack_append_client_identification
(
string_t
pkt);
70
71
void
icq_convert_string_init
();
72
void
icq_convert_string_destroy
();
73
74
char
*
icq_convert_from_ucs2be
(
char
*
buf
,
int
len
);
75
string_t
icq_convert_to_ucs2be
(
char
*text);
76
char
*
icq_convert_from_utf8
(
char
*text);
77
78
void
icq_send_snac
(
session_t
*s, uint16_t family, uint16_t cmd,
private_data_t
*data,
snac_subhandler_t
subhandler,
char
*
format
, ...);
79
80
void
icq_rates_destroy
(
session_t
*s);
81
void
icq_rates_init
(
session_t
*s,
int
n_rates);
82
83
#endif
Wygenerowano Śr, 10 paź 2012 05:11:34 dla ekg2 programem
1.8.1.1