libgadu
1.12.2
|
Główny plik nagłówkowy biblioteki. Więcej...
Struktury danych | |
struct | gg_dcc7_id_t |
Identyfikator połączenia bezpośredniego Gadu-Gadu 7.x. Więcej... | |
struct | gg_multilogon_id_t |
Identyfikator sesji multilogowania. Więcej... | |
struct | gg_common |
Struktura wspólna dla wszystkich sesji i połączeń. Więcej... | |
struct | gg_session |
Sesja Gadu-Gadu. Więcej... | |
struct | gg_http |
Połączenie HTTP. Więcej... | |
struct | gg_file_info |
Odpowiednik struktury WIN32_FIND_DATA z API WIN32. Więcej... | |
struct | gg_dcc |
Połączenie bezpośrednie do wersji Gadu-Gadu 6.x. Więcej... | |
struct | gg_dcc7 |
Połączenie bezpośrednie od wersji Gadu-Gadu 7.x. Więcej... | |
struct | gg_socket_manager_t |
Struktura opisująca funkcje zarządzające gniazdami, jeżeli aplikacja sama je obsługuje. Więcej... | |
struct | gg_login_params |
Parametry połączenia z serwerem Gadu-Gadu. Więcej... | |
struct | gg_pubdir50_entry |
Pole zapytania lub odpowiedzi katalogu publicznego. Więcej... | |
struct | gg_pubdir50_s |
Zapytanie lub odpowiedź katalogu publicznego. Więcej... | |
struct | gg_event_msg |
Opis zdarzeń GG_EVENT_MSG i GG_EVENT_MULTILOGON_MSG . Więcej... | |
struct | gg_event_notify_descr |
Opis zdarzenia GG_EVENT_NOTIFY_DESCR . Więcej... | |
struct | gg_event_status |
Opis zdarzenia GG_EVENT_STATUS . Więcej... | |
struct | gg_event_status60 |
Opis zdarzenia GG_EVENT_STATUS60 . Więcej... | |
struct | gg_event_notify60 |
Opis zdarzenia GG_EVENT_NOTIFY_REPLY60 . Więcej... | |
struct | gg_event_ack |
Opis zdarzenia GG_EVENT_ACK . Więcej... | |
struct | gg_event_ack110 |
Opis zdarzenia GG_EVENT_ACK110 . Więcej... | |
struct | gg_event_userlist |
Opis zdarzenia GG_EVENT_USERLIST . Więcej... | |
struct | gg_event_dcc_voice_data |
Opis zdarzenia GG_EVENT_DCC_VOICE_DATA . Więcej... | |
struct | gg_event_image_request |
Opis zdarzenia GG_EVENT_IMAGE_REQUEST . Więcej... | |
struct | gg_event_image_reply |
Opis zdarzenia GG_EVENT_IMAGE_REPLY . Więcej... | |
struct | gg_event_xml_event |
Opis zdarzenia GG_EVENT_XML_EVENT . Więcej... | |
struct | gg_event_json_event |
Opis zdarzenia GG_EVENT_JSON_EVENT . Więcej... | |
struct | gg_event_dcc7_connected |
Opis zdarzenia GG_EVENT_DCC7_CONNECTED . Więcej... | |
struct | gg_event_dcc7_pending |
Opis zdarzenia GG_EVENT_DCC7_PENDING . Więcej... | |
struct | gg_event_dcc7_reject |
Opis zdarzenia GG_EVENT_DCC7_REJECT . Więcej... | |
struct | gg_event_dcc7_accept |
Opis zdarzenia GG_EVENT_DCC7_ACCEPT . Więcej... | |
struct | gg_event_dcc7_done |
Opis zdarzenia GG_EVENT_DCC7_DONE . Więcej... | |
struct | gg_event_typing_notification |
Opis zdarzenia GG_EVENT_TYPING_NOTIFICATION . Więcej... | |
struct | gg_event_user_data_attr |
Atrybut użytkownika. Więcej... | |
struct | gg_event_user_data_user |
Struktura opisująca kontakt w zdarzeniu GG_EVENT_USER_DATA. Więcej... | |
struct | gg_event_user_data |
Opis zdarzenia GG_EVENT_USER_DATA . Więcej... | |
struct | gg_multilogon_session |
Struktura opisująca sesję multilogowania. Więcej... | |
struct | gg_event_multilogon_info |
Opis zdarzenia GG_EVENT_MULTILOGON_INFO . Więcej... | |
struct | gg_event_userlist100_version |
Opis zdarzenia GG_EVENT_USERLIST100_VERSION . Więcej... | |
struct | gg_event_userlist100_reply |
Opis zdarzenia GG_EVENT_USERLIST100_REPLY . Więcej... | |
struct | gg_event_imtoken |
Opis zdarzenia GG_EVENT_IMTOKEN . Więcej... | |
struct | gg_event_pong110 |
Opis zdarzenia GG_EVENT_PONG110 . Więcej... | |
struct | gg_event_chat_info |
Opis zdarzenia GG_EVENT_CHAT_INFO . Więcej... | |
struct | gg_event_chat_info_update |
Opis zdarzenia GG_EVENT_CHAT_INFO_UPDATE . Więcej... | |
struct | gg_event_chat_created |
Opis zdarzenia GG_EVENT_CHAT_CREATED . Więcej... | |
struct | gg_event_chat_invite_ack |
Opis zdarzenia GG_EVENT_CHAT_INVITE_ACK . Więcej... | |
union | gg_event_union |
Unia wszystkich zdarzeń zwracanych przez funkcje gg_watch_fd() , gg_dcc_watch_fd() i gg_dcc7_watch_fd() . Więcej... | |
struct | gg_event |
Opis zdarzenia. Więcej... | |
struct | gg_pubdir |
Wynik operacji na katalogu publicznym. Więcej... | |
struct | gg_token |
Token autoryzacji niektórych operacji HTTP. Więcej... | |
struct | gg_image_queue |
Kolejka odbieranych obrazków. Więcej... | |
struct | gg_header |
struct | gg_welcome |
struct | gg_login |
struct | gg_login_ext |
struct | gg_login60 |
struct | gg_login70 |
struct | gg_pubdir50_request |
struct | gg_pubdir50_reply |
struct | gg_new_status |
Zmiana statusu (pakiet GG_NEW_STATUS i GG_NEW_STATUS80BETA ) Więcej... | |
struct | gg_notify |
struct | gg_notify_reply |
struct | gg_notify_reply60 |
struct | gg_status60 |
struct | gg_notify_reply77 |
struct | gg_status77 |
struct | gg_add_remove |
struct | gg_status |
struct | gg_send_msg |
struct | gg_msg_richtext |
struct | gg_msg_richtext_format |
Struktura opisująca formatowanie tekstu. Więcej... | |
struct | gg_msg_richtext_color |
Struktura opisującą kolor tekstu dla atrybutu GG_FONT_COLOR . Więcej... | |
struct | gg_msg_richtext_image |
Strukturya opisująca obrazek wstawiony do wiadomości dla atrubutu GG_FONT_IMAGE . Więcej... | |
struct | gg_msg_recipients |
struct | gg_msg_image_request |
struct | gg_msg_image_reply |
struct | gg_send_msg_ack |
struct | gg_recv_msg |
struct | gg_userlist_request |
struct | gg_userlist_reply |
struct | gg_dcc_tiny_packet |
struct | gg_dcc_small_packet |
struct | gg_dcc_big_packet |
struct | gg_dcc7_info |
struct | gg_dcc7_new |
struct | gg_dcc7_accept |
struct | gg_dcc7_reject |
struct | gg_dcc7_id_request |
struct | gg_dcc7_id_reply |
Definicje | |
#define | gg_common_head(x) |
Makro deklarujące pola wspólne dla struktur sesji. Więcej... | |
#define | GG_MAX_PATH 276 |
Maksymalny rozmiar nazwy pliku w strukturze gg_file_info . Więcej... | |
#define | GG_DCC7_HASH_LEN 20 |
Maksymalny rozmiar skrótu pliku w połączeniach bezpośrenich. Więcej... | |
#define | GG_DCC7_FILENAME_LEN 255 |
Maksymalny rozmiar nazwy pliku w połączeniach bezpośrednich. Więcej... | |
#define | GG_DCC7_INFO_LEN 32 |
Maksymalny rozmiar informacji o połączeniach bezpośrednich. Więcej... | |
#define | GG_DCC7_INFO_HASH_LEN 32 |
Maksymalny rozmiar skrótu ip informacji o połączeniach bezpośrednich. Więcej... | |
#define | GG_EVENT_SEARCH50_REPLY GG_EVENT_PUBDIR50_SEARCH_REPLY |
#define | GG_DCC_VOICE_FRAME_LENGTH 195 |
Rozmiar pakietu głosowego przed wersją Gadu-Gadu 5.0.5. Więcej... | |
#define | GG_DCC_VOICE_FRAME_LENGTH_505 326 |
Rozmiar pakietu głosowego od wersji Gadu-Gadu 5.0.5. Więcej... | |
#define | GG_LOGIN_HASH_GG32 0x01 |
Algorytm Gadu-Gadu. Więcej... | |
#define | GG_LOGIN_HASH_SHA1 0x02 |
Algorytm SHA1. Więcej... | |
#define | gg_alloc_sprintf gg_saprintf |
#define | fix16 gg_fix16 |
#define | fix32 gg_fix32 |
#define | GG_APPMSG_HOST "appmsg.gadu-gadu.pl" |
#define | GG_APPMSG_PORT 80 |
#define | GG_PUBDIR_HOST "pubdir.gadu-gadu.pl" |
#define | GG_PUBDIR_PORT 80 |
#define | GG_REGISTER_HOST "register.gadu-gadu.pl" |
#define | GG_REGISTER_PORT 80 |
#define | GG_REMIND_HOST "retr.gadu-gadu.pl" |
#define | GG_REMIND_PORT 80 |
#define | GG_RELAY_HOST "relay.gadu-gadu.pl" |
#define | GG_RELAY_PORT 80 |
#define | GG_DEFAULT_PORT 8074 |
#define | GG_HTTPS_PORT 443 |
#define | GG_HTTP_USERAGENT "Mozilla/4.7 [en] (Win98; I)" |
#define | GG_PROTOCOL_VERSION_100 0x2e |
#define | GG_PROTOCOL_VERSION_110 0x40 |
#define | GG_DEFAULT_CLIENT_VERSION "-" |
#define | GG_DEFAULT_PROTOCOL_VERSION GG_PROTOCOL_VERSION_110 |
#define | GG_DEFAULT_TIMEOUT 30 |
#define | GG_HAS_AUDIO_MASK 0x40000000 |
#define | GG_HAS_AUDIO7_MASK 0x20000000 |
#define | GG_ERA_OMNIX_MASK 0x04000000 |
#define | GG_LIBGADU_VERSION "1.12.2" |
#define | GG_DEFAULT_DCC_PORT 1550 |
#define | GG_WELCOME 0x0001 |
#define | GG_NEED_EMAIL 0x0014 |
#define | GG_LOGIN 0x000c |
#define | GG_LOGIN_EXT 0x0013 |
#define | GG_LOGIN60 0x0015 |
#define | GG_LOGIN70 0x0019 |
#define | GG_LOGIN_OK 0x0003 |
#define | GG_LOGIN_FAILED 0x0009 |
#define | GG_PUBDIR50_REQUEST 0x0014 |
#define | GG_PUBDIR50_REPLY 0x000e |
#define | GG_NEW_STATUS 0x0002 |
#define | GG_STATUS_VOICE_MASK 0x20000 |
Flaga bitowa dostepnosci informujaca ze mozemy voipowac. Więcej... | |
#define | GG_STATUS_DESCR_MAXSIZE 255 |
Maksymalna długośc opisu. Więcej... | |
#define | GG_STATUS_DESCR_MAXSIZE_PRE_8_0 70 |
#define | GG_STATUS_MASK 0xff |
#define | GG_S_F(x) (((x) & GG_STATUS_FRIENDS_MASK) != 0) |
#define | GG_S(x) ((x) & GG_STATUS_MASK) |
#define | GG_S_FF(x) (GG_S(x) == GG_STATUS_FFC || GG_S(x) == GG_STATUS_FFC_DESCR) |
#define | GG_S_AV(x) (GG_S(x) == GG_STATUS_AVAIL || GG_S(x) == GG_STATUS_AVAIL_DESCR) |
#define | GG_S_AW(x) (GG_S(x) == GG_STATUS_BUSY || GG_S(x) == GG_STATUS_BUSY_DESCR) |
#define | GG_S_DD(x) (GG_S(x) == GG_STATUS_DND || GG_S(x) == GG_STATUS_DND_DESCR) |
#define | GG_S_NA(x) (GG_S(x) == GG_STATUS_NOT_AVAIL || GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR) |
#define | GG_S_I(x) (GG_S(x) == GG_STATUS_INVISIBLE || GG_S(x) == GG_STATUS_INVISIBLE_DESCR) |
#define | GG_S_A(x) (GG_S_FF(x) || GG_S_AV(x)) |
#define | GG_S_B(x) (GG_S_AW(x) || GG_S_DD(x)) |
#define | GG_S_D(x) |
#define | GG_S_BL(x) (GG_S(x) == GG_STATUS_BLOCKED) |
#define | GG_NOTIFY_FIRST 0x000f |
#define | GG_NOTIFY_LAST 0x0010 |
#define | GG_NOTIFY 0x0010 |
#define | GG_LIST_EMPTY 0x0012 |
#define | GG_NOTIFY_REPLY 0x000c /* tak, to samo co GG_LOGIN */ |
#define | GG_NOTIFY_REPLY60 0x0011 |
#define | GG_STATUS60 0x000f |
#define | GG_NOTIFY_REPLY77 0x0018 |
#define | GG_STATUS77 0x0017 |
#define | GG_ADD_NOTIFY 0x000d |
#define | GG_REMOVE_NOTIFY 0x000e |
#define | GG_STATUS 0x0002 |
#define | GG_SEND_MSG 0x000b |
#define | GG_MSG_MAXSIZE 1989 |
Maksymalna długość wiadomości. Więcej... | |
#define | GG_SEND_MSG_ACK 0x0005 |
#define | GG_RECV_MSG 0x000a |
#define | GG_PING 0x0008 |
#define | GG_PONG 0x0007 |
#define | GG_DISCONNECTING 0x000b |
#define | GG_USERLIST_REQUEST 0x0016 |
#define | GG_XML_EVENT 0x0027 |
#define | GG_USERLIST_REPLY 0x0010 |
#define | GG_DCC_WANT_FILE 0x0003 /* peer chce plik */ |
#define | GG_DCC_HAVE_FILE 0x0001 /* więc mu damy */ |
#define | GG_DCC_HAVE_FILEINFO 0x0003 /* niech ma informacje o pliku */ |
#define | GG_DCC_GIMME_FILE 0x0006 /* peer jest pewny */ |
#define | GG_DCC_CATCH_FILE 0x0002 /* wysyłamy plik */ |
#define | GG_DCC_FILEATTR_READONLY 0x0020 |
#define | GG_DCC_TIMEOUT_SEND 1800 /* 30 minut */ |
#define | GG_DCC_TIMEOUT_GET 1800 /* 30 minut */ |
#define | GG_DCC_TIMEOUT_FILE_ACK 300 /* 5 minut */ |
#define | GG_DCC_TIMEOUT_VOICE_ACK 300 /* 5 minut */ |
#define | GG_DCC7_INFO 0x1f |
#define | GG_DCC7_NEW 0x20 |
#define | GG_DCC7_ACCEPT 0x21 |
#define | GG_DCC7_TYPE_P2P 0x00000001 |
Połączenie bezpośrednie. Więcej... | |
#define | GG_DCC7_TYPE_SERVER 0x00000002 |
Połączenie przez serwer. Więcej... | |
#define | GG_DCC7_REJECT 0x22 |
#define | GG_DCC7_REJECT_BUSY 0x00000001 |
Połączenie bezpośrednie już trwa, nie umiem obsłużyć więcej. Więcej... | |
#define | GG_DCC7_REJECT_USER 0x00000002 |
Użytkownik odrzucił połączenie. Więcej... | |
#define | GG_DCC7_REJECT_VERSION 0x00000006 |
Druga strona ma wersję klienta nieobsługującą połączeń bezpośrednich tego typu. Więcej... | |
#define | GG_DCC7_ID_REQUEST 0x23 |
#define | GG_DCC7_TYPE_VOICE 0x00000001 |
Transmisja głosu. Więcej... | |
#define | GG_DCC7_TYPE_FILE 0x00000004 |
transmisja pliku Więcej... | |
#define | GG_DCC7_ID_REPLY 0x23 |
#define | GG_DCC7_DUNNO1 0x24 |
#define | GG_DCC7_TIMEOUT_CONNECT 10 /* 10 sekund */ |
#define | GG_DCC7_TIMEOUT_SEND 1800 /* 30 minut */ |
#define | GG_DCC7_TIMEOUT_GET 1800 /* 30 minut */ |
#define | GG_DCC7_TIMEOUT_FILE_ACK 300 /* 5 minut */ |
#define | GG_DCC7_TIMEOUT_VOICE_ACK 300 /* 5 minut */ |
#define | GG_CHAT_INFO_UPDATE_ENTERED 0x01 |
#define | GG_CHAT_INFO_UPDATE_EXITED 0x03 |
#define | GG_DEBUG_NET 1 |
Rejestracja zdarzeń związanych z siecią Więcej... | |
#define | GG_DEBUG_TRAFFIC 2 |
Rejestracja ruchu sieciowego. Więcej... | |
#define | GG_DEBUG_DUMP 4 |
Rejestracja zawartości pakietów. Więcej... | |
#define | GG_DEBUG_FUNCTION 8 |
Rejestracja wywołań funkcji. Więcej... | |
#define | GG_DEBUG_MISC 16 |
Rejestracja różnych informacji. Więcej... | |
#define | GG_DEBUG_VERBOSE 32 |
Rejestracja informacji szczegółowych. Więcej... | |
#define | GG_DEBUG_WARNING 64 |
Rejestracja ostrzeżeń Więcej... | |
#define | GG_DEBUG_ERROR 128 |
Rejestracja błędów krytycznych. Więcej... | |
Definicje typów | |
typedef uint32_t | uin_t |
Numer Gadu-Gadu. Więcej... | |
typedef void *(* | gg_socket_manager_connect_cb_t )(void *cb_data, const char *host, int port, int is_tls, int is_async, void *priv) |
Funkcja dostarczona przez aplikację, tworząca nowe gniazdo TCP/TLS. Więcej... | |
typedef void(* | gg_socket_manager_close_cb_t )(void *cb_data, void *handle) |
Niszczy gniazdo i zwalnia wszystkie powiązane z nim zasoby. Więcej... | |
typedef ssize_t(* | gg_socket_manager_read_cb_t )(void *cb_data, void *handle, unsigned char *buffer, size_t bufsize) |
Odbiera z gniazda dane binarne. Więcej... | |
typedef ssize_t(* | gg_socket_manager_write_cb_t )(void *cb_data, void *handle, const unsigned char *data, size_t length) |
Wysyła przez gniazdo dane binarne. Więcej... | |
typedef struct gg_pubdir50_s * | gg_pubdir50_t |
Zapytanie lub odpowiedź katalogu publicznego. Więcej... | |
Funkcje | |
int | gg_socket_manager_connected (void *handle, void *priv, int fd) |
Odbiera nowo utworzone gniazdo TCP/TLS. Więcej... | |
struct gg_session * | gg_login (const struct gg_login_params *p) |
Łączy się z serwerem Gadu-Gadu. Więcej... | |
void | gg_free_session (struct gg_session *sess) |
Zwalnia zasoby używane przez połączenie z serwerem. Więcej... | |
void | gg_logoff (struct gg_session *sess) |
Kończy połączenie z serwerem. Więcej... | |
int | gg_change_status (struct gg_session *sess, int status) |
Zmienia status użytkownika. Więcej... | |
int | gg_change_status_descr (struct gg_session *sess, int status, const char *descr) |
Zmienia status użytkownika na status opisowy. Więcej... | |
int | gg_change_status_descr_time (struct gg_session *sess, int status, const char *descr, int time) |
Zmienia status użytkownika na status opisowy z podanym czasem powrotu. Więcej... | |
int | gg_change_status_flags (struct gg_session *sess, int flags) |
Funkcja zmieniająca flagi statusu. Więcej... | |
int | gg_send_message (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message) |
Wysyła wiadomość do użytkownika. Więcej... | |
int | gg_send_message_richtext (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message, const unsigned char *format, int formatlen) |
Wysyła wiadomość formatowaną. Więcej... | |
int | gg_send_message_html (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *html_message) |
Wysyła formatowaną wiadomość HTML. Więcej... | |
int | gg_send_message_confer (struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message) |
Wysyła wiadomość w ramach konferencji. Więcej... | |
int | gg_send_message_confer_richtext (struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message, const unsigned char *format, int formatlen) |
Wysyła wiadomość formatowaną w ramach konferencji. Więcej... | |
int | gg_send_message_confer_html (struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *html_message) |
Wysyła formatowaną wiadomość HTML w ramach konferencji. Więcej... | |
int | gg_send_message_ctcp (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message, int message_len) |
Wysyła wiadomość binarną przeznaczoną dla klienta. Więcej... | |
int | gg_ping (struct gg_session *sess) |
Wysyła do serwera pakiet utrzymania połączenia. Więcej... | |
int | gg_userlist_request (struct gg_session *sess, char type, const char *request) |
Wysyła do serwera zapytanie dotyczące listy kontaktów. Więcej... | |
int | gg_userlist100_request (struct gg_session *sess, char type, unsigned int version, char format_type, const char *request) |
Wysyła do serwera zapytanie dotyczące listy kontaktów (10.0). Więcej... | |
int | gg_image_request (struct gg_session *sess, uin_t recipient, int size, uint32_t crc32) |
Wysyła żądanie obrazka o podanych parametrach. Więcej... | |
int | gg_image_reply (struct gg_session *sess, uin_t recipient, const char *filename, const char *image, int size) |
Wysyła żądany obrazek. Więcej... | |
int | gg_typing_notification (struct gg_session *sess, uin_t recipient, int length) |
Informuje rozmówcę o pisaniu wiadomości. Więcej... | |
uint32_t | gg_crc32 (uint32_t crc, const unsigned char *buf, int len) |
Wyznacza sumę kontrolną CRC32. Więcej... | |
int | gg_session_set_resolver (struct gg_session *gs, gg_resolver_t type) |
Ustawia sposób rozwiązywania nazw w sesji. Więcej... | |
gg_resolver_t | gg_session_get_resolver (struct gg_session *gs) |
Zwraca sposób rozwiązywania nazw w sesji. Więcej... | |
int | gg_session_set_custom_resolver (struct gg_session *gs, int(*resolver_start)(int *, void **, const char *), void(*resolver_cleanup)(void **, int)) |
Ustawia własny sposób rozwiązywania nazw w sesji. Więcej... | |
int | gg_http_set_resolver (struct gg_http *gh, gg_resolver_t type) |
Ustawia sposób rozwiązywania nazw połączenia HTTP. Więcej... | |
gg_resolver_t | gg_http_get_resolver (struct gg_http *gh) |
Zwraca sposób rozwiązywania nazw połączenia HTTP. Więcej... | |
int | gg_http_set_custom_resolver (struct gg_http *gh, int(*resolver_start)(int *, void **, const char *), void(*resolver_cleanup)(void **, int)) |
Ustawia własny sposób rozwiązywania nazw połączenia HTTP. Więcej... | |
int | gg_global_set_resolver (gg_resolver_t type) |
Ustawia sposób rozwiązywania nazw globalnie dla biblioteki. Więcej... | |
gg_resolver_t | gg_global_get_resolver (void) |
Zwraca sposób rozwiązywania nazw globalnie dla biblioteki. Więcej... | |
int | gg_global_set_custom_resolver (int(*resolver_start)(int *, void **, const char *), void(*resolver_cleanup)(void **, int)) |
Ustawia własny sposób rozwiązywania nazw globalnie dla biblioteki. Więcej... | |
int | gg_multilogon_disconnect (struct gg_session *gs, gg_multilogon_id_t conn_id) |
Rozłącza inną sesję multilogowania. Więcej... | |
int | gg_chat_create (struct gg_session *gs) |
Tworzy nową konferencję (11.0). Więcej... | |
int | gg_chat_invite (struct gg_session *gs, uint64_t id, uin_t *participants, unsigned int participants_count) |
Zaprasza nowych użytkowników do konferencji (11.0). Więcej... | |
int | gg_chat_leave (struct gg_session *gs, uint64_t id) |
Opuszcza konferencję (11.0). Więcej... | |
int | gg_chat_send_message (struct gg_session *gs, uint64_t id, const char *message, int is_html) |
Wysyła wiadomość w ramach konferencji (11.0). Więcej... | |
struct gg_event * | gg_watch_fd (struct gg_session *sess) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze sesji. Więcej... | |
void | gg_event_free (struct gg_event *e) |
Zwalnia pamięć zajmowaną przez informację o zdarzeniu. Więcej... | |
int | gg_notify_ex (struct gg_session *sess, uin_t *userlist, char *types, int count) |
Wysyła do serwera listę kontaktów. Więcej... | |
int | gg_notify (struct gg_session *sess, uin_t *userlist, int count) |
Wysyła do serwera listę kontaktów. Więcej... | |
int | gg_add_notify_ex (struct gg_session *sess, uin_t uin, char type) |
Dodaje kontakt. Więcej... | |
int | gg_add_notify (struct gg_session *sess, uin_t uin) |
Dodaje kontakt. Więcej... | |
int | gg_remove_notify_ex (struct gg_session *sess, uin_t uin, char type) |
Usuwa kontakt. Więcej... | |
int | gg_remove_notify (struct gg_session *sess, uin_t uin) |
Usuwa kontakt. Więcej... | |
struct gg_http * | gg_http_connect (const char *hostname, int port, int async, const char *method, const char *path, const char *header) |
Rozpoczyna połączenie HTTP. Więcej... | |
int | gg_http_watch_fd (struct gg_http *h) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej... | |
void | gg_http_stop (struct gg_http *h) |
Kończy asynchroniczne połączenie HTTP. Więcej... | |
void | gg_http_free (struct gg_http *h) |
Zwalnia zasoby po połączeniu HTTP. Więcej... | |
uint32_t | gg_pubdir50 (struct gg_session *sess, gg_pubdir50_t req) |
Wysyła zapytanie katalogu publicznego do serwera. Więcej... | |
gg_pubdir50_t | gg_pubdir50_new (int type) |
Tworzy nowe zapytanie katalogu publicznego. Więcej... | |
int | gg_pubdir50_add (gg_pubdir50_t req, const char *field, const char *value) |
Dodaje pole zapytania. Więcej... | |
int | gg_pubdir50_seq_set (gg_pubdir50_t req, uint32_t seq) |
Ustawia numer sekwencyjny zapytania. Więcej... | |
const char * | gg_pubdir50_get (gg_pubdir50_t res, int num, const char *field) |
Pobiera pole z odpowiedzi katalogu publicznego. Więcej... | |
int | gg_pubdir50_type (gg_pubdir50_t res) |
Zwraca rodzaj zapytania lub odpowiedzi. Więcej... | |
int | gg_pubdir50_count (gg_pubdir50_t res) |
Zwraca liczbę wyników odpowiedzi. Więcej... | |
uin_t | gg_pubdir50_next (gg_pubdir50_t res) |
Zwraca numer, od którego należy rozpocząc kolejne wyszukiwanie. Więcej... | |
uint32_t | gg_pubdir50_seq (gg_pubdir50_t res) |
Zwraca numer sekwencyjny zapytania lub odpowiedzi. Więcej... | |
void | gg_pubdir50_free (gg_pubdir50_t res) |
Zwalnia zasoby po zapytaniu lub odpowiedzi katalogu publicznego. Więcej... | |
int | gg_pubdir_watch_fd (struct gg_http *f) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej... | |
void | gg_pubdir_free (struct gg_http *f) |
Zwalnia zasoby po operacji na katalogu publicznym. Więcej... | |
struct gg_http * | gg_token (int async) |
Pobiera token do autoryzacji operacji na katalogu publicznym. Więcej... | |
int | gg_token_watch_fd (struct gg_http *h) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej... | |
void | gg_token_free (struct gg_http *h) |
Zwalnia zasoby po operacji pobierania tokenu. Więcej... | |
struct gg_http * | gg_register3 (const char *email, const char *password, const char *tokenid, const char *tokenval, int async) |
Rejestruje nowego użytkownika. Więcej... | |
struct gg_http * | gg_unregister3 (uin_t uin, const char *password, const char *tokenid, const char *tokenval, int async) |
Usuwa użytkownika. Więcej... | |
struct gg_http * | gg_remind_passwd3 (uin_t uin, const char *email, const char *tokenid, const char *tokenval, int async) |
Wysyła hasło użytkownika na e-mail. Więcej... | |
struct gg_http * | gg_change_passwd4 (uin_t uin, const char *email, const char *passwd, const char *newpasswd, const char *tokenid, const char *tokenval, int async) |
Zmienia hasło użytkownika. Więcej... | |
int | gg_dcc_request (struct gg_session *sess, uin_t uin) |
Wysyła żądanie zwrotnego połączenia bezpośredniego. Więcej... | |
struct gg_dcc * | gg_dcc_send_file (uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin) |
Rozpoczyna wysyłanie pliku. Więcej... | |
struct gg_dcc * | gg_dcc_get_file (uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin) |
Rozpoczyna odbieranie pliku przez zwrotne połączenie bezpośrednie. Więcej... | |
struct gg_dcc * | gg_dcc_voice_chat (uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin) |
Rozpoczyna połączenie głosowe. Więcej... | |
void | gg_dcc_set_type (struct gg_dcc *d, int type) |
Ustawia typ przychodzącego połączenia bezpośredniego. Więcej... | |
int | gg_dcc_fill_file_info (struct gg_dcc *d, const char *filename) |
Wypełnia pola struktury gg_dcc niezbędne do wysłania pliku. Więcej... | |
int | gg_dcc_fill_file_info2 (struct gg_dcc *d, const char *filename, const char *local_filename) |
Wypełnia pola struktury gg_dcc niezbędne do wysłania pliku. Więcej... | |
int | gg_dcc_voice_send (struct gg_dcc *d, char *buf, int length) |
Wysyła ramkę danych połączenia głosowego. Więcej... | |
struct gg_dcc * | gg_dcc_socket_create (uin_t uin, uint16_t port) |
Tworzy gniazdo nasłuchujące dla połączeń bezpośrednich. Więcej... | |
struct gg_event * | gg_dcc_watch_fd (struct gg_dcc *d) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej... | |
void | gg_dcc_free (struct gg_dcc *c) |
Zwalnia zasoby używane przez połączenie bezpośrednie. Więcej... | |
struct gg_event * | gg_dcc7_watch_fd (struct gg_dcc7 *d) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej... | |
struct gg_dcc7 * | gg_dcc7_send_file (struct gg_session *sess, uin_t rcpt, const char *filename, const char *filename1250, const char *hash) |
Rozpoczyna wysyłanie pliku o danej nazwie. Więcej... | |
struct gg_dcc7 * | gg_dcc7_send_file_fd (struct gg_session *sess, uin_t rcpt, int fd, size_t size, const char *filename1250, const char *hash) |
int | gg_dcc7_accept (struct gg_dcc7 *dcc, unsigned int offset) |
Potwierdza chęć odebrania pliku. Więcej... | |
int | gg_dcc7_reject (struct gg_dcc7 *dcc, int reason) |
Odrzuca próbę przesłania pliku. Więcej... | |
void | gg_dcc7_free (struct gg_dcc7 *d) |
Zwalnia zasoby używane przez połączenie bezpośrednie. Więcej... | |
const char * | gg_debug_state (enum gg_state_t state) |
const char * | gg_debug_event (enum gg_event_t event) |
void | gg_debug (int level, const char *format,...) GG_GNUC_PRINTF(2 |
void void | gg_debug_session (struct gg_session *sess, int level, const char *format,...) GG_GNUC_PRINTF(3 |
void void const char * | gg_libgadu_version (void) |
Zwraca wersję biblioteki. Więcej... | |
int | gg_libgadu_check_feature (gg_libgadu_feature_t feature) |
Sprawdza czy biblioteka obsługuje daną funkcję. Więcej... | |
int | gg_file_hash_sha1 (int fd, uint8_t *result) GG_DEPRECATED |
char * | gg_saprintf (const char *format,...) GG_GNUC_PRINTF(1 |
char * | gg_vsaprintf (const char *format, va_list ap) GG_DEPRECATED |
char * | gg_get_line (char **ptr) GG_DEPRECATED |
int | gg_connect (void *addr, int port, int async) GG_DEPRECATED |
struct in_addr * | gg_gethostbyname (const char *hostname) GG_DEPRECATED |
char * | gg_read_line (int sock, char *buf, int length) GG_DEPRECATED |
void | gg_chomp (char *line) GG_DEPRECATED |
char * | gg_urlencode (const char *str) GG_DEPRECATED |
int | gg_http_hash (const char *format,...) GG_DEPRECATED |
void | gg_http_free_fields (struct gg_http *h) GG_DEPRECATED |
int | gg_read (struct gg_session *sess, char *buf, int length) GG_DEPRECATED |
int | gg_write (struct gg_session *sess, const char *buf, int length) GG_DEPRECATED |
void * | gg_recv_packet (struct gg_session *sess) GG_DEPRECATED |
int | gg_send_packet (struct gg_session *sess, int type,...) GG_DEPRECATED |
unsigned int | gg_login_hash (const unsigned char *password, unsigned int seed) GG_DEPRECATED |
void | gg_login_hash_sha1 (const char *password, uint32_t seed, uint8_t *result) GG_DEPRECATED |
uint32_t | gg_fix32 (uint32_t x) |
uint16_t | gg_fix16 (uint16_t x) |
char * | gg_proxy_auth (void) GG_DEPRECATED |
char * | gg_base64_encode (const char *buf) GG_DEPRECATED |
char * | gg_base64_decode (const char *buf) GG_DEPRECATED |
int | gg_image_queue_remove (struct gg_session *s, struct gg_image_queue *q, int freeq) GG_DEPRECATED |
int | gg_dcc7_handle_id (struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED |
int | gg_dcc7_handle_new (struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED |
int | gg_dcc7_handle_info (struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED |
int | gg_dcc7_handle_accept (struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED |
int | gg_dcc7_handle_reject (struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED |
Zmienne | |
int | gg_dcc_port |
Port gniazda nasłuchującego dla połączeń bezpośrednich. Więcej... | |
unsigned long | gg_dcc_ip |
Adres IP gniazda nasłuchującego dla połączeń bezpośrednich. Więcej... | |
int | gg_debug_level |
Poziom rejestracji informacji odpluskwiających. Więcej... | |
void(* | gg_debug_handler )(int level, const char *format, va_list ap) |
Funkcja, do której są przekazywane informacje odpluskwiające. Więcej... | |
void(* | gg_debug_handler_session )(struct gg_session *sess, int level, const char *format, va_list ap) |
Funkcja, do której są przekazywane informacje odpluskwiające. Więcej... | |
FILE * | gg_debug_file |
Plik, do którego będą przekazywane informacje odpluskwiania. Więcej... | |
int | gg_proxy_enabled |
Flaga włączenia połączeń przez serwer pośredniczący. Więcej... | |
char * | gg_proxy_host |
Adres serwera pośredniczącego. Więcej... | |
int | gg_proxy_port |
Port serwera pośredniczącego. Więcej... | |
char * | gg_proxy_username |
Nazwa użytkownika do autoryzacji serwera pośredniczącego. Więcej... | |
char * | gg_proxy_password |
Hasło użytkownika do autoryzacji serwera pośredniczącego. Więcej... | |
int | gg_proxy_http_only |
Flaga używania serwera pośredniczącego jedynie dla usług HTTP. Więcej... | |
unsigned long | gg_local_ip |
Adres lokalnego interfejsu IP, z którego wywoływane są wszystkie połączenia. Więcej... | |
char | GG_DEPRECATED |
struct gg_header | GG_PACKED |
Główny plik nagłówkowy biblioteki.
#define gg_common_head | ( | x | ) |
Makro deklarujące pola wspólne dla struktur sesji.
Funkcja zwalniania zasobów
#define GG_MAX_PATH 276 |
Maksymalny rozmiar nazwy pliku w strukturze gg_file_info
.
#define GG_DCC7_HASH_LEN 20 |
Maksymalny rozmiar skrótu pliku w połączeniach bezpośrenich.
#define GG_DCC7_FILENAME_LEN 255 |
Maksymalny rozmiar nazwy pliku w połączeniach bezpośrednich.
#define GG_DCC7_INFO_LEN 32 |
Maksymalny rozmiar informacji o połączeniach bezpośrednich.
#define GG_DCC7_INFO_HASH_LEN 32 |
Maksymalny rozmiar skrótu ip informacji o połączeniach bezpośrednich.
#define GG_EVENT_SEARCH50_REPLY GG_EVENT_PUBDIR50_SEARCH_REPLY |
#define GG_DCC_VOICE_FRAME_LENGTH 195 |
Rozmiar pakietu głosowego przed wersją Gadu-Gadu 5.0.5.
#define GG_DCC_VOICE_FRAME_LENGTH_505 326 |
Rozmiar pakietu głosowego od wersji Gadu-Gadu 5.0.5.
#define GG_LOGIN_HASH_GG32 0x01 |
Algorytm Gadu-Gadu.
#define GG_LOGIN_HASH_SHA1 0x02 |
Algorytm SHA1.
#define gg_alloc_sprintf gg_saprintf |
#define fix16 gg_fix16 |
#define fix32 gg_fix32 |
#define GG_APPMSG_HOST "appmsg.gadu-gadu.pl" |
#define GG_APPMSG_PORT 80 |
#define GG_PUBDIR_HOST "pubdir.gadu-gadu.pl" |
#define GG_PUBDIR_PORT 80 |
#define GG_REGISTER_HOST "register.gadu-gadu.pl" |
#define GG_REGISTER_PORT 80 |
#define GG_REMIND_HOST "retr.gadu-gadu.pl" |
#define GG_REMIND_PORT 80 |
#define GG_RELAY_HOST "relay.gadu-gadu.pl" |
#define GG_RELAY_PORT 80 |
#define GG_DEFAULT_PORT 8074 |
#define GG_HTTPS_PORT 443 |
#define GG_HTTP_USERAGENT "Mozilla/4.7 [en] (Win98; I)" |
#define GG_PROTOCOL_VERSION_100 0x2e |
#define GG_PROTOCOL_VERSION_110 0x40 |
#define GG_DEFAULT_CLIENT_VERSION "-" |
#define GG_DEFAULT_PROTOCOL_VERSION GG_PROTOCOL_VERSION_110 |
#define GG_DEFAULT_TIMEOUT 30 |
#define GG_HAS_AUDIO_MASK 0x40000000 |
#define GG_HAS_AUDIO7_MASK 0x20000000 |
#define GG_ERA_OMNIX_MASK 0x04000000 |
#define GG_LIBGADU_VERSION "1.12.2" |
#define GG_DEFAULT_DCC_PORT 1550 |
#define GG_WELCOME 0x0001 |
#define GG_NEED_EMAIL 0x0014 |
#define GG_LOGIN 0x000c |
#define GG_LOGIN_EXT 0x0013 |
#define GG_LOGIN60 0x0015 |
#define GG_LOGIN70 0x0019 |
#define GG_LOGIN_OK 0x0003 |
#define GG_LOGIN_FAILED 0x0009 |
#define GG_PUBDIR50_REQUEST 0x0014 |
#define GG_PUBDIR50_REPLY 0x000e |
#define GG_NEW_STATUS 0x0002 |
#define GG_STATUS_DESCR_MAXSIZE_PRE_8_0 70 |
#define GG_STATUS_MASK 0xff |
#define GG_S_F | ( | x | ) | (((x) & GG_STATUS_FRIENDS_MASK) != 0) |
#define GG_S | ( | x | ) | ((x) & GG_STATUS_MASK) |
#define GG_S_FF | ( | x | ) | (GG_S(x) == GG_STATUS_FFC || GG_S(x) == GG_STATUS_FFC_DESCR) |
#define GG_S_AV | ( | x | ) | (GG_S(x) == GG_STATUS_AVAIL || GG_S(x) == GG_STATUS_AVAIL_DESCR) |
#define GG_S_AW | ( | x | ) | (GG_S(x) == GG_STATUS_BUSY || GG_S(x) == GG_STATUS_BUSY_DESCR) |
#define GG_S_DD | ( | x | ) | (GG_S(x) == GG_STATUS_DND || GG_S(x) == GG_STATUS_DND_DESCR) |
#define GG_S_NA | ( | x | ) | (GG_S(x) == GG_STATUS_NOT_AVAIL || GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR) |
#define GG_S_I | ( | x | ) | (GG_S(x) == GG_STATUS_INVISIBLE || GG_S(x) == GG_STATUS_INVISIBLE_DESCR) |
#define GG_S_D | ( | x | ) |
#define GG_S_BL | ( | x | ) | (GG_S(x) == GG_STATUS_BLOCKED) |
#define GG_NOTIFY_FIRST 0x000f |
#define GG_NOTIFY_LAST 0x0010 |
#define GG_NOTIFY 0x0010 |
#define GG_LIST_EMPTY 0x0012 |
#define GG_NOTIFY_REPLY 0x000c /* tak, to samo co GG_LOGIN */ |
#define GG_NOTIFY_REPLY60 0x0011 |
#define GG_STATUS60 0x000f |
#define GG_NOTIFY_REPLY77 0x0018 |
#define GG_STATUS77 0x0017 |
#define GG_ADD_NOTIFY 0x000d |
#define GG_REMOVE_NOTIFY 0x000e |
#define GG_STATUS 0x0002 |
#define GG_SEND_MSG 0x000b |
#define GG_SEND_MSG_ACK 0x0005 |
#define GG_RECV_MSG 0x000a |
#define GG_PING 0x0008 |
#define GG_PONG 0x0007 |
#define GG_DISCONNECTING 0x000b |
#define GG_USERLIST_REQUEST 0x0016 |
#define GG_XML_EVENT 0x0027 |
#define GG_USERLIST_REPLY 0x0010 |
#define GG_DCC_WANT_FILE 0x0003 /* peer chce plik */ |
#define GG_DCC_HAVE_FILE 0x0001 /* więc mu damy */ |
#define GG_DCC_HAVE_FILEINFO 0x0003 /* niech ma informacje o pliku */ |
#define GG_DCC_GIMME_FILE 0x0006 /* peer jest pewny */ |
#define GG_DCC_CATCH_FILE 0x0002 /* wysyłamy plik */ |
#define GG_DCC_FILEATTR_READONLY 0x0020 |
#define GG_DCC_TIMEOUT_SEND 1800 /* 30 minut */ |
#define GG_DCC_TIMEOUT_GET 1800 /* 30 minut */ |
#define GG_DCC_TIMEOUT_FILE_ACK 300 /* 5 minut */ |
#define GG_DCC_TIMEOUT_VOICE_ACK 300 /* 5 minut */ |
#define GG_DCC7_INFO 0x1f |
#define GG_DCC7_NEW 0x20 |
#define GG_DCC7_ACCEPT 0x21 |
#define GG_DCC7_TYPE_P2P 0x00000001 |
Połączenie bezpośrednie.
#define GG_DCC7_TYPE_SERVER 0x00000002 |
Połączenie przez serwer.
#define GG_DCC7_REJECT 0x22 |
#define GG_DCC7_REJECT_BUSY 0x00000001 |
Połączenie bezpośrednie już trwa, nie umiem obsłużyć więcej.
#define GG_DCC7_REJECT_USER 0x00000002 |
Użytkownik odrzucił połączenie.
#define GG_DCC7_REJECT_VERSION 0x00000006 |
Druga strona ma wersję klienta nieobsługującą połączeń bezpośrednich tego typu.
#define GG_DCC7_ID_REQUEST 0x23 |
#define GG_DCC7_TYPE_VOICE 0x00000001 |
Transmisja głosu.
#define GG_DCC7_TYPE_FILE 0x00000004 |
transmisja pliku
#define GG_DCC7_ID_REPLY 0x23 |
#define GG_DCC7_DUNNO1 0x24 |
#define GG_DCC7_TIMEOUT_CONNECT 10 /* 10 sekund */ |
#define GG_DCC7_TIMEOUT_SEND 1800 /* 30 minut */ |
#define GG_DCC7_TIMEOUT_GET 1800 /* 30 minut */ |
#define GG_DCC7_TIMEOUT_FILE_ACK 300 /* 5 minut */ |
#define GG_DCC7_TIMEOUT_VOICE_ACK 300 /* 5 minut */ |
#define GG_CHAT_INFO_UPDATE_ENTERED 0x01 |
#define GG_CHAT_INFO_UPDATE_EXITED 0x03 |
typedef uint32_t uin_t |
Numer Gadu-Gadu.
typedef struct gg_pubdir50_s* gg_pubdir50_t |
Zapytanie lub odpowiedź katalogu publicznego.
Do pól nie należy się odwoływać bezpośrednio – wszystkie niezbędne informacje są dostępne za pomocą funkcji gg_pubdir50_*
enum gg_resolver_t |
Sposób rozwiązywania nazw serwerów.
enum gg_encoding_t |
enum gg_compat_t |
enum gg_session_t |
Rodzaj sesji.
enum gg_state_t |
Aktualny stan sesji.
enum gg_failure_t |
Powód nieudanego połączenia.
enum gg_error_t |
Kod błędu danej operacji.
Nie zawiera przesadnie szczegółowych informacji o powodach błędów, by nie komplikować ich obsługi. Jeśli wymagana jest większa dokładność, należy sprawdzić zawartość zmiennej systemowej errno
.
uint32_t gg_crc32 | ( | uint32_t | crc, |
const unsigned char * | buf, | ||
int | len | ||
) |
Wyznacza sumę kontrolną CRC32.
crc | Suma kontrola poprzedniego bloku danych lub 0 jeśli liczona jest suma kontrolna pierwszego bloku |
buf | Bufor danych |
len | Długość bufora danych |
int gg_session_set_resolver | ( | struct gg_session * | gs, |
gg_resolver_t | type | ||
) |
Ustawia sposób rozwiązywania nazw w sesji.
gs | Struktura sesji |
type | Sposób rozwiązywania nazw (patrz Rozwiązywanie nazw) |
gg_resolver_t gg_session_get_resolver | ( | struct gg_session * | gs | ) |
Zwraca sposób rozwiązywania nazw w sesji.
gs | Struktura sesji |
int gg_session_set_custom_resolver | ( | struct gg_session * | gs, |
int(*)(int *, void **, const char *) | resolver_start, | ||
void(*)(void **, int) | resolver_cleanup | ||
) |
Ustawia własny sposób rozwiązywania nazw w sesji.
gs | Struktura sesji |
resolver_start | Funkcja rozpoczynająca rozwiązywanie nazwy |
resolver_cleanup | Funkcja zwalniająca zasoby |
Parametry funkcji rozpoczynającej rozwiązywanie nazwy wyglądają następująco:
"int *fd"
— wskaźnik na zmienną, gdzie zostanie umieszczony deskryptor gniazda"void **priv_data"
— wskaźnik na zmienną, gdzie można umieścić wskaźnik do prywatnych danych na potrzeby rozwiązywania nazwy"const char *name"
— nazwa serwera do rozwiązaniaParametry funkcji zwalniającej zasoby wyglądają następująco:
"void **priv_data"
— wskaźnik na zmienną przechowującą wskaźnik do prywatnych danych, należy go ustawić na NULL
po zakończeniu"int force"
— flaga mówiąca o tym, że zasoby są zwalniane przed zakończeniem rozwiązywania nazwy, np. z powodu zamknięcia sesji.Własny kod rozwiązywania nazwy powinien stworzyć potok, parę gniazd lub inny deskryptor pozwalający na co najmniej odbiór danych i przekazać go w parametrze fd
. Na platformie Windows możliwe jest przekazanie jedynie deskryptora gniazda. Po zakończeniu rozwiązywania nazwy powinien wysłać otrzymany adres IP w postaci sieciowej (big-endian) do deskryptora. Jeśli rozwiązywanie nazwy się nie powiedzie, należy wysłać INADDR_NONE
. Następnie zostanie wywołana funkcja zwalniająca zasoby z parametrem force
równym 0
. Gdyby sesja została zakończona przed rozwiązaniem nazwy, np. za pomocą funkcji gg_logoff()
, funkcja zwalniająca zasoby zostanie wywołana z parametrem force
równym 1
.
int gg_http_set_resolver | ( | struct gg_http * | gh, |
gg_resolver_t | type | ||
) |
Ustawia sposób rozwiązywania nazw połączenia HTTP.
gh | Struktura połączenia |
type | Sposób rozwiązywania nazw (patrz Rozwiązywanie nazw) |
gg_resolver_t gg_http_get_resolver | ( | struct gg_http * | gh | ) |
Zwraca sposób rozwiązywania nazw połączenia HTTP.
gh | Struktura połączenia |
int gg_http_set_custom_resolver | ( | struct gg_http * | gh, |
int(*)(int *, void **, const char *) | resolver_start, | ||
void(*)(void **, int) | resolver_cleanup | ||
) |
Ustawia własny sposób rozwiązywania nazw połączenia HTTP.
gh | Struktura sesji |
resolver_start | Funkcja rozpoczynająca rozwiązywanie nazwy |
resolver_cleanup | Funkcja zwalniająca zasoby |
int gg_global_set_resolver | ( | gg_resolver_t | type | ) |
Ustawia sposób rozwiązywania nazw globalnie dla biblioteki.
type | Sposób rozwiązywania nazw (patrz Rozwiązywanie nazw) |
gg_resolver_t gg_global_get_resolver | ( | void | ) |
Zwraca sposób rozwiązywania nazw globalnie dla biblioteki.
int gg_global_set_custom_resolver | ( | int(*)(int *, void **, const char *) | resolver_start, |
void(*)(void **, int) | resolver_cleanup | ||
) |
Ustawia własny sposób rozwiązywania nazw globalnie dla biblioteki.
resolver_start | Funkcja rozpoczynająca rozwiązywanie nazwy |
resolver_cleanup | Funkcja zwalniająca zasoby |
Patrz gg_session_set_custom_resolver.
int gg_pubdir_watch_fd | ( | struct gg_http * | h | ) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
Operacja będzie zakończona, gdy pole state
będzie równe GG_STATE_DONE
. Jeśli wystąpi błąd, state
będzie równe GG_STATE_ERROR
, a kod błędu znajdzie się w polu error
.
h | Struktura połączenia |
void gg_pubdir_free | ( | struct gg_http * | h | ) |
Zwalnia zasoby po operacji na katalogu publicznym.
h | Struktura połączenia |
void gg_debug | ( | int | level, |
const char * | format, | ||
... | |||
) |
void void gg_debug_session | ( | struct gg_session * | sess, |
int | level, | ||
const char * | format, | ||
... | |||
) |
int gg_file_hash_sha1 | ( | int | fd, |
uint8_t * | result | ||
) |
char* gg_saprintf | ( | const char * | format, |
... | |||
) |
char* gg_get_line | ( | char ** | ptr | ) |
Pobiera linię tekstu z bufora.
Funkcja niszczy bufor źródłowy bezpowrotnie, dzieląc go na kolejne ciągi znaków i obcina znaki końca linii.
ptr | Wskaźnik do zmiennej, która przechowuje aktualne położenie w analizowanym buforze |
struct in_addr* gg_gethostbyname | ( | const char * | hostname | ) |
Odpowiednik gethostbyname
zapewniający współbieżność.
Jeśli dany system dostarcza gethostbyname_r
, używa się tej wersji, jeśli nie, to zwykłej gethostbyname
. Funkcja służy do zachowania zgodności ABI i służy do pobierania tylko pierwszego adresu – pozostałe mogą zostać zignorowane przez aplikację.
hostname | Nazwa serwera |
in_addr
lub NULL w przypadku błędu. char* gg_read_line | ( | int | sock, |
char * | buf, | ||
int | length | ||
) |
Czyta linię tekstu z gniazda.
Funkcja czyta tekst znak po znaku, więc nie jest efektywna, ale dzięki brakowi buforowania, nie koliduje z innymi funkcjami odczytu.
sock | Deskryptor gniazda |
buf | Wskaźnik do bufora |
length | Długość bufora |
NULL
w przypadku błędu. int gg_http_hash | ( | const char * | format, |
... | |||
) |
Wyznacza skrót dla usług HTTP.
Funkcja jest wykorzystywana do wyznaczania skrótu adresu e-mail, hasła i innych wartości przekazywanych jako parametry usług HTTP.
W parametrze format
należy umieścić znaki określające postać kolejnych parametrów: 's'
jeśli parametr jest ciągiem znaków, 'u'
jeśli jest liczbą.
format | Format kolejnych parametrów (niezgodny z printf ) |
void gg_http_free_fields | ( | struct gg_http * | h | ) |
Zwalnia pola struktury gg_http
.
Funkcja zwalnia same pola, nie zwalnia struktury.
h | Struktura połączenia |
int gg_read | ( | struct gg_session * | sess, |
char * | buf, | ||
int | length | ||
) |
Odbiera od serwera dane binarne.
Funkcja odbiera dane od serwera zajmując się SSL/TLS w razie konieczności. Obsługuje EINTR, więc użytkownik nie musi się przejmować przerwanymi wywołaniami systemowymi.
sess | Struktura sesji |
buf | Bufor na danymi |
length | Długość bufora |
read
int gg_write | ( | struct gg_session * | sess, |
const char * | buf, | ||
int | length | ||
) |
Wysyła do serwera dane binarne.
Funkcja wysyła dane do serwera zajmując się TLS w razie konieczności.
sess | Struktura sesji |
buf | Bufor z danymi |
length | Długość bufora |
write
void* gg_recv_packet | ( | struct gg_session * | sess | ) |
Odbiera pakiet od serwera.
Funkcja odczytuje nagłówek pakietu, a następnie jego zawartość i zwraca w zaalokowanym buforze.
Przy połączeniach asynchronicznych, funkcja może nie być w stanie skompletować całego pakietu – w takim przypadku zwróci NULL
, a kodem błędu będzie EAGAIN
.
sess | Struktura sesji |
int gg_send_packet | ( | struct gg_session * | sess, |
int | type, | ||
... | |||
) |
Wysyła pakiet do serwera.
Funkcja konstruuje pakiet do wysłania z dowolnej liczby fragmentów. Jeśli rozmiar pakietu jest za duży, by móc go wysłać za jednym razem, pozostała część zostanie zakolejkowana i wysłana, gdy będzie to możliwe.
sess | Struktura sesji |
type | Rodzaj pakietu |
... | Lista kolejnych części pakietu (wskaźnik na bufor i długość typu int ) zakończona NULL |
unsigned int gg_login_hash | ( | const unsigned char * | password, |
unsigned int | seed | ||
) |
Liczy skrót z hasła i ziarna.
password | Hasło |
seed | Ziarno podane przez serwer |
void gg_login_hash_sha1 | ( | const char * | password, |
uint32_t | seed, | ||
uint8_t * | result | ||
) |
char* gg_proxy_auth | ( | void | ) |
Tworzy nagłówek autoryzacji serwera pośredniczącego.
Dane pobiera ze zmiennych globalnych gg_proxy_username
i gg_proxy_password
.
int gg_image_queue_remove | ( | struct gg_session * | s, |
struct gg_image_queue * | q, | ||
int | freeq | ||
) |
int gg_dcc7_handle_id | ( | struct gg_session * | sess, |
struct gg_event * | e, | ||
const void * | payload, | ||
int | len | ||
) |
Obsługuje pakiet identyfikatora połączenia bezpośredniego.
sess | Struktura sesji |
e | Struktura zdarzenia |
payload | Treść pakietu |
len | Długość pakietu |
int gg_dcc7_handle_new | ( | struct gg_session * | sess, |
struct gg_event * | e, | ||
const void * | payload, | ||
int | len | ||
) |
Obsługuje pakiet nowego połączenia bezpośredniego.
sess | Struktura sesji |
e | Struktura zdarzenia |
payload | Treść pakietu |
len | Długość pakietu |
int gg_dcc7_handle_info | ( | struct gg_session * | sess, |
struct gg_event * | e, | ||
const void * | payload, | ||
int | len | ||
) |
Obsługuje pakiet informacji o połączeniu bezpośrednim.
sess | Struktura sesji |
e | Struktura zdarzenia |
payload | Treść pakietu |
len | Długość pakietu |
int gg_dcc7_handle_accept | ( | struct gg_session * | sess, |
struct gg_event * | e, | ||
const void * | payload, | ||
int | len | ||
) |
Obsługuje pakiet akceptacji połączenia bezpośredniego.
sess | Struktura sesji |
e | Struktura zdarzenia |
payload | Treść pakietu |
len | Długość pakietu |
int gg_dcc7_handle_reject | ( | struct gg_session * | sess, |
struct gg_event * | e, | ||
const void * | payload, | ||
int | len | ||
) |
Obsługuje pakiet odrzucenia połączenia bezpośredniego.
sess | Struktura sesji |
e | Struktura zdarzenia |
payload | Treść pakietu |
len | Długość pakietu |
struct gg_image_queue GG_DEPRECATED |