libgadu  1.12.2
All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje Grupay Strony
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_sgg_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_sessiongg_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_eventgg_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_httpgg_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_httpgg_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_httpgg_register3 (const char *email, const char *password, const char *tokenid, const char *tokenval, int async)
 Rejestruje nowego użytkownika. Więcej...
 
struct gg_httpgg_unregister3 (uin_t uin, const char *password, const char *tokenid, const char *tokenval, int async)
 Usuwa użytkownika. Więcej...
 
struct gg_httpgg_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_httpgg_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_dccgg_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_dccgg_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_dccgg_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_dccgg_dcc_socket_create (uin_t uin, uint16_t port)
 Tworzy gniazdo nasłuchujące dla połączeń bezpośrednich. Więcej...
 
struct gg_eventgg_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_eventgg_dcc7_watch_fd (struct gg_dcc7 *d)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. Więcej...
 
struct gg_dcc7gg_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_dcc7gg_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ść:
Nie przeszakdzać z opisem.
Definition: libgadu.h:2020
Niewidoczny z opisem (tylko własny status)
Definition: libgadu.h:2022
PoGGadaj ze mną z opisem.
Definition: libgadu.h:2014
#define GG_S(x)
Definition: libgadu.h:2068
Zajęty z opisem.
Definition: libgadu.h:2018
Niedostępny z opisem.
Definition: libgadu.h:2012
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

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)

Rodzaj kodowania znaków.

Wartości wyliczeń
GG_ENCODING_CP1250 

Kodowanie CP1250.

GG_ENCODING_UTF8 

Kodowanie UTF-8.

GG_ENCODING_INVALID 

Nieprawidłowe kodowanie.

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.

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 

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
crcSuma kontrola poprzedniego bloku danych lub 0 jeśli liczona jest suma kontrolna pierwszego bloku
bufBufor danych
lenDł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
gsStruktura sesji
typeSposó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
gsStruktura 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
gsStruktura sesji
resolver_startFunkcja rozpoczynająca rozwiązywanie nazwy
resolver_cleanupFunkcja 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
ghStruktura połączenia
typeSposó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
ghStruktura 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
ghStruktura sesji
resolver_startFunkcja rozpoczynająca rozwiązywanie nazwy
resolver_cleanupFunkcja 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
typeSposó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_startFunkcja rozpoczynająca rozwiązywanie nazwy
resolver_cleanupFunkcja 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
hStruktura 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
hStruktura 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
ptrWskaź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
hostnameNazwa 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
sockDeskryptor gniazda
bufWskaźnik do bufora
lengthDł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
formatFormat 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
hStruktura 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
sessStruktura sesji
bufBufor na danymi
lengthDł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
sessStruktura sesji
bufBufor z danymi
lengthDł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
sessStruktura 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
sessStruktura sesji
typeRodzaj 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
passwordHasło
seedZiarno 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
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDł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
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDł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
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDł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
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDł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
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDługość pakietu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

Dokumentacja zmiennych

struct gg_image_queue GG_DEPRECATED