libgadu 1.12.2

- Strona główna
- Dodatkowe strony
- Moduły
- Struktury Danych
- Pliki

- Lista plików
- Globalne

Struktury danych | Definicje | Definicje typów | Wyliczenia | Funkcje | Zmienne
Dokumentacja pliku libgadu.h

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...

## Wyliczenia
enum | gg_resolver_t { GG_RESOLVER_DEFAULT = 0, GG_RESOLVER_FORK, GG_RESOLVER_PTHREAD, GG_RESOLVER_CUSTOM, GG_RESOLVER_WIN32, GG_RESOLVER_INVALID = -1 }
| Sposób rozwiązywania nazw serwerów. Więcej...
enum | gg_encoding_t { GG_ENCODING_CP1250 = 0, GG_ENCODING_UTF8, GG_ENCODING_INVALID = -1 }
| Rodzaj kodowania znaków. Więcej...
enum | gg_compat_t { GG_COMPAT_LEGACY = 0, GG_COMPAT_1_12_0 = 1 }
| Stopień kompatybilności ze starymi wersjami API. Więcej...
enum | gg_ssl_t { GG_SSL_DISABLED = 0, GG_SSL_ENABLED, GG_SSL_REQUIRED }
| Flaga połączenia szyfrowanego. Więcej...
enum | gg_session_t { GG_SESSION_GG = 1, GG_SESSION_HTTP, GG_SESSION_SEARCH, GG_SESSION_REGISTER, GG_SESSION_REMIND, GG_SESSION_PASSWD, GG_SESSION_CHANGE, GG_SESSION_DCC, GG_SESSION_DCC_SOCKET, GG_SESSION_DCC_SEND, GG_SESSION_DCC_GET, GG_SESSION_DCC_VOICE, GG_SESSION_USERLIST_GET, GG_SESSION_USERLIST_PUT, GG_SESSION_UNREGISTER, GG_SESSION_USERLIST_REMOVE, GG_SESSION_TOKEN, GG_SESSION_DCC7_SOCKET, GG_SESSION_DCC7_SEND, GG_SESSION_DCC7_GET, GG_SESSION_DCC7_VOICE, GG_SESSION_USER0 = 256, GG_SESSION_USER1, GG_SESSION_USER2, GG_SESSION_USER3, GG_SESSION_USER4, GG_SESSION_USER5, GG_SESSION_USER6, GG_SESSION_USER7 }
| Rodzaj sesji. Więcej...
enum | gg_state_t { GG_STATE_IDLE = 0, GG_STATE_RESOLVING, GG_STATE_CONNECTING, GG_STATE_READING_DATA, GG_STATE_ERROR, GG_STATE_CONNECTING_HUB, GG_STATE_CONNECTING_GG, GG_STATE_READING_KEY, GG_STATE_READING_REPLY, GG_STATE_CONNECTED, GG_STATE_SENDING_QUERY, GG_STATE_READING_HEADER, GG_STATE_PARSING, GG_STATE_DONE, GG_STATE_LISTENING, GG_STATE_READING_UIN_1, GG_STATE_READING_UIN_2, GG_STATE_SENDING_ACK, GG_STATE_READING_ACK, GG_STATE_READING_REQUEST, GG_STATE_SENDING_REQUEST, GG_STATE_SENDING_FILE_INFO, GG_STATE_READING_PRE_FILE_INFO, GG_STATE_READING_FILE_INFO, GG_STATE_SENDING_FILE_ACK, GG_STATE_READING_FILE_ACK, GG_STATE_SENDING_FILE_HEADER, GG_STATE_READING_FILE_HEADER, GG_STATE_GETTING_FILE, GG_STATE_SENDING_FILE, GG_STATE_READING_VOICE_ACK, GG_STATE_READING_VOICE_HEADER, GG_STATE_READING_VOICE_SIZE, GG_STATE_READING_VOICE_DATA, GG_STATE_SENDING_VOICE_ACK, GG_STATE_SENDING_VOICE_REQUEST, GG_STATE_READING_TYPE, GG_STATE_TLS_NEGOTIATION, GG_STATE_REQUESTING_ID, GG_STATE_WAITING_FOR_ACCEPT, GG_STATE_WAITING_FOR_INFO, GG_STATE_READING_ID, GG_STATE_SENDING_ID, GG_STATE_RESOLVING_GG, GG_STATE_RESOLVING_RELAY, GG_STATE_CONNECTING_RELAY, GG_STATE_READING_RELAY, GG_STATE_DISCONNECTING, GG_STATE_CONNECT_HUB, GG_STATE_CONNECT_PROXY_HUB, GG_STATE_CONNECT_GG, GG_STATE_CONNECT_PROXY_GG, GG_STATE_CONNECTING_PROXY_HUB, GG_STATE_CONNECTING_PROXY_GG, GG_STATE_RESOLVE_HUB_SYNC, GG_STATE_RESOLVE_HUB_ASYNC, GG_STATE_RESOLVE_PROXY_HUB_SYNC, GG_STATE_RESOLVE_PROXY_HUB_ASYNC, GG_STATE_RESOLVE_PROXY_GG_SYNC, GG_STATE_RESOLVE_PROXY_GG_ASYNC, GG_STATE_RESOLVE_GG_SYNC, GG_STATE_RESOLVE_GG_ASYNC, GG_STATE_RESOLVING_HUB, GG_STATE_RESOLVING_PROXY_HUB, GG_STATE_RESOLVING_PROXY_GG, GG_STATE_SEND_HUB, GG_STATE_SEND_PROXY_HUB, GG_STATE_SEND_PROXY_GG, GG_STATE_SENDING_HUB, GG_STATE_SENDING_PROXY_HUB, GG_STATE_SENDING_PROXY_GG, GG_STATE_READING_HUB, GG_STATE_READING_PROXY_HUB, GG_STATE_READING_PROXY_GG }
| Aktualny stan sesji. Więcej...
enum | gg_check_t { GG_CHECK_NONE = 0, GG_CHECK_WRITE = 1, GG_CHECK_READ = 2 }
| Informacja o tym, czy biblioteka chce zapisywać i/lub czytać z deskryptora. Więcej...
enum | gg_socket_manager_type_t { GG_SOCKET_MANAGER_TYPE_INTERNAL = 0, GG_SOCKET_MANAGER_TYPE_TCP, GG_SOCKET_MANAGER_TYPE_TLS }
| Metody nawiązywania połączeń TCP/TLS. Więcej...
enum | gg_event_t { GG_EVENT_NONE = 0, GG_EVENT_MSG, GG_EVENT_NOTIFY, GG_EVENT_NOTIFY_DESCR, GG_EVENT_STATUS, GG_EVENT_ACK, GG_EVENT_PONG, GG_EVENT_CONN_FAILED, GG_EVENT_CONN_SUCCESS, GG_EVENT_DISCONNECT, GG_EVENT_DCC_NEW, GG_EVENT_DCC_ERROR, GG_EVENT_DCC_DONE, GG_EVENT_DCC_CLIENT_ACCEPT, GG_EVENT_DCC_CALLBACK, GG_EVENT_DCC_NEED_FILE_INFO, GG_EVENT_DCC_NEED_FILE_ACK, GG_EVENT_DCC_NEED_VOICE_ACK, GG_EVENT_DCC_VOICE_DATA, GG_EVENT_PUBDIR50_SEARCH_REPLY, GG_EVENT_PUBDIR50_READ, GG_EVENT_PUBDIR50_WRITE, GG_EVENT_STATUS60, GG_EVENT_NOTIFY60, GG_EVENT_USERLIST, GG_EVENT_IMAGE_REQUEST, GG_EVENT_IMAGE_REPLY, GG_EVENT_DCC_ACK, GG_EVENT_DCC7_NEW, GG_EVENT_DCC7_ACCEPT, GG_EVENT_DCC7_REJECT, GG_EVENT_DCC7_CONNECTED, GG_EVENT_DCC7_ERROR, GG_EVENT_DCC7_DONE, GG_EVENT_DCC7_PENDING, GG_EVENT_XML_EVENT, GG_EVENT_DISCONNECT_ACK, GG_EVENT_TYPING_NOTIFICATION, GG_EVENT_USER_DATA, GG_EVENT_MULTILOGON_MSG, GG_EVENT_MULTILOGON_INFO, GG_EVENT_USERLIST100_VERSION, GG_EVENT_USERLIST100_REPLY, GG_EVENT_IMTOKEN, GG_EVENT_PONG110, GG_EVENT_JSON_EVENT, GG_EVENT_ACK110, GG_EVENT_CHAT_INFO, GG_EVENT_CHAT_INFO_GOT_ALL, GG_EVENT_CHAT_INFO_UPDATE, GG_EVENT_CHAT_CREATED, GG_EVENT_CHAT_INVITE_ACK }
| Rodzaj zdarzenia. Więcej...
enum | gg_failure_t { GG_FAILURE_RESOLVING = 1, GG_FAILURE_CONNECTING, GG_FAILURE_INVALID, GG_FAILURE_READING, GG_FAILURE_WRITING, GG_FAILURE_PASSWORD, GG_FAILURE_404, GG_FAILURE_TLS, GG_FAILURE_NEED_EMAIL, GG_FAILURE_INTRUDER, GG_FAILURE_UNAVAILABLE, GG_FAILURE_PROXY, GG_FAILURE_HUB, GG_FAILURE_INTERNAL }
| Powód nieudanego połączenia. Więcej...
enum | gg_error_t { GG_ERROR_RESOLVING = 1, GG_ERROR_CONNECTING, GG_ERROR_READING, GG_ERROR_WRITING, GG_ERROR_DCC_HANDSHAKE, GG_ERROR_DCC_FILE, GG_ERROR_DCC_EOF, GG_ERROR_DCC_NET, GG_ERROR_DCC_REFUSED, GG_ERROR_DCC7_HANDSHAKE, GG_ERROR_DCC7_FILE, GG_ERROR_DCC7_EOF, GG_ERROR_DCC7_NET, GG_ERROR_DCC7_REFUSED, GG_ERROR_DCC7_RELAY }
| Kod błędu danej operacji. Więcej...
enum | { GG_PUBDIR50_UIN, GG_PUBDIR50_STATUS, GG_PUBDIR50_FIRSTNAME, GG_PUBDIR50_LASTNAME, GG_PUBDIR50_NICKNAME, GG_PUBDIR50_BIRTHYEAR, GG_PUBDIR50_CITY, GG_PUBDIR50_GENDER, GG_PUBDIR50_ACTIVE, GG_PUBDIR50_START, GG_PUBDIR50_FAMILYNAME, GG_PUBDIR50_FAMILYCITY }
| Rodzaj pola zapytania. Więcej...
enum | { GG_PUBDIR50_GENDER_FEMALE, GG_PUBDIR50_GENDER_MALE }
| Wartość pola GG_PUBDIR50_GENDER przy wyszukiwaniu. Więcej...
enum | { GG_PUBDIR50_GENDER_SET_FEMALE, GG_PUBDIR50_GENDER_SET_MALE }
| Wartość pola GG_PUBDIR50_GENDER przy wysyłaniu informacji o sobie. Więcej...
enum | { GG_PUBDIR50_ACTIVE_TRUE }
| Wartość pola GG_PUBDIR50_ACTIVE. Więcej...
enum | gg_pubdir_error_t { GG_PUBDIR_ERROR_NONE = 0, GG_PUBDIR_ERROR_OTHER, GG_PUBDIR_ERROR_TOKEN, GG_PUBDIR_ERROR_OLD_PASSWORD, GG_PUBDIR_ERROR_NEW_PASSWORD }
| Powód błędu operacji na katalogu publicznym. Więcej...
enum | gg_libgadu_feature_t { GG_LIBGADU_FEATURE_SSL, GG_LIBGADU_FEATURE_PTHREAD, GG_LIBGADU_FEATURE_USERLIST100 }
| Lista funkcji biblioteki, które zależą od zewnętrznych bibliotek. Więcej...
enum | { GG_PUBDIR50_WRITE, GG_PUBDIR50_READ, GG_PUBDIR50_SEARCH, GG_PUBDIR50_SEARCH_REPLY }
| Rodzaj zapytania lub odpowiedzi katalogu publicznego. Więcej...
enum | { GG_FEATURE_MSG77, GG_FEATURE_STATUS77, GG_FEATURE_DND_FFC, GG_FEATURE_IMAGE_DESCR }
| Flagi opcji protokołu. Więcej...
enum | { GG_STATUS_NOT_AVAIL, GG_STATUS_NOT_AVAIL_DESCR, GG_STATUS_FFC, GG_STATUS_FFC_DESCR, GG_STATUS_AVAIL, GG_STATUS_AVAIL_DESCR, GG_STATUS_BUSY, GG_STATUS_BUSY_DESCR, GG_STATUS_DND, GG_STATUS_DND_DESCR, GG_STATUS_INVISIBLE, GG_STATUS_INVISIBLE_DESCR, GG_STATUS_BLOCKED, GG_STATUS_GGPLUS, GG_STATUS_NOT_SET, GG_STATUS_IMAGE_MASK, GG_STATUS_DESCR_MASK, GG_STATUS_FRIENDS_MASK }
| Rodzaje statusów użytkownika. Więcej...
enum | { GG_STATUS_FLAG_UNKNOWN, GG_STATUS_FLAG_VIDEO, GG_STATUS_FLAG_INHERIT, GG_STATUS_FLAG_MOBILE, GG_STATUS_FLAG_SPAM }
| Rodzaje statusów użytkownika. Więcej...
enum | { GG_USER_NORMAL, GG_USER_BLOCKED, GG_USER_OFFLINE }
| Rodzaj kontaktu. Więcej...
enum | { GG_CLASS_MSG, GG_CLASS_CHAT, GG_CLASS_CTCP, GG_CLASS_ACK, GG_CLASS_QUEUED }
| Klasy wiadomości. Więcej...
enum | { GG_FONT_BOLD, GG_FONT_ITALIC, GG_FONT_UNDERLINE, GG_FONT_COLOR, GG_FONT_IMAGE }
| Atrybuty formatowania wiadomości. Więcej...
enum | { GG_ACK_DELIVERED, GG_ACK_QUEUED, GG_ACK_BLOCKED, GG_ACK_MBOXFULL, GG_ACK_NOT_DELIVERED }
| Status doręczenia wiadomości. Więcej...
enum | { GG_USERLIST_PUT, GG_USERLIST_GET }
| Rodzaj zapytania. Więcej...
enum | { GG_USERLIST_PUT_REPLY, GG_USERLIST_GET_REPLY }
| Rodzaj odpowiedzi. Więcej...
enum | { GG_USERLIST100_PUT, GG_USERLIST100_GET }
| Rodzaj zapytania (10.0). Więcej...
enum | { GG_USERLIST100_FORMAT_TYPE_NONE, GG_USERLIST100_FORMAT_TYPE_GG70, GG_USERLIST100_FORMAT_TYPE_GG100 }
| Typ formatu listy kontaktów (10.0). Więcej...
enum | { GG_USERLIST100_REPLY_LIST, GG_USERLIST100_REPLY_UPTODATE, GG_USERLIST100_REPLY_ACK, GG_USERLIST100_REPLY_REJECT }
| Typ odpowiedzi listy kontaktów (10.0). 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

