libgadu  1.12.1
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.
#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.1"
#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.
#define GG_STATUS_DESCR_MAXSIZE   255
 Maksymalna długośc opisu.
#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.
#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
#define GG_DEBUG_NET   1
 Rejestracja zdarzeń związanych z siecią
#define GG_DEBUG_TRAFFIC   2
 Rejestracja ruchu sieciowego.
#define GG_DEBUG_DUMP   4
 Rejestracja zawartości pakietów.
#define GG_DEBUG_FUNCTION   8
 Rejestracja wywołań funkcji.
#define GG_DEBUG_MISC   16
 Rejestracja różnych informacji.
#define GG_DEBUG_VERBOSE   32
 Rejestracja informacji szczegółowych.
#define GG_DEBUG_WARNING   64
 Rejestracja ostrzeżeń
#define GG_DEBUG_ERROR   128
 Rejestracja błędów krytycznych.

Definicje typów

typedef uint32_t uin_t
 Numer Gadu-Gadu.
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.
typedef void(* gg_socket_manager_close_cb_t )(void *cb_data, void *handle)
 Niszczy gniazdo i zwalnia wszystkie powiązane z nim zasoby.
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.
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.
typedef struct gg_pubdir50_sgg_pubdir50_t
 Zapytanie lub odpowiedź katalogu publicznego.

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.
int gg_is_gpl_compliant (void)
struct gg_sessiongg_login (const struct gg_login_params *p)
 Łączy się z serwerem Gadu-Gadu.
void gg_free_session (struct gg_session *sess)
 Zwalnia zasoby używane przez połączenie z serwerem.
void gg_logoff (struct gg_session *sess)
 Kończy połączenie z serwerem.
int gg_change_status (struct gg_session *sess, int status)
 Zmienia status użytkownika.
int gg_change_status_descr (struct gg_session *sess, int status, const char *descr)
 Zmienia status użytkownika na status opisowy.
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.
int gg_change_status_flags (struct gg_session *sess, int flags)
 Funkcja zmieniająca flagi statusu.
int gg_send_message (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message)
 Wysyła wiadomość do użytkownika.
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ą.
int gg_send_message_html (struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *html_message)
 Wysyła formatowaną wiadomość HTML.
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.
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.
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.
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.
int gg_ping (struct gg_session *sess)
 Wysyła do serwera pakiet utrzymania połączenia.
int gg_userlist_request (struct gg_session *sess, char type, const char *request)
 Wysyła do serwera zapytanie dotyczące listy kontaktów.
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).
int gg_image_request (struct gg_session *sess, uin_t recipient, int size, uint32_t crc32)
 Wysyła żądanie obrazka o podanych parametrach.
int gg_image_reply (struct gg_session *sess, uin_t recipient, const char *filename, const char *image, int size)
 Wysyła żądany obrazek.
int gg_typing_notification (struct gg_session *sess, uin_t recipient, int length)
 Informuje rozmówcę o pisaniu wiadomości.
uint32_t gg_crc32 (uint32_t crc, const unsigned char *buf, int len)
 Wyznacza sumę kontrolną CRC32.
int gg_session_set_resolver (struct gg_session *gs, gg_resolver_t type)
 Ustawia sposób rozwiązywania nazw w sesji.
gg_resolver_t gg_session_get_resolver (struct gg_session *gs)
 Zwraca sposób rozwiązywania nazw w sesji.
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.
int gg_http_set_resolver (struct gg_http *gh, gg_resolver_t type)
 Ustawia sposób rozwiązywania nazw połączenia HTTP.
gg_resolver_t gg_http_get_resolver (struct gg_http *gh)
 Zwraca sposób rozwiązywania nazw połączenia HTTP.
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.
int gg_global_set_resolver (gg_resolver_t type)
 Ustawia sposób rozwiązywania nazw globalnie dla biblioteki.
gg_resolver_t gg_global_get_resolver (void)
 Zwraca sposób rozwiązywania nazw globalnie dla biblioteki.
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.
int gg_multilogon_disconnect (struct gg_session *gs, gg_multilogon_id_t conn_id)
 Rozłącza inną sesję multilogowania.
int gg_chat_create (struct gg_session *gs)
 Tworzy nową konferencję (11.0).
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).
int gg_chat_leave (struct gg_session *gs, uint64_t id)
 Opuszcza konferencję (11.0).
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).
struct gg_eventgg_watch_fd (struct gg_session *sess)
void gg_event_free (struct gg_event *e)
 Zwalnia pamięć zajmowaną przez informację o zdarzeniu.
int gg_notify_ex (struct gg_session *sess, uin_t *userlist, char *types, int count)
 Wysyła do serwera listę kontaktów.
int gg_notify (struct gg_session *sess, uin_t *userlist, int count)
 Wysyła do serwera listę kontaktów.
int gg_add_notify_ex (struct gg_session *sess, uin_t uin, char type)
 Dodaje kontakt.
int gg_add_notify (struct gg_session *sess, uin_t uin)
 Dodaje kontakt.
int gg_remove_notify_ex (struct gg_session *sess, uin_t uin, char type)
 Usuwa kontakt.
int gg_remove_notify (struct gg_session *sess, uin_t uin)
 Usuwa kontakt.
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.
int gg_http_watch_fd (struct gg_http *h)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
void gg_http_stop (struct gg_http *h)
 Kończy asynchroniczne połączenie HTTP.
void gg_http_free (struct gg_http *h)
 Zwalnia zasoby po połączeniu HTTP.
uint32_t gg_pubdir50 (struct gg_session *sess, gg_pubdir50_t req)
 Wysyła zapytanie katalogu publicznego do serwera.
gg_pubdir50_t gg_pubdir50_new (int type)
 Tworzy nowe zapytanie katalogu publicznego.
int gg_pubdir50_add (gg_pubdir50_t req, const char *field, const char *value)
 Dodaje pole zapytania.
int gg_pubdir50_seq_set (gg_pubdir50_t req, uint32_t seq)
 Ustawia numer sekwencyjny zapytania.
const char * gg_pubdir50_get (gg_pubdir50_t res, int num, const char *field)
 Pobiera pole z odpowiedzi katalogu publicznego.
int gg_pubdir50_type (gg_pubdir50_t res)
 Zwraca rodzaj zapytania lub odpowiedzi.
int gg_pubdir50_count (gg_pubdir50_t res)
 Zwraca liczbę wyników odpowiedzi.
uin_t gg_pubdir50_next (gg_pubdir50_t res)
 Zwraca numer, od którego należy rozpocząc kolejne wyszukiwanie.
uint32_t gg_pubdir50_seq (gg_pubdir50_t res)
 Zwraca numer sekwencyjny zapytania lub odpowiedzi.
void gg_pubdir50_free (gg_pubdir50_t res)
 Zwalnia zasoby po zapytaniu lub odpowiedzi katalogu publicznego.
int gg_pubdir_watch_fd (struct gg_http *f)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
void gg_pubdir_free (struct gg_http *f)
 Zwalnia zasoby po operacji na katalogu publicznym.
struct gg_httpgg_token (int async)
 Pobiera token do autoryzacji operacji na katalogu publicznym.
int gg_token_watch_fd (struct gg_http *h)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
void gg_token_free (struct gg_http *h)
 Zwalnia zasoby po operacji pobierania tokenu.
struct gg_httpgg_register3 (const char *email, const char *password, const char *tokenid, const char *tokenval, int async)
 Rejestruje nowego użytkownika.
struct gg_httpgg_unregister3 (uin_t uin, const char *password, const char *tokenid, const char *tokenval, int async)
 Usuwa użytkownika.
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.
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.
int gg_dcc_request (struct gg_session *sess, uin_t uin)
 Wysyła żądanie zwrotnego połączenia bezpośredniego.
struct gg_dccgg_dcc_send_file (uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin)
 Rozpoczyna wysyłanie pliku.
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.
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.
void gg_dcc_set_type (struct gg_dcc *d, int type)
 Ustawia typ przychodzącego połączenia bezpośredniego.
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.
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.
int gg_dcc_voice_send (struct gg_dcc *d, char *buf, int length)
 Wysyła ramkę danych połączenia głosowego.
struct gg_dccgg_dcc_socket_create (uin_t uin, uint16_t port)
 Tworzy gniazdo nasłuchujące dla połączeń bezpośrednich.
struct gg_eventgg_dcc_watch_fd (struct gg_dcc *d)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
void gg_dcc_free (struct gg_dcc *c)
 Zwalnia zasoby używane przez połączenie bezpośrednie.
struct gg_eventgg_dcc7_watch_fd (struct gg_dcc7 *d)
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.
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.
int gg_dcc7_reject (struct gg_dcc7 *dcc, int reason)
 Odrzuca próbę przesłania pliku.
void gg_dcc7_free (struct gg_dcc7 *d)
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.
int gg_libgadu_check_feature (gg_libgadu_feature_t feature)
 Sprawdza czy biblioteka obsługuje daną funkcję.
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.
unsigned long gg_dcc_ip
 Adres IP gniazda nasłuchującego dla połączeń bezpośrednich.
int gg_debug_level
 Poziom rejestracji informacji odpluskwiających.
void(* gg_debug_handler )(int level, const char *format, va_list ap)
 Funkcja, do której są przekazywane informacje odpluskwiające.
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.
FILE * gg_debug_file
 Plik, do którego będą przekazywane informacje odpluskwiania.
int gg_proxy_enabled
 Flaga włączenia połączeń przez serwer pośredniczący.
char * gg_proxy_host
 Adres serwera pośredniczącego.
int gg_proxy_port
 Port serwera pośredniczącego.
char * gg_proxy_username
 Nazwa użytkownika do autoryzacji serwera pośredniczącego.
char * gg_proxy_password
 Hasło użytkownika do autoryzacji serwera pośredniczącego.
int gg_proxy_http_only
 Flaga używania serwera pośredniczącego jedynie dla usług HTTP.
unsigned long gg_local_ip
 Adres lokalnego interfejsu IP, z którego wywoływane są wszystkie połączenia.
char GG_DEPRECATED

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_DCC_VOICE_FRAME_LENGTH   195

Rozmiar pakietu głosowego przed wersją Gadu-Gadu 5.0.5.

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 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_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.1"
#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_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)
#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

int gg_is_gpl_compliant ( void  )
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

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

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

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

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
struct gg_event* gg_watch_fd ( struct gg_session sess) [read]
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
struct gg_event* gg_dcc7_watch_fd ( struct gg_dcc7 d) [read]
void gg_dcc7_free ( struct gg_dcc7 d)
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) [read]

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

Dokumentacja zmiennych

 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje