Dokumentacja pliku libgadu.c


Opis szczegółowy

Główny moduł biblioteki.


Funkcje

const char * gg_libgadu_version ()
 Zwraca wersję biblioteki.
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.
unsigned int gg_login_hash (const unsigned char *password, unsigned int seed)
int gg_resolve (int *fd, int *pid, const char *hostname)
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,...)
static int gg_session_callback (struct gg_session *sess)
struct gg_sessiongg_login (const struct gg_login_params *p)
 Łączy się z serwerem Gadu-Gadu.
int gg_ping (struct gg_session *sess)
 Wysyła do serwera pakiet utrzymania połączenia.
void gg_logoff (struct gg_session *sess)
 Kończy połączenie z serwerem.
void gg_free_session (struct gg_session *sess)
 Zwalnia zasoby używane przez 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_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_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.
int gg_userlist_request (struct gg_session *sess, char type, const char *request)
 Wysyła do serwera zapytanie dotyczące listy kontaktów.

Zmienne

int gg_debug_level = 0
 Poziom rejestracji informacji odpluskwiających.
void(* gg_debug_handler )(int level, const char *format, va_list ap) = NULL
 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) = NULL
 Funkcja, do której są przekazywane informacje odpluskwiające.
int gg_dcc_port = 0
 Port gniazda nasłuchującego dla połączeń bezpośrednich.
unsigned long gg_dcc_ip = 0
 Adres IP gniazda nasłuchującego dla połączeń bezpośrednich.
unsigned long gg_local_ip = 0
 Adres lokalnego interfejsu IP, z którego wywoływane są wszystkie połączenia.
int gg_proxy_enabled = 0
 Flaga włączenia połączeń przez serwer pośredniczący.
char * gg_proxy_host = NULL
 Adres serwera pośredniczącego.
int gg_proxy_port = 0
 Port serwera pośredniczącego.
int gg_proxy_http_only = 0
 Flaga używania serwera pośredniczącego jedynie dla usług HTTP.
char * gg_proxy_username = NULL
 Nazwa użytkownika do autoryzacji serwera pośredniczącego.
char * gg_proxy_password = NULL
 Hasło użytkownika do autoryzacji serwera pośredniczącego.


Dokumentacja funkcji

const char* gg_libgadu_version ( void   ) 

Zwraca wersję biblioteki.

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

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

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

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

static int gg_session_callback ( struct gg_session sess  )  [static]

Tylko do użytku wewnętrznego.

Funkcja zwrotna sesji.

Pole callback struktury gg_session zawiera wskaźnik do tej funkcji. Wywołuje ona gg_watch_fd i zachowuje wynik w polu event.

Nota:
Korzystanie z tej funkcjonalności nie jest już zalecane.
Parametry:
sess Struktura sesji
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu


Wygenerowano Sun Dec 5 02:37:07 2010 dla libgadu programem  doxygen 1.5.6