## Opis szczegółowy

Główny plik nagłówkowy biblioteki.

## Dokumentacja definicji

#define gg_common_head | ( |  | x | ) |

Wartość:
int fd; /**< Obserwowany deskryptor */ \
int check; /**< Informacja o żądaniu odczytu/zapisu (patrz \ref gg_check_t) */ \
int state; /**< Aktualny stan połączenia (patrz \ref gg_state_t) */ \
int error; /**< Kod błędu dla \c GG_STATE_ERROR (patrz \ref gg_error_t) */ \
int type; /**< Rodzaj sesji (patrz \ref gg_session_t) */ \
int id; /**< Identyfikator sesji */ \
int timeout; /**< Czas pozostały do zakończenia stanu */ \
int (*callback)(x*); /**< Funkcja zwrotna */ \
void (*destroy)(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_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 | ) |

Wartość:
(GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR || \
GG_S(x) == GG_STATUS_FFC_DESCR || \
GG_S(x) == GG_STATUS_AVAIL_DESCR || \
GG_S(x) == GG_STATUS_BUSY_DESCR || \
GG_S(x) == GG_STATUS_DND_DESCR || \
GG_S(x) == GG_STATUS_INVISIBLE_DESCR)
GG_STATUS_DND_DESCR
Nie przeszakdzać z opisem.
Definition: libgadu.h:2020
GG_STATUS_INVISIBLE_DESCR
Niewidoczny z opisem (tylko własny status)
Definition: libgadu.h:2022
GG_STATUS_FFC_DESCR
PoGGadaj ze mną z opisem.
Definition: libgadu.h:2014
GG_S
#define GG_S(x)
Definition: libgadu.h:2068
GG_STATUS_BUSY_DESCR
Zajęty z opisem.
Definition: libgadu.h:2018
GG_STATUS_NOT_AVAIL_DESCR
Niedostępny z opisem.
Definition: libgadu.h:2012
GG_STATUS_AVAIL_DESCR
Dostępny z opisem.
Definition: libgadu.h:2016

#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

## Dokumentacja definicji typów

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_*`

## Dokumentacja typów wyliczanych

enum gg_resolver_t

Sposób rozwiązywania nazw serwerów.

Wartości wyliczeń
GG_RESOLVER_DEFAULT | Domyślny sposób rozwiązywania nazw (jeden z poniższych)
GG_RESOLVER_FORK | Rozwiązywanie nazw bazujące na procesach.
GG_RESOLVER_PTHREAD | Rozwiązywanie nazw bazujące na wątkach.
GG_RESOLVER_CUSTOM | Funkcje rozwiązywania nazw dostarczone przed aplikację
GG_RESOLVER_WIN32 | Rozwiązywanie nazw bazujące na wątkach Win32.
GG_RESOLVER_INVALID | Nieprawidłowy sposób rozwiązywania nazw (wynik `gg_session_get_resolver`)

enum gg_encoding_t

Rodzaj kodowania znaków.

Wartości wyliczeń
GG_ENCODING_CP1250 | Kodowanie CP1250.
GG_ENCODING_UTF8 | Kodowanie UTF-8.
GG_ENCODING_INVALID | Nieprawidłowe kodowanie.

enum gg_compat_t

Stopień kompatybilności ze starymi wersjami API.

Wartości wyliczeń
GG_COMPAT_LEGACY | Całkowita kompatybilność (nie wyłącza żadnych funkcji)
GG_COMPAT_1_12_0 | Wyłącza: dostarczanie eventów GG_EVENT_ACK, stary format konferencji.

enum gg_session_t

Rodzaj sesji.

Wartości wyliczeń
GG_SESSION_GG | Połączenie z serwerem Gadu-Gadu.
GG_SESSION_HTTP | Połączenie HTTP.
GG_SESSION_SEARCH | Wyszukiwanie w katalogu publicznym (nieaktualne)
GG_SESSION_REGISTER | Rejestracja nowego konta.
GG_SESSION_REMIND | Przypominanie hasła.
GG_SESSION_PASSWD | Zmiana hasła.
GG_SESSION_CHANGE | Zmiana informacji w katalogu publicznym (nieaktualne)
GG_SESSION_DCC | Połączenie bezpośrednie (do wersji 6.x)
GG_SESSION_DCC_SOCKET | Gniazdo nasłuchujące (do wersji 6.x)
GG_SESSION_DCC_SEND | Wysyłanie pliku (do wersji 6.x)
GG_SESSION_DCC_GET | Odbieranie pliku (do wersji 6.x)
GG_SESSION_DCC_VOICE | Rozmowa głosowa (do wersji 6.x)
GG_SESSION_USERLIST_GET | Import listy kontaktów z serwera (nieaktualne)
GG_SESSION_USERLIST_PUT | Eksport listy kontaktów do serwera (nieaktualne)
GG_SESSION_UNREGISTER | Usuwanie konta.
GG_SESSION_USERLIST_REMOVE | Usuwanie listy kontaktów z serwera (nieaktualne)
GG_SESSION_TOKEN | Pobieranie tokenu.
GG_SESSION_DCC7_SOCKET | Gniazdo nasłuchujące (od wersji 7.x)
GG_SESSION_DCC7_SEND | Wysyłanie pliku (od wersji 7.x)
GG_SESSION_DCC7_GET | Odbieranie pliku (od wersji 7.x)
GG_SESSION_DCC7_VOICE | Rozmowa głosowa (od wersji 7.x)
GG_SESSION_USER0 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER1 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER2 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER3 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER4 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER5 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER6 | Rodzaj zadeklarowany dla użytkownika.
GG_SESSION_USER7 | Rodzaj zadeklarowany dla użytkownika.

enum gg_state_t

Aktualny stan sesji.

Wartości wyliczeń
GG_STATE_IDLE | Nie dzieje się nic.
GG_STATE_RESOLVING | Oczekiwanie na rozwiązanie nazwy serwera.
GG_STATE_CONNECTING | Oczekiwanie na połączenie.
GG_STATE_READING_DATA | Oczekiwanie na dane.
GG_STATE_ERROR | Kod błędu w polu `error`.
GG_STATE_CONNECTING_HUB | Oczekiwanie na połączenie z hubem.
GG_STATE_CONNECTING_GG | Oczekiwanie na połączenie z serwerem.
GG_STATE_READING_KEY | Oczekiwanie na klucz.
GG_STATE_READING_REPLY | Oczekiwanie na odpowiedź serwera.
GG_STATE_CONNECTED | Połączono z serwerem.
GG_STATE_SENDING_QUERY | Wysłano zapytanie HTTP.
GG_STATE_READING_HEADER | Oczekiwanie na nagłówek HTTP.
GG_STATE_PARSING | Przetwarzanie danych.
GG_STATE_DONE | Połączenie zakończone.
GG_STATE_LISTENING |
GG_STATE_READING_UIN_1 |
GG_STATE_READING_UIN_2 |
GG_STATE_SENDING_ACK |
GG_STATE_READING_ACK |
GG_STATE_READING_REQUEST |
GG_STATE_SENDING_REQUEST |
GG_STATE_SENDING_FILE_INFO |
GG_STATE_READING_PRE_FILE_INFO |
GG_STATE_READING_FILE_INFO |
GG_STATE_SENDING_FILE_ACK |
GG_STATE_READING_FILE_ACK |
GG_STATE_SENDING_FILE_HEADER |
GG_STATE_READING_FILE_HEADER |
GG_STATE_GETTING_FILE |
GG_STATE_SENDING_FILE |
GG_STATE_READING_VOICE_ACK |
GG_STATE_READING_VOICE_HEADER |
GG_STATE_READING_VOICE_SIZE |
GG_STATE_READING_VOICE_DATA |
GG_STATE_SENDING_VOICE_ACK |
GG_STATE_SENDING_VOICE_REQUEST |
GG_STATE_READING_TYPE |
GG_STATE_TLS_NEGOTIATION | Negocjacja połączenia szyfrowanego.
GG_STATE_REQUESTING_ID | Oczekiwanie na nadanie identyfikatora połączenia bezpośredniego.
GG_STATE_WAITING_FOR_ACCEPT | Oczekiwanie na potwierdzenie lub odrzucenie połączenia bezpośredniego.
GG_STATE_WAITING_FOR_INFO | Oczekiwanie na informacje o połączeniu bezpośrednim.
GG_STATE_READING_ID | Odebranie identyfikatora połączenia bezpośredniego.
GG_STATE_SENDING_ID | Wysłano identyfikator połączenia bezpośredniego.
GG_STATE_RESOLVING_GG | Oczekiwanie na rozwiązanie nazwy serwera Gadu-Gadu.
GG_STATE_RESOLVING_RELAY | Oczekiwanie na rozwiązanie nazwy serwera pośredniczącego.
GG_STATE_CONNECTING_RELAY | Oczekiwanie na połączenie z serwerem pośredniczącym.
GG_STATE_READING_RELAY | Odbieranie danych.
GG_STATE_DISCONNECTING | Oczekiwanie na potwierdzenie rozłączenia.
GG_STATE_CONNECT_HUB | Nawiązanie połączenia z hubem.
GG_STATE_CONNECT_PROXY_HUB |
GG_STATE_CONNECT_GG | Nawiązanie połączenia z serwerem.
GG_STATE_CONNECT_PROXY_GG |
GG_STATE_CONNECTING_PROXY_HUB |
GG_STATE_CONNECTING_PROXY_GG |
GG_STATE_RESOLVE_HUB_SYNC |
GG_STATE_RESOLVE_HUB_ASYNC |
GG_STATE_RESOLVE_PROXY_HUB_SYNC |
GG_STATE_RESOLVE_PROXY_HUB_ASYNC |
GG_STATE_RESOLVE_PROXY_GG_SYNC |
GG_STATE_RESOLVE_PROXY_GG_ASYNC |
GG_STATE_RESOLVE_GG_SYNC |
GG_STATE_RESOLVE_GG_ASYNC |
GG_STATE_RESOLVING_HUB |
GG_STATE_RESOLVING_PROXY_HUB |
GG_STATE_RESOLVING_PROXY_GG |
GG_STATE_SEND_HUB |
GG_STATE_SEND_PROXY_HUB |
GG_STATE_SEND_PROXY_GG |
GG_STATE_SENDING_HUB |
GG_STATE_SENDING_PROXY_HUB |
GG_STATE_SENDING_PROXY_GG |
GG_STATE_READING_HUB |
GG_STATE_READING_PROXY_HUB |
GG_STATE_READING_PROXY_GG |

enum gg_failure_t

Powód nieudanego połączenia.

Wartości wyliczeń
GG_FAILURE_RESOLVING | Nie znaleziono serwera.
GG_FAILURE_CONNECTING | Błąd połączenia.
GG_FAILURE_INVALID | Serwer zwrócił nieprawidłowe dane.
GG_FAILURE_READING | Zerwano połączenie podczas odczytu.
GG_FAILURE_WRITING | Zerwano połączenie podczas zapisu.
GG_FAILURE_PASSWORD | Nieprawidłowe hasło.
GG_FAILURE_404 | Nieużywane.
GG_FAILURE_TLS | Błąd negocjacji szyfrowanego połączenia.
GG_FAILURE_NEED_EMAIL | Serwer rozłączył nas z prośbą o zmianę adresu e-mail.
GG_FAILURE_INTRUDER | Zbyt wiele prób połączenia z nieprawidłowym hasłem.
GG_FAILURE_UNAVAILABLE | Serwery są wyłączone.
GG_FAILURE_PROXY | Błąd serwera pośredniczącego.
GG_FAILURE_HUB | Błąd połączenia z hubem.
GG_FAILURE_INTERNAL | Błąd wewnętrzny.

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`.

