libgadu  1.11.4
 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_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_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_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...
 
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
 
struct  gg_dcc7_dunno1
 

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_DEFAULT_CLIENT_VERSION   "10.1.0.11070"
 
#define GG_DEFAULT_PROTOCOL_VERSION   0x2e
 
#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.11.4"
 
#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_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.
 

Definicje typów

typedef uint32_t uin_t
 Numer Gadu-Gadu.
 
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_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_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
}
 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_ssl_t {
  GG_SSL_DISABLED = 0,
  GG_SSL_ENABLED,
  GG_SSL_REQUIRED
}
 Flaga połączenia szyfrowanego. 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
}
 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
}
 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_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_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_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_ACK,
  GG_USERLIST100_REPLY_REJECT
}
 Typ odpowiedzi listy kontaktów (10.0). Więcej...
 

Funkcje

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_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_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.
 
struct gg_eventgg_watch_fd (struct gg_session *sess)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze sesji.
 
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)
 Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.
 
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)
 Zwalnia zasoby używane przez połączenie bezpośrednie.
 
void gg_debug (int level, const char *format,...)
 
void gg_debug_session (struct gg_session *sess, int level, const char *format,...)
 
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_DEPRECATED
 
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.
 
struct gg_image_queue 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_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_DEFAULT_CLIENT_VERSION   "10.1.0.11070"
#define GG_DEFAULT_PROTOCOL_VERSION   0x2e
#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.11.4"
#define GG_DEFAULT_DCC_PORT   1550
#define GG_WELCOME   0x0001
#define GG_NEED_EMAIL   0x0014
#define GG_LOGIN   0x000c
#define GG_LOGIN_EXT   0x0013
#define GG_LOGIN60   0x0015
#define GG_LOGIN70   0x0019
#define GG_LOGIN_OK   0x0003
#define GG_LOGIN_FAILED   0x0009
#define GG_PUBDIR50_REQUEST   0x0014
#define GG_PUBDIR50_REPLY   0x000e
#define GG_NEW_STATUS   0x0002
#define GG_STATUS_DESCR_MAXSIZE_PRE_8_0   70
#define GG_STATUS_MASK   0xff
#define GG_S_F (   x)    (((x) & GG_STATUS_FRIENDS_MASK) != 0)
#define GG_S (   x)    ((x) & GG_STATUS_MASK)
#define GG_S_FF (   x)    (GG_S(x) == GG_STATUS_FFC || GG_S(x) == GG_STATUS_FFC_DESCR)
#define GG_S_AV (   x)    (GG_S(x) == GG_STATUS_AVAIL || GG_S(x) == GG_STATUS_AVAIL_DESCR)
#define GG_S_AW (   x)    (GG_S(x) == GG_STATUS_BUSY || GG_S(x) == GG_STATUS_BUSY_DESCR)
#define GG_S_DD (   x)    (GG_S(x) == GG_STATUS_DND || GG_S(x) == GG_STATUS_DND_DESCR)
#define GG_S_NA (   x)    (GG_S(x) == GG_STATUS_NOT_AVAIL || GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR)
#define GG_S_I (   x)    (GG_S(x) == GG_STATUS_INVISIBLE || GG_S(x) == GG_STATUS_INVISIBLE_DESCR)
#define GG_S_A (   x)    (GG_S_FF(x) || GG_S_AV(x))
#define GG_S_B (   x)    (GG_S_AW(x) || GG_S_DD(x))
#define GG_S_D (   x)
Wartość:
GG_S(x) == GG_STATUS_FFC_DESCR || \
GG_S(x) == GG_STATUS_AVAIL_DESCR || \
GG_S(x) == GG_STATUS_BUSY_DESCR || \
GG_S(x) == GG_STATUS_DND_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 */

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

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.

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.

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 potoku
  • "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 jednostronną komunikację i przekazać go w parametrze fd. 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
int gg_file_hash_sha1 ( int  fd,
uint8_t *  result 
)
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
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.

Parametry
sockDeskryptor gniazda
bufWskaźnik do bufora
lengthDługość bufora
Zwraca
Zwraca buf 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 -1, 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