Dokumentacja pliku libgadu.h


Opis szczegółowy

Główny plik nagłówkowy biblioteki.


Struktury danych

struct  gg_dcc7_id_t
 Identyfikator połączenia bezpośredniego Gadu-Gadu 7.x. 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 zdarzenia GG_EVENT_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_reject
 Opis zdarzenia GG_EVENT_DCC7_REJECT. Więcej...
struct  gg_event_dcc7_accept
 Opis zdarzenia GG_EVENT_DCC7_ACCEPT. 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). 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   64
 Maksymalny rozmiar 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_DEFAULT_PORT   8074
#define GG_HTTPS_PORT   443
#define GG_HTTP_USERAGENT   "Mozilla/4.7 [en] (Win98; I)"
#define GG_DEFAULT_CLIENT_VERSION   "7, 7, 0, 3351"
#define GG_DEFAULT_PROTOCOL_VERSION   0x2a
#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.8.0"
#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   0x19
#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   70
 Maksymalna długośc opisu.
#define GG_S_F(x)   (((x) & GG_STATUS_FRIENDS_MASK) != 0)
#define GG_S(x)   ((x) & ~GG_STATUS_FRIENDS_MASK)
#define GG_S_A(x)   (GG_S(x) == GG_STATUS_AVAIL || GG_S(x) == GG_STATUS_AVAIL_DESCR)
#define GG_S_NA(x)   (GG_S(x) == GG_STATUS_NOT_AVAIL || GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR)
#define GG_S_B(x)   (GG_S(x) == GG_STATUS_BUSY || GG_S(x) == GG_STATUS_BUSY_DESCR)
#define GG_S_I(x)   (GG_S(x) == GG_STATUS_INVISIBLE || GG_S(x) == GG_STATUS_INVISIBLE_DESCR)
#define GG_S_D(x)   (GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR || GG_S(x) == GG_STATUS_AVAIL_DESCR || GG_S(x) == GG_STATUS_BUSY_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
#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
#define GG_DCC_HAVE_FILE   0x0001
#define GG_DCC_HAVE_FILEINFO   0x0003
#define GG_DCC_GIMME_FILE   0x0006
#define GG_DCC_CATCH_FILE   0x0002
#define GG_DCC_FILEATTR_READONLY   0x0020
#define GG_DCC_TIMEOUT_SEND   1800
#define GG_DCC_TIMEOUT_GET   1800
#define GG_DCC_TIMEOUT_FILE_ACK   300
#define GG_DCC_TIMEOUT_VOICE_ACK   300
#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
#define GG_DCC7_TIMEOUT_SEND   1800
#define GG_DCC7_TIMEOUT_GET   1800
#define GG_DCC7_TIMEOUT_FILE_ACK   300
#define GG_DCC7_TIMEOUT_VOICE_ACK   300
#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_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
}
 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_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
}
 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
}
 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
}
 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_PUBDIR50_WRITE,
  GG_PUBDIR50_READ,
  GG_PUBDIR50_SEARCH,
  GG_PUBDIR50_SEARCH_REPLY
}
 Rodzaj zapytania lub odpowiedzi katalogu publicznego. Więcej...
enum  {
  GG_STATUS_NOT_AVAIL,
  GG_STATUS_NOT_AVAIL_DESCR,
  GG_STATUS_AVAIL,
  GG_STATUS_AVAIL_DESCR,
  GG_STATUS_BUSY,
  GG_STATUS_BUSY_DESCR,
  GG_STATUS_INVISIBLE,
  GG_STATUS_INVISIBLE_DESCR,
  GG_STATUS_BLOCKED,
  GG_STATUS_FRIENDS_MASK
}
 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...

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_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_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.
uint32_t gg_crc32 (uint32_t crc, const unsigned char *buf, int len)
 Wyznacza sumę kontrolną CRC32.
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,...)
 Przekazuje informację odpluskawiania.
void gg_debug_session (struct gg_session *sess, int level, const char *format,...)
 Przekazuje informację odpluskwiania związaną z sesją.