Wartości wyliczeń
GG_ERROR_RESOLVING | Nie znaleziono hosta.
GG_ERROR_CONNECTING | Błąd połączenia.
GG_ERROR_READING | Błąd odczytu/odbierania.
GG_ERROR_WRITING | Błąd zapisu/wysyłania.
GG_ERROR_DCC_HANDSHAKE | Błąd negocjacji.
GG_ERROR_DCC_FILE | Błąd odczytu/zapisu pliku.
GG_ERROR_DCC_EOF | Przedwczesny koniec pliku.
GG_ERROR_DCC_NET | Błąd wysyłania/odbierania.
GG_ERROR_DCC_REFUSED | Połączenie odrzucone.
GG_ERROR_DCC7_HANDSHAKE | Błąd negocjacji.
GG_ERROR_DCC7_FILE | Błąd odczytu/zapisu pliku.
GG_ERROR_DCC7_EOF | Przedwczesny koniec pliku.
GG_ERROR_DCC7_NET | Błąd wysyłania/odbierania.
GG_ERROR_DCC7_REFUSED | Połączenie odrzucone.
GG_ERROR_DCC7_RELAY | Problem z serwerem pośredniczącym.

## Dokumentacja funkcji

uint32_t gg_crc32 | ( | uint32_t | crc,
|  | const unsigned char * | buf,
|  | int | len
| ) |  |

