Typy danych
typedef gg_pubdir_50_t;
typedef uin_t;
Struktury
struct gg_change_info_request;
struct gg_dcc;
struct gg_event;
struct gg_file_info;
struct gg_http;
struct gg_login_params;
struct gg_pubdir;
struct gg_session;
Typy wyliczeniowe
enum gg_check_t;
enum gg_error_t;
enum gg_event_t;
enum gg_failure_t;
enum gg_session_t;
enum gg_state_t;
Funkcje dotyczące połączenia z serwerem
struct gg_session *gg_login(const struct gg_login_params *p);
struct gg_event *gg_watch_fd(struct gg_session *sess);
void gg_event_free(struct gg_event *e);
int gg_change_status(struct gg_session *sess, int status);
int gg_change_status_descr(struct gg_session *sess, int status, const char *descr);
int gg_send_message(struct gg_session *sess, int msgclass, uin_t recipient, unsigned char *message);
int gg_send_message_ctcp(struct gg_session *sess, int msgclass, uin_t recipient, unsigned char *message, int message_len);
int gg_send_message_confer(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, unsigned char *message);
int gg_ping(struct gg_session *sess);
int gg_notify(struct gg_session *sess, uin_t *userlist, int count);
int gg_notify_ex(struct gg_session *sess, uin_t *userlist, char *types, int count);
int gg_add_notify(struct gg_session *sess, uin_t uin);
int gg_add_notify_ex(struct gg_session *sess, uin_t uin, char type);
int gg_remove_notify(struct gg_session *sess, uin_t uin);
int gg_remove_notify_ex(struct gg_session *sess, uin_t uin, char type);
void gg_logoff(struct gg_session *sess);
void gg_free_session(struct gg_session *sess);
Funkcje obsługi katalogu publicznego
;
;
;
;
int gg_pubdir_watch_fd(struct gg_http *h);
void gg_pubdir_free(struct gg_http *h);
Funkcje obsługi katalogu publicznego GG 5.0
gg_pubdir50_t gg_pubdir50_new(int type);
int gg_pubdir50_add(gg_pubdir50_t req, const char *field, const char *value);
int gg_pubdir50_seq_set(gg_pubdir50_t req, uint32_t seq);
uint32_t gg_pubdir50(struct gg_session *sess, gg_pubdir50_t req);
const char *gg_pubdir50_get(gg_pubdir50_t res, int num, const char *field);
int gg_pubdir50_count(gg_pubdir50_t res);
int gg_pubdir50_type(gg_pubdir50_t res);
uin_t gg_pubdir50_next(gg_pubdir50_t res);
uint32_t gg_pubdir50_seq(gg_pubdir50_t res);
void gg_pubdir50_free(gg_pubdir50_t s);
Funkcje obsługi list kontaktów na serwerze
;
;
;
;
;
;
Funkcje obsługi bezpośrednich połączeń
struct gg_dcc *gg_dcc_socket_create(uin_t uin, uint16_t port);
struct gg_event *gg_dcc_watch_fd(struct gg_dcc *h);
int gg_dcc_request(struct gg_session *sess, uin_t uin);
int gg_dcc_fill_file_info(struct gg_dcc *d, const char *filename);
struct gg_dcc *gg_dcc_get_file(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
struct gg_dcc *gg_dcc_send_file(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
struct gg_dcc *gg_dcc_voice_chat(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
int gg_dcc_voice_send(struct gg_dcc *d, char *buf, int length);
void gg_dcc_set_type(struct gg_dcc *d, int type);
void gg_dcc_free(struct gg_dcc *d);
Funkcje pomocnicze
void gg_debug(int level, const char *format, ...);
uint16_t gg_fix16(uint16_t x);
uint32_t gg_fix32(uint32_t x);
int gg_connect(void *addr, int port, int async);
char *gg_saprintf(const char *format, ...);
char *gg_urlencode(const char *str);
void gg_chomp(char *line);
struct gg_http *gg_http_connect(const char *hostname, int port, int async, const char *method, const char *path, const char *header);
int gg_http_watch_fd(struct gg_http *h);
void gg_http_stop(struct gg_http *h);
void gg_http_free(struct gg_http *h);
char *gg_base64_encode(const char *buf);
char *gg_base64_decode(const char *buf);