const char * gg_libgadu_version (void)
 Zwraca wersję biblioteki.
int gg_pubdir50_handle_reply (struct gg_event *e, const char *packet, int length)
int gg_file_hash_sha1 (int fd, uint8_t *result)
int gg_resolve_pthread (int *fd, void **resolver, const char *hostname)
void gg_resolve_pthread_cleanup (void *resolver, int kill)
int gg_resolve (int *fd, int *pid, const char *hostname)
char * gg_saprintf (const char *format,...)
 Odpowiednik funkcji sprintf alokujący miejsce na wynik.
char * gg_vsaprintf (const char *format, va_list ap)
 Odpowiednik funkcji vsprintf alokujący miejsce na wynik.
char * gg_get_line (char **ptr)
int gg_connect (void *addr, int port, int async)
 Nawiązuje połączenie TCP.
struct in_addr * gg_gethostbyname (const char *hostname)
char * gg_read_line (int sock, char *buf, int length)
void gg_chomp (char *line)
 Usuwa znaki końca linii.
char * gg_urlencode (const char *str)
 Koduje ciąg znaków do postacji adresu HTTP.
int gg_http_hash (const char *format,...)
void gg_http_free_fields (struct gg_http *h)
int gg_read (struct gg_session *sess, char *buf, int length)
int gg_write (struct gg_session *sess, const char *buf, int length)
void * gg_recv_packet (struct gg_session *sess)
int gg_send_packet (struct gg_session *sess, int type,...)
unsigned int gg_login_hash (const unsigned char *password, unsigned int seed)
void gg_login_hash_sha1 (const char *password, uint32_t seed, uint8_t *result)
uint32_t gg_fix32 (uint32_t x)
 Zamienia kolejność bajtów w 32-bitowym słowie.
uint16_t gg_fix16 (uint16_t x)
 Zamienia kolejność bajtów w 16-bitowym słowie.
char * gg_proxy_auth (void)
char * gg_base64_encode (const char *buf)
 Koduje ciąg znaków do base64.
char * gg_base64_decode (const char *buf)
 Dekoduje ciąg znaków zapisany w base64.
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, void *payload, int len)
int gg_dcc7_handle_new (struct gg_session *sess, struct gg_event *e, void *payload, int len)
int gg_dcc7_handle_info (struct gg_session *sess, struct gg_event *e, void *payload, int len)
int gg_dcc7_handle_accept (struct gg_session *sess, struct gg_event *e, void *payload, int len)
int gg_dcc7_handle_reject (struct gg_session *sess, struct gg_event *e, void *payload, int len)

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.


Dokumentacja definicji

#define gg_common_head (  ) 

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   64

Maksymalny rozmiar 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_DEFAULT_PORT   8074

#define GG_HTTPS_PORT   443

#define GG_HTTP_USERAGENT   "Mozilla/4.7 [en] (Win98; I)"

#define GG_DEFAULT_CLIENT_VERSION   "7, 7, 0, 3351"

#define GG_DEFAULT_PROTOCOL_VERSION   0x2a

#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.8.0"

#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   0x19

#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_S_F (  )     (((x) & GG_STATUS_FRIENDS_MASK) != 0)

#define GG_S (  )     ((x) & ~GG_STATUS_FRIENDS_MASK)

#define GG_S_A (  )     (GG_S(x) == GG_STATUS_AVAIL || GG_S(x) == GG_STATUS_AVAIL_DESCR)

#define GG_S_NA (  )     (GG_S(x) == GG_STATUS_NOT_AVAIL || GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR)

#define GG_S_B (  )     (GG_S(x) == GG_STATUS_BUSY || GG_S(x) == GG_STATUS_BUSY_DESCR)

#define GG_S_I (  )     (GG_S(x) == GG_STATUS_INVISIBLE || GG_S(x) == GG_STATUS_INVISIBLE_DESCR)

#define GG_S_D (  )     (GG_S(x) == GG_STATUS_NOT_AVAIL_DESCR || GG_S(x) == GG_STATUS_AVAIL_DESCR || GG_S(x) == GG_STATUS_BUSY_DESCR || GG_S(x) == GG_STATUS_INVISIBLE_DESCR)

