Idź do dokumentacji tego pliku.00001 #ifndef __ICQ_ICQ_H
00002 #define __ICQ_ICQ_H
00003
00004 #include <ekg/dynstuff.h>
00005 #include <ekg/protocol.h>
00006 #include <ekg/sessions.h>
00007
00008 #define SNAC_HANDLER(x) int x(session_t *s, uint16_t cmd, unsigned char *buf, int len, private_data_t *data)
00009 typedef int (*snac_handler_t) (session_t *, uint16_t cmd, unsigned char *, int, private_data_t * );
00010
00011 #define SNAC_SUBHANDLER(x) int x(session_t *s, unsigned char *buf, int len, private_data_t *data)
00012 typedef int (*snac_subhandler_t) (session_t *s, unsigned char *, int, private_data_t * );
00013
00014 typedef struct {
00015 int win_size;
00016 int clear_lvl;
00017 int alert_lvl;
00018 int limit_lvl;
00019 int discn_lvl;
00020 int curr_lvl;
00021 int max_lvl;
00022 time_t last_time;
00023 int n_groups;
00024 uint32_t *groups;
00025 } icq_rate_t;
00026
00027 typedef struct icq_snac_reference_list_s {
00028 struct icq_snac_reference_list_s *next;
00029 int ref;
00030 time_t timestamp;
00031 snac_subhandler_t subhandler;
00032 private_data_t *list;
00033 } icq_snac_reference_list_t;
00034
00035 typedef struct {
00036 int fd;
00037 int fd2;
00038
00039 int flap_seq;
00040 uint16_t snac_seq;
00041 int snacmeta_seq;
00042 int cookie_seq;
00043
00044 int ssi;
00045 int migrate;
00046 int aim;
00047 int default_group_id;
00048 int status_flags;
00049 int xstatus;
00050 private_data_t *whoami;
00051 char *default_group_name;
00052 string_t cookie;
00053 string_t stream_buf;
00054 icq_snac_reference_list_t *snac_ref_list;
00055 int n_rates;
00056 icq_rate_t **rates;
00057 } icq_private_t;
00058
00059 int icq_send_pkt(session_t *s, string_t buf);
00060
00061 void icq_session_connected(session_t *s);
00062 int icq_write_status(session_t *s);
00063 void icq_handle_disconnect(session_t *s, const char *reason, int type);
00064
00065 #define icq_uid(target) protocol_uid("icq", target)
00066
00067 #define MIRANDAOK 1
00068 #define MIRANDA_COMPILANT_CLIENT 1
00069
00070 #define ICQ_DEBUG_UNUSED_INFORMATIONS 1
00071
00072 #endif