Wyznacza sumę kontrolną CRC32.

Parametry

  crc | Suma kontrola poprzedniego bloku danych lub 0 jeśli liczona jest suma kontrolna pierwszego bloku
  buf | Bufor danych
  len | Długość bufora danych

Zwraca
  Suma kontrolna.

int gg_session_set_resolver | ( | struct gg_session * | gs,
|  | gg_resolver_t | type
| ) |  |

Ustawia sposób rozwiązywania nazw w sesji.

Parametry

  gs | Struktura sesji
  type | Sposób rozwiązywania nazw (patrz Rozwiązywanie nazw)

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

gg_resolver_t gg_session_get_resolver | ( | struct gg_session * | gs | ) |

Zwraca sposób rozwiązywania nazw w sesji.

Parametry

  gs | Struktura sesji

Zwraca
  Sposób rozwiązywania nazw

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.

Parametry

  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ązania

Parametry 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`.

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

int gg_http_set_resolver | ( | struct gg_http * | gh,
|  | gg_resolver_t | type
| ) |  |

Ustawia sposób rozwiązywania nazw połączenia HTTP.

Parametry

  gh | Struktura połączenia
  type | Sposób rozwiązywania nazw (patrz Rozwiązywanie nazw)

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

gg_resolver_t gg_http_get_resolver | ( | struct gg_http * | gh | ) |

Zwraca sposób rozwiązywania nazw połączenia HTTP.

Parametry

  gh | Struktura połączenia

Zwraca
  Sposób rozwiązywania nazw

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.

Parametry

  gh | Struktura sesji
  resolver_start | Funkcja rozpoczynająca rozwiązywanie nazwy
  resolver_cleanup | Funkcja zwalniająca zasoby

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

int gg_global_set_resolver | ( | gg_resolver_t | type | ) |

Ustawia sposób rozwiązywania nazw globalnie dla biblioteki.

Parametry

  type | Sposób rozwiązywania nazw (patrz Rozwiązywanie nazw)

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

gg_resolver_t gg_global_get_resolver | ( | void |  | ) |

Zwraca sposób rozwiązywania nazw globalnie dla biblioteki.

Zwraca
  Sposób rozwiązywania nazw

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.

Parametry

  resolver_start | Funkcja rozpoczynająca rozwiązywanie nazwy
  resolver_cleanup | Funkcja zwalniająca zasoby

Patrz gg_session_set_custom_resolver.

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

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`.