#define GG_S_BL (  )     (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

#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

#define GG_DCC_HAVE_FILE   0x0001

#define GG_DCC_HAVE_FILEINFO   0x0003

#define GG_DCC_GIMME_FILE   0x0006

#define GG_DCC_CATCH_FILE   0x0002

#define GG_DCC_FILEATTR_READONLY   0x0020

#define GG_DCC_TIMEOUT_SEND   1800

#define GG_DCC_TIMEOUT_GET   1800

#define GG_DCC_TIMEOUT_FILE_ACK   300

#define GG_DCC_TIMEOUT_VOICE_ACK   300

#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

#define GG_DCC7_TIMEOUT_SEND   1800

#define GG_DCC7_TIMEOUT_GET   1800

#define GG_DCC7_TIMEOUT_FILE_ACK   300

#define GG_DCC7_TIMEOUT_VOICE_ACK   300


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

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 identyfikatora połączenia bezpośredniego.

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.

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.


Dokumentacja funkcji

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

Wyznacza sumę kontrolną CRC32.

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

int gg_pubdir_watch_fd ( struct gg_http h  ) 

Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia.

Operacja będzie zakończona, gdy pole state będzie równe GG_STATE_DONE. Jeśli wystąpi błąd, state będzie równe GG_STATE_ERROR, a kod błędu znajdzie się w polu error.

Parametry:
h Struktura połączenia
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

void gg_pubdir_free ( struct gg_http h  ) 

Zwalnia zasoby po operacji na katalogu publicznym.

Parametry:
h Struktura połączenia

const char* gg_libgadu_version ( void   ) 

Zwraca wersję biblioteki.

Zwraca:
Wskaźnik na statyczny bufor z wersją biblioteki.

int gg_pubdir50_handle_reply ( struct gg_event e,
const char *  packet,
int  length 
)

int gg_file_hash_sha1 ( int  fd,
uint8_t *  result 
)

int gg_resolve_pthread ( int *  fd,
void **  resolver,
const char *  hostname 
)

void gg_resolve_pthread_cleanup ( void *  resolver,
int  kill 
)

int gg_resolve ( int *  fd,
int *  pid,
const char *  hostname 
)

Tylko do użytku wewnętrznego.

Rozwiązuje nazwę serwera w osobnym procesie.

Połączenia asynchroniczne nie mogą blokować procesu w trakcie rozwiązywania nazwy serwera. W tym celu tworzony jest potok, nowy proces i dopiero w nim przeprowadzane jest rozwiązywanie nazwy. Deskryptor strony do odczytu zapisuje się w strukturze sieci i czeka na dane w postaci struktury in_addr. Jeśli nie znaleziono nazwy, zwracana jest INADDR_NONE.

Podczas kompilacji mógł zostać wybrany alternatywny sposób rozwiązanywania nazwy, za pomocą wątków. W takim wypadku będzie zdefiniowana dyrektywa preprocesora GG_CONFIG_HAVE_PTHREAD.

Parametry:
fd Wskaźnik na zmienną, gdzie zostanie umieszczony deskryptor potoku
pid Wskaźnik na zmienną, gdzie zostanie umieszczony identyfikator procesu potomnego
hostname Nazwa serwera do rozwiązania
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

char* gg_get_line ( char **  ptr  ) 

Tylko do użytku wewnętrznego.

Pobiera linię tekstu z bufora.

Funkcja niszczy bufor źródłowy bezpowrotnie, dzieląc go na kolejne ciągi znaków i obcina znaki końca linii.

Parametry:
ptr Wskaźnik do zmiennej, która przechowuje aktualne położenie w analizowanym buforze
Zwraca:
Wskaźnik do kolejnej linii tekstu lub NULL, jeśli to już koniec bufora.

struct in_addr* gg_gethostbyname ( const char *  hostname  )  [read]

Tylko do użytku wewnętrznego.

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.

Parametry:
hostname Nazwa serwera
Zwraca:
Zaalokowana struktura in_addr lub NULL w przypadku błędu.

char* gg_read_line ( int  sock,
char *  buf,
int  length 
)

Tylko do użytku wewnętrznego.

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:
sock Deskryptor gniazda
buf Wskaźnik do bufora
length Długość bufora
Zwraca:
Zwraca buf jeśli się powiodło, lub NULL w przypadku błędu.

int gg_http_hash ( const char *  format,
  ... 
)

Tylko do użytku wewnętrznego.

Wyznacza skrót dla usług HTTP.

Funkcja jest wykorzystywana do wyznaczania skrótu adresu e-mail, hasła i innych wartości przekazywanych jako parametry usług HTTP.

W parametrze format należy umieścić znaki określające postać kolejnych parametrów: 's' jeśli parametr jest ciągiem znaków, 'u' jeśli jest liczbą.

Parametry:
format Format kolejnych parametrów (niezgodny z printf)
Zwraca:
Wartość skrótu

void gg_http_free_fields ( struct gg_http h  ) 

Tylko do użytku wewnętrznego.

Zwalnia pola struktury gg_http.

Funkcja zwalnia same pola, nie zwalnia struktury.

Parametry:
h Struktura połączenia

int gg_read ( struct gg_session sess,
char *  buf,
int  length 
)

Tylko do użytku wewnętrznego.

Odbiera od serwera dane binarne.

Funkcja odbiera dane od serwera zajmując się TLS w razie konieczności.

Parametry:
sess Struktura sesji
buf Bufor na danymi
length Długość bufora
Zwraca:
To samo co funkcja systemowa read

int gg_write ( struct gg_session sess,
const char *  buf,
int  length 
)

Tylko do użytku wewnętrznego.

Wysyła do serwera dane binarne.

Funkcja wysyła dane do serwera zajmując się TLS w razie konieczności.

Parametry:
sess Struktura sesji
buf Bufor z danymi
length Długość bufora
Zwraca:
To samo co funkcja systemowa write

void* gg_recv_packet ( struct gg_session sess  ) 

Tylko do użytku wewnętrznego.

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:
sess Struktura sesji
Zwraca:
Wskaźnik do zaalokowanego bufora

int gg_send_packet ( struct gg_session sess,
int  type,
  ... 
)

Tylko do użytku wewnętrznego.

Wysyła pakiet do serwera.

Funkcja konstruuje pakiet do wysłania z dowolnej liczby fragmentów. Jeśli rozmiar pakietu jest za duży, by móc go wysłać za jednym razem, pozostała część zostanie zakolejkowana i wysłana, gdy będzie to możliwe.

Parametry:
sess Struktura sesji
type Rodzaj pakietu
... Lista kolejnych części pakietu (wskaźnik na bufor i długość typu int) zakończona NULL
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

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

Tylko do użytku wewnętrznego.

Liczy skrót z hasła i ziarna.

Parametry:
password Hasło
seed Ziarno podane przez serwer
Zwraca:
Wartość skrótu

void gg_login_hash_sha1 ( const char *  password,
uint32_t  seed,
uint8_t *  result 
)

char* gg_proxy_auth ( void   ) 

Tylko do użytku wewnętrznego.

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,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

Obsługuje pakiet identyfikatora połączenia bezpośredniego.

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

int gg_dcc7_handle_new ( struct gg_session sess,
struct gg_event e,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

Obsługuje pakiet nowego połączenia bezpośredniego.

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

int gg_dcc7_handle_info ( struct gg_session sess,
struct gg_event e,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

Obsługuje pakiet informacji o połączeniu bezpośrednim.

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

int gg_dcc7_handle_accept ( struct gg_session sess,
struct gg_event e,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

Obsługuje pakiet akceptacji połączenia bezpośredniego.

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

int gg_dcc7_handle_reject ( struct gg_session sess,
struct gg_event e,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

Obsługuje pakiet odrzucenia połączenia bezpośredniego.

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu


Wygenerowano Sun Dec 5 02:39:27 2010 dla libgadu programem  doxygen 1.5.6