Parametry

  h | Struktura połączenia

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

void gg_pubdir_free | ( | struct gg_http * | h | ) |

Zwalnia zasoby po operacji na katalogu publicznym.

Parametry

  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.

Parametry

  ptr | Wskaźnik do zmiennej, która przechowuje aktualne położenie w analizowanym buforze

Nota
  Funkcja nie jest już używana. Pozostała dla zachowania ABI.

Zwraca
  Wskaźnik do kolejnej linii tekstu lub NULL, jeśli to już koniec bufora.

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ę.

Parametry

  hostname | Nazwa serwera

Zwraca
  Zaalokowana struktura `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.

Nota
  W przypadku zakończenia połączenia przez drugą stronę, ostatnia linia nie jest zwracana.

Parametry

  sock | Deskryptor gniazda
  buf | Wskaźnik do bufora
  length | Długość bufora

Zwraca
  Zwraca wskaźnik na koniec odebranej linii jeśli się powiodło, lub `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ą.

Parametry

  format | Format kolejnych parametrów (niezgodny z `printf`)

Zwraca
  Wartość skrótu

void gg_http_free_fields | ( | struct gg_http * | h | ) |

Zwalnia pola struktury `gg_http`.

Funkcja zwalnia same pola, nie zwalnia struktury.

Parametry

  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.

Parametry

  sess | Struktura sesji
  buf | Bufor na danymi
  length | Długość bufora

Zwraca
  To samo co funkcja systemowa `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.

Parametry

  sess | Struktura sesji
  buf | Bufor z danymi
  length | Długość bufora

Zwraca
  To samo co funkcja systemowa `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`.

Parametry

  sess | Struktura sesji

Zwraca
  Wskaźnik do zaalokowanego bufora

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.

Parametry

  sess | Struktura sesji
  type | Rodzaj pakietu
  ... | Lista kolejnych części pakietu (wskaźnik na bufor i długość typu `int`) zakończona `NULL`

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

unsigned int gg_login_hash | ( | const unsigned char * | password,
|  | unsigned int | seed
| ) |  |

Liczy skrót z hasła i ziarna.

Parametry

  password | Hasło
  seed | Ziarno podane przez serwer

Zwraca
  Wartość skrótu

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`.

Zwraca
  Zaalokowany bufor z tekstem lub NULL, jeśli serwer pośredniczący nie jest używany lub nie wymaga autoryzacji.

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.

Parametry

  sess | Struktura sesji
  e | Struktura zdarzenia
  payload | Treść pakietu
  len | Długość pakietu

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

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.

Parametry

  sess | Struktura sesji
  e | Struktura zdarzenia
  payload | Treść pakietu
  len | Długość pakietu

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

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.

Parametry

  sess | Struktura sesji
  e | Struktura zdarzenia
  payload | Treść pakietu
  len | Długość pakietu

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

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.

Parametry

  sess | Struktura sesji
  e | Struktura zdarzenia
  payload | Treść pakietu
  len | Długość pakietu

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

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.

Parametry

  sess | Struktura sesji
  e | Struktura zdarzenia
  payload | Treść pakietu
  len | Długość pakietu

Zwraca
  0 jeśli się powiodło, -1 w przypadku błędu

## Dokumentacja zmiennych

struct gg_image_queue GG_DEPRECATED