gg_debug
Działanie:
Wyświetla komunikat o danym poziomie, o ile użytkownik sobie tego życzy.
Deklaracja:
void gg_debug(int level, const char *format, ...);
Parametry:
int levelpoziom wiadomości
const char *format...treść wiadomości (kompatybilna z printf())
Zwracana wartość:
Brak.
gg_vsaprintf
Działanie:
Robi dokładnie to samo, co vsprintf(), tyle że alokuje sobie wcześniej miejsce na dane. Powinno działać na tych maszynach, które mają funkcję vsnprintf() zgodną z C99, jak i na wcześniejszych.
Deklaracja:
char *gg_vsaprintf(const char *format, va_list ap);
Parametry:
const char *formatopis wyświetlanego tekstu jak dla printf()
va_list aplista argumentów dla printf()
Zwracana wartość:
Zaalokowany bufor, który należy później zwolnić, lub NULL jeśli nie udało się wykonać zadania.
gg_saprintf
Działanie:
Robi dokładnie to samo, co sprintf(), tyle że alokuje sobie wcześniej miejsce na dane. Powinno działać na tych maszynach, które mają funkcję vsnprintf() zgodną z C99, jak i na wcześniejszych.
Deklaracja:
char *gg_saprintf(const char *format, ...);
Parametry:
const char *format...treść taka sama jak w funkcji printf()
Zwracana wartość:
Zaalokowany bufor, który należy później zwolnić, lub NULL jeśli nie udało się wykonać zadania.
gg_get_line
Działanie:
Podaje kolejną linię z bufora tekstowego. Niszczy go bezpowrotnie, dzieląc na kolejne stringi. Zdarza się, nie ma potrzeby pisania funkcji dublującej bufor żeby tylko mieć nieruszone dane wejściowe, skoro i tak nie będą nam poźniej potrzebne. Obcina `\r\n'.
Deklaracja:
char *gg_get_line(char **ptr);
Parametry:
char **ptrwskaźnik do zmiennej, która przechowuje aktualną pozycjęw przemiatanym buforze
Zwracana wartość:
Wskaźnik do kolejnej linii tekstu lub NULL, jeśli to już koniec bufora.
gg_connect
Działanie:
Łączy się z serwerem. Pierwszy argument jest typu (void *), żeby nie musieć niczego inkludować w libgadu.h i nie psuć jakiś głupich zależności na dziwnych systemach.
Deklaracja:
int gg_connect(void *addr, int port, int async);
Parametry:
void *addradres serwera (struct in_addr *)
int portport serwera
int asyncasynchroniczne połączenie
Zwracana wartość:
Deskryptor gniazda lub -1 w przypadku błędu (kod błędu w zmiennej errno).
gg_read_line
Działanie:
Czyta jedną linię tekstu z gniazda
Deklaracja:
char *gg_read_line(int sock, char *buf, int length);
Parametry:
int sockdeskryptor gniazda
char *bufwskaźnik do bufora
int lengthdługość bufora
Zwracana wartość:
Jeśli trafi na błąd odczytu, zwraca NULL. Inaczej zwraca buf.
gg_chomp
Działanie:
Ucina "\r\n" lub "\n" z końca linii.
Deklaracja:
void gg_chomp(char *line);
Parametry:
char *linelinia do przycięcia
Zwracana wartość:
Brak.
gg_urlencode
Działanie:
Zamienia podany tekst na ciąg znaków do formularza http. Przydaje się przy różnych usługach katalogu publicznego.
Deklaracja:
char *gg_urlencode(const char *str);
Parametry:
const char *strciąg znaków do zakodowania
Zwracana wartość:
Zaalokowany bufor, który należy później zwolnić albo NULL w przypadku błędu.
gg_http_hash
Działanie:
Funkcja licząca hash dla adresu e-mail, hasła i paru innych.
Deklaracja:
int gg_http_hash(const char *format, ...);
Parametry:
const char *format...format kolejnych parametrów ('s' jeśli dany parametr jestciągiem znaków lub 'u' jeśli numerem GG)
Zwracana wartość:
Hash wykorzystywany przy rejestracji i wszelkich manipulacjach własnego wpisu w katalogu publicznym.
gg_gethostbyname
Działanie:
Odpowiednik gethostbyname() używający gethostbyname_r(), gdy potrzebna jest wielobieżność. Chwilowo korzysta ze zwykłego gethostbyname().
Deklaracja:
struct hostent *gg_gethostbyname(const char *hostname);
Parametry:
const char *hostnamenazwa serwera
Zwracana wartość:
Zaalokowany bufor, który należy zwolnić lub NULL w przypadku błędu.
gg_thread_socket
Działanie:
Zwraca deskryptor gniazda, które było ostatnio tworzone dla wątku o podanym identyfikatorze.

jeśli na win32 przy połączeniach synchronicznych zapamiętamy w jakim wątku uruchomiliśmy funkcję, która się z czymkolwiek łączy, to z osobnego wątku możemy anulować połączenie poprzez gg_thread_socket(watek,-1);

Deklaracja:
int gg_thread_socket(int thread_id, int socket);
Parametry:
int thread_idid wątku. jeśli jest równe 0, brany jest aktualny wątek,jeśli równe -1, usuwa wpis o podanym sockecie.
int socketdeskryptor gniazda. jeśli równe 0, zwraca deskryptor gniazdadla podanego wątku, jeśli równe -1, usuwa wpis, jeśli coś innego, ustawia dla podanego wątku dany numer deskryptora.
Zwracana wartość:
Jeśli socket jest równe 0, zwraca deskryptor gniazda dla podanego wątku.
gg_dcc_request
Działanie:
Wysyła informację o tym, że dany klient powinien się z nami połączyć. Wykorzystywane, kiedy druga strona, której chcemy coś wysłać jest za maskaradą.
Deklaracja:
int gg_dcc_request(struct gg_session *sess, uin_t uin);
Parametry:
struct gg_session *sessstruktura opisująca sesję GG
uin_t uinnumerek odbiorcy
Zwracana wartość:
Patrz gg_send_message_ctcp().
gg_dcc_fill_file_info
Działanie:
Wypełnia pola struct gg_dcc niezbędne do wysłania pliku.
Deklaracja:
int gg_dcc_fill_file_info(struct gg_dcc *d, const char *filename);
Parametry:
struct gg_dcc *dstruktura opisująca połączenie DCC
const char *filenamenazwa pliku
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_dcc_get_file
Działanie:
Inicjuje proces odbierania pliku od danego klienta, gdy ten wysłał do nas żądanie połączenia.
Deklaracja:
struct gg_dcc *gg_dcc_get_file(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
Parametry:
uint32_t ipadres ip odbiorcy
uint16_t portport odbiorcy
uin_t my_uinwłasny numer
uin_t peer_uinnumer obiorcy
Zwracana wartość:
Zaalokowana struct gg_dcc lub NULL jeśli wystąpił błąd.
gg_dcc_send_file
Działanie:
Inicjuje proces wysyłania pliku do danego klienta.
Deklaracja:
struct gg_dcc *gg_dcc_send_file(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
Parametry:
uint32_t ipadres ip odbiorcy
uint16_t portport odbiorcy
uin_t my_uinwłasny numer
uin_t peer_uinnumer obiorcy
Zwracana wartość:
Zaalokowana struct gg_dcc lub NULL jeśli wystąpił błąd.
gg_dcc_voice_chat
Działanie:
Próbuje nawiązać połączenie głosowe.
Deklaracja:
struct gg_dcc *gg_dcc_voice_chat(uint32_t ip, uint16_t port, uin_t my_uin, uin_t peer_uin);
Parametry:
uint32_t ipadres ip odbiorcy
uint16_t portport odbiorcy
uin_t my_uinwłasny numer
uin_t peer_uinnumer obiorcy
Zwracana wartość:
Zaalokowana struct gg_dcc lub NULL jeśli wystąpił błąd.
gg_dcc_set_type
Działanie:
Po zdarzeniu GG_EVENT_DCC_CALLBACK należy ustawić typ połączenia za pomocą tej funkcji.
Deklaracja:
void gg_dcc_set_type(struct gg_dcc *d, int type);
Parametry:
struct gg_dcc *dstruktura opisująca połączenie
int typetyp połączenia (GG_SESSION_DCC_SEND lub GG_SESSION_DCC_VOICE)
Zwracana wartość:
Brak.
gg_dcc_socket_create
Działanie:
Tworzy gniazdo dla bezpośredniej komunikacji między klientami.
Deklaracja:
struct gg_dcc *gg_dcc_socket_create(uin_t uin, uint16_t port);
Parametry:
uin_t uinwłasny numer
uint16_t portpreferowany port, jeśli równy 0 lub -1, próbuje domyślnego
Zwracana wartość:
Zaalokowana struct gg_dcc, którą poźniej należy zwolnić funkcją gg_dcc_free(), albo NULL jeśli wystąpił błąd.
gg_dcc_voice_send
Działanie:
Wysyła ramkę danych dla rozmowy głosowej.
Deklaracja:
int gg_dcc_voice_send(struct gg_dcc *d, char *buf, int length);
Parametry:
struct gg_dcc *dstruktura opisująca połączenie dcc
char *bufbufor z danymi
int lengthrozmiar ramki
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_dcc_watch_fd
Działanie:
Funkcja, którą należy wywołać, gdy coś się zmieni na gg_dcc->fd.
Deklaracja:
struct gg_event *gg_dcc_watch_fd(struct gg_dcc *h);
Parametry:
struct gg_dcc *hstruktura zwrócona przez gg_create_dcc_socket()
Zwracana wartość:
Zaalokowana struct gg_event lub NULL, jeśli zabrakło pamięci na nią.
gg_dcc_free
Działanie:
Zwalnia pamięć po strukturze połączenia dcc.
Deklaracja:
void gg_dcc_free(struct gg_dcc *d);
Parametry:
struct gg_dcc *dzwalniana struktura
Zwracana wartość:
Brak.
gg_event_free
Działanie:
Zwalnia pamięć zajmowaną przez informację o zdarzeniu.
Deklaracja:
void gg_event_free(struct gg_event *e);
Parametry:
struct gg_event *ewskaźnik do informacji o zdarzeniu
Zwracana wartość:
Brak.
gg_watch_fd
Działanie:
Funkcja, którą należy wywołać, gdy coś się stanie z obserwowanym deskryptorem. Zwraca klientowi informację o tym, co się dzieje.
Deklaracja:
struct gg_event *gg_watch_fd(struct gg_session *sess);
Parametry:
struct gg_session *sessidentyfikator sesji
Zwracana wartość:
Wskaźnik do struktury gg_event, którą trzeba zwolnić później za pomocą gg_event_free(). Jesli rodzaj zdarzenia jest równy GG_EVENT_NONE, należy je zignorować. Jeśli zwróciło NULL, stało się coś niedobrego -- albo zabrakło pamięci albo zerwało połączenie.
gg_http_connect
Działanie:
Rozpoczyna połączenie po http.
Deklaracja:
struct gg_http *gg_http_connect(const char *hostname, int port, int async, const char *method, const char *path, const char *header);
Parametry:
const char *hostnameadres serwera
int portport serwera
int asyncasynchroniczne połączenie
const char *methodmetoda http (GET, POST, cokolwiek)
const char *pathścieżka do zasobu (musi być poprzedzona ,,/'')
const char *headernagłówek zapytania plus ewentualne dane dla POST
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_http_free(), albo NULL jeśli wystąpił błąd.
gg_http_watch_fd
Działanie:
Przy asynchronicznej obsłudze HTTP funkcję tą należy wywołać jeśli zmieniło się coś na obserwowanym deskryptorze.
Deklaracja:
int gg_http_watch_fd(struct gg_http *h);
Parametry:
struct gg_http *hstruktura opisująca połączenie
Zwracana wartość:
Jeśli wszystko poszło dobrze to 0, inaczej -1. Połączenie będzie zakończone, jeśli h->state == GG_STATE_PARSING. Jeśli wystąpi jakiś błąd, to będzie tam GG_STATE_ERROR i odpowiedni kod błędu w h->error.
gg_http_stop
Działanie:
Jeśli połączenie jest w trakcie, przerywa je. Nie zwalnia h->data.
Deklaracja:
void gg_http_stop(struct gg_http *h);
Parametry:
struct gg_http *hstruktura opisująca połączenie
Zwracana wartość:
Brak.
gg_http_free
Działanie:
Próbuje zamknąć połączenie i zwalnia pamięć po nim.
Deklaracja:
void gg_http_free(struct gg_http *h);
Parametry:
struct gg_http *hstruktura, którą należy zlikwidować
Zwracana wartość:
Brak.
gg_libgadu_version
Działanie:
Zwraca wersję libgadu.
Deklaracja:
const char *gg_libgadu_version();
Zwracana wartość:
Brak.
gg_fix32
Działanie:
Zamienia kolejność bajtów w liczbie 32-bitowej tak, by odpowiadała kolejności bajtów w protokole GG. Ze względu na LE-owość serwera, zamienia tylko na maszynach BE-wych.
Deklaracja:
uint32_t gg_fix32(uint32_t x);
Parametry:
uint32_t xliczba do zamiany
Zwracana wartość:
Liczba z odpowiednią kolejnością bajtów.
gg_fix16
Działanie:
Zamienia kolejność bajtów w liczbie 16-bitowej tak, by odpowiadała kolejności bajtów w protokole GG. Ze względu na LE-owość serwera, zamienia tylko na maszynach BE-wych.
Deklaracja:
uint16_t gg_fix16(uint16_t x);
Parametry:
uint16_t xliczba do zamiany
Zwracana wartość:
Liczba z odpowiednią kolejnością bajtów.
gg_login_hash
Działanie:
Liczy hash z hasła i danego seeda.
Deklaracja:
unsigned int gg_login_hash(unsigned char *password, unsigned int seed);
Parametry:
unsigned char *passwordhasło do hashowania
unsigned int seedwartość podana przez serwer
Zwracana wartość:
Hash.
gg_resolve
Działanie:
Tworzy potok, forkuje się i w drugim procesie zaczyna resolvować podanego hosta. Zapisuje w sesji deskryptor potoku. Jeśli coś tam będzie gotowego, znaczy, że można wczytać struct in_addr. Jeśli nie znajdzie, zwraca INADDR_NONE.
Deklaracja:
int gg_resolve(int *fd, int *pid, const char *hostname);
Parametry:
int *fdwskaźnik gdzie wrzucić deskryptor
int *pidgdzie wrzucić pid procesu potomnego
const char *hostnamenazwa hosta do zresolvowania
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_recv_packet
Działanie:
Odbiera jeden pakiet i zwraca wskaźnik do niego. Pamięć po nim należy zwolnić za pomocą free().
Deklaracja:
void *gg_recv_packet(struct gg_session *sess);
Parametry:
struct gg_session *sessopis sesji
Zwracana wartość:
W przypadku błędu NULL, kod błędu w errno.
gg_send_packet
Działanie:
Konstruuje pakiet i wysyła go w do serwera.
Deklaracja:
int gg_send_packet(int sock, int type, ...);
Parametry:
int sockdeskryptor gniazda
int typetyp pakietu
payload_1pierwsza część pakietu
payload_length_1długość pierwszej części
payload_2druga część pakietu
payload_length_2długość drugiej części
...kolejne części pakietu i ich długości
NULLkońcowym parametr (konieczny!)
Zwracana wartość:
Jeśli się powiodło, zwraca 0, w przypadku błędu -1. Jeśli errno == ENOMEM, zabrakło pamięci. Inaczej był błąd przy wysyłaniu pakietu. Dla errno == 0 nie wysłano całego pakietu.
gg_login
Działanie:
Rozpoczyna procedurę łączenia się z serwerem. Resztę obsługuje się przez gg_watch_fd().

UWAGA! program musi obsłużyć SIGCHLD, jeśli łączy się asynchronicznie, żeby poprawnie zamknąć proces resolvera.

Deklaracja:
struct gg_session *gg_login(const struct gg_login_params *p);
Parametry:
const struct gg_login_params *pstruktura opisująca początkowy stan. wymagane pola: uin,password
Zwracana wartość:
W przypadku błędu NULL, jeśli idzie dobrze (async) albo poszło dobrze (sync), zwróci wskaźnik do zaalokowanej struct gg_session.
gg_free_session
Działanie:
Próbuje zamknąć połączenia i zwalnia pamięć zajmowaną przez sesję.
Deklaracja:
void gg_free_session(struct gg_session *sess);
Parametry:
struct gg_session *sessopis sesji
Zwracana wartość:
Brak.
gg_change_status
Działanie:
Zmienia status użytkownika. Przydatne do /away i /busy oraz /quit.
Deklaracja:
int gg_change_status(struct gg_session *sess, int status);
Parametry:
struct gg_session *sessopis sesji
int statusnowy status użytkownika
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_change_status_descr
Działanie:
Zmienia status użytkownika na opisowy.
Deklaracja:
int gg_change_status_descr(struct gg_session *sess, int status, const char *descr);
Parametry:
struct gg_session *sessopis sesji
int statusnowy status użytkownika
const char *descropis statusu
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_change_status_descr_time
Działanie:
Zmienia status użytkownika na opisowy z godziną powrotu.
Deklaracja:
int gg_change_status_descr_time(struct gg_session *sess, int status, const char *descr, int time);
Parametry:
struct gg_session *sessopis sesji
int statusnowy status użytkownika
const char *descropis statusu
int timeczas w formacie uniksowym
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_logoff
Działanie:
Wylogowuje użytkownika i zamyka połączenie, ale nie zwalnia pamięci.
Deklaracja:
void gg_logoff(struct gg_session *sess);
Parametry:
struct gg_session *sessopis sesji
Zwracana wartość:
Brak.
gg_send_message_ctcp
Działanie:
Wysyła wiadomość do innego użytkownika. Zwraca losowy numer sekwencyjny, który można olać albo wykorzystać do potwierdzenia.
Deklaracja:
int gg_send_message_ctcp(struct gg_session *sess, int msgclass, uin_t recipient, unsigned char *message, int message_len);
Parametry:
struct gg_session *sessopis sesji
int msgclassrodzaj wiadomości
uin_t recipientnumer adresata
unsigned char *messagetreść wiadomości
int message_lendługość
Zwracana wartość:
Numer sekwencyjny wiadomości lub -1 w przypadku błędu.
gg_send_message
Działanie:
Wysyła wiadomość do innego użytkownika. Zwraca losowy numer sekwencyjny, który można olać albo wykorzystać do potwierdzenia.
Deklaracja:
int gg_send_message(struct gg_session *sess, int msgclass, uin_t recipient, unsigned char *message);
Parametry:
struct gg_session *sessopis sesji
int msgclassrodzaj wiadomości
uin_t recipientnumer adresata
unsigned char *messagetreść wiadomości
Zwracana wartość:
Numer sekwencyjny wiadomości lub -1 w przypadku błędu.
gg_send_message_confer
Działanie:
Wysyła wiadomość do kilku użytkownikow (konferencja). Zwraca losowy numer sekwencyjny, który można olać albo wykorzystać do potwierdzenia.
Deklaracja:
int gg_send_message_confer(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, unsigned char *message);
Parametry:
struct gg_session *sessopis sesji
int msgclassrodzaj wiadomości
int recipients_countilość adresatów
uin_t *recipientsnumerki adresatów
unsigned char *messagetreść wiadomości
Zwracana wartość:
Numer sekwencyjny wiadomości lub -1 w przypadku błędu.
gg_ping
Działanie:
Wysyła do serwera pakiet ping.
Deklaracja:
int gg_ping(struct gg_session *sess);
Parametry:
struct gg_session *sessopis sesji
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_notify_ex
Działanie:
Wysyła serwerowi listę kontaktów (wraz z odpowiadającymi im typami userów), dzięki czemu wie, czyj stan nas interesuje.
Deklaracja:
int gg_notify_ex(struct gg_session *sess, uin_t *userlist, char *types, int count);
Parametry:
struct gg_session *sessidentyfikator sesji
uin_t *userlistwskaźnik do tablicy numerów
char *typeswskaźnik do tablicy typów użytkowników
int countilość numerków
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_notify
Działanie:
Wysyła serwerowi listę kontaktów, dzięki czemu wie, czyj stan nas interesuje.
Deklaracja:
int gg_notify(struct gg_session *sess, uin_t *userlist, int count);
Parametry:
struct gg_session *sessidentyfikator sesji
uin_t *userlistwskaźnik do tablicy numerów
int countilość numerków
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_add_notify_ex
Działanie:
Dodaje do listy kontaktów dany numer w trakcie połączenia. Dodawanemu użytkownikowi określamy jego typ (patrz protocol.html)
Deklaracja:
int gg_add_notify_ex(struct gg_session *sess, uin_t uin, char type);
Parametry:
struct gg_session *sessidentyfikator sesji
uin_t uinnumer
char typetyp
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_add_notify
Działanie:
Dodaje do listy kontaktów dany numer w trakcie połączenia.
Deklaracja:
int gg_add_notify(struct gg_session *sess, uin_t uin);
Parametry:
struct gg_session *sessidentyfikator sesji
uin_t uinnumer
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_remove_notify_ex
Działanie:
Usuwa z listy kontaktów w trakcie połączenia usuwanemu użytkownikowi określamy jego typ (patrz protocol.html)
Deklaracja:
int gg_remove_notify_ex(struct gg_session *sess, uin_t uin, char type);
Parametry:
struct gg_session *sessidentyfikator sesji
uin_t uinnumer
char typetyp
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_remove_notify
Działanie:
Usuwa z listy kontaktów w trakcie połączenia
Deklaracja:
int gg_remove_notify(struct gg_session *sess, uin_t uin);
Parametry:
struct gg_session *sessidentyfikator sesji
uin_t uinnumer
Zwracana wartość:
0 jeśli operacja się powiodła, -1 w przypadku błędu.
gg_register
Działanie:
Rozpoczyna rejestrację użytkownika.
Deklaracja:
struct gg_http *gg_register(const char *email, const char *password, int async);
Parametry:
const char *emailadres e-mail klienta
const char *passwordhasło klienta
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_register_free(), albo NULL jeśli wystąpił błąd.
gg_unregister
Działanie:
Usuwa konto użytkownika z serwera.
Deklaracja:
struct gg_http *gg_unregister(uin_t uin, const char *password, const char *email, int async);
Parametry:
uin_t uinnumerek GG
const char *passwordhasło klienta
const char *emailadres e-mail klienta
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_pubdir_unregister(), albo NULL jeśli wystąpił błąd.
gg_change_passwd
Działanie:
Wysyła żądanie zmiany hasła.
Deklaracja:
struct gg_http *gg_change_passwd(uin_t uin, const char *passwd, const char *newpasswd, const char *newemail, int async);
Parametry:
uin_t uinnumer
const char *passwdstare hasło
const char *newpasswdnowe hasło
const char *newemailnowy adres e-mail
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_change_passwd_free(), albo NULL jeśli wystąpił błąd.
gg_remind_passwd
Działanie:
Wysyła żądanie przypomnienia hasła e-mailem.
Deklaracja:
struct gg_http *gg_remind_passwd(uin_t uin, int async);
Parametry:
uin_t uinnumer
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_remind_passwd_free(), albo NULL jeśli wystąpił błąd.
gg_change_info
Działanie:
Zmienia własne dane w katalogu publicznym.
Deklaracja:
struct gg_http *gg_change_info(uin_t uin, const char *passwd, const struct gg_change_info_request *request, int async);
Parametry:
uin_t uinnumer
const char *passwdhasło
const struct gg_change_info_request *requeststruktura opisująca żądane zmiany
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_change_info_free(), albo NULL jeśli wystąpił błąd.
gg_pubdir_watch_fd
Działanie:
Przy asynchronicznych operacjach na katalogu publicznym należy wywoływać tą funkcję przy zmianach na obserwowanym deskryptorze.
Deklaracja:
int gg_pubdir_watch_fd(struct gg_http *h);
Parametry:
struct gg_http *hstruktura opisująca połączenie
Zwracana wartość:
Jeśli wszystko poszło dobrze to 0, inaczej -1. Operacja będzie zakończona, jeśli h->state == GG_STATE_DONE. Jeśli wystąpi jakiś błąd, to będzie tam GG_STATE_ERROR i odpowiedni kod błędu w h->error.
gg_pubdir_free
Działanie:
Zwalnia pamięć po efektach operacji na katalogu publicznym.
Deklaracja:
void gg_pubdir_free(struct gg_http *h);
Parametry:
struct gg_http *hzwalniana struktura
Zwracana wartość:
Brak.
gg_change_info_request_new
Działanie:
Alokuje pamięć i tworzy struct gg_change_info_request do użycia jako parametr gg_change_info().
Deklaracja:
struct gg_change_info_request *gg_change_info_request_new(const char *first_name, const char *last_name, const char *nickname, const char *email, int born, int gender, const char *city);
Parametry:
const char *first_nameimię
const char *last_namenazwisko
const char *nicknamepseudownim
const char *emailadres e-mail
int borndata urodzenia
int genderpłeć (GG_GENDER_UNKNOWN, GG_GENDER_MALE, GG_GENDER_FEMALE)
const char *citymiasto zamieszkania
Zwracana wartość:
Zaalokowana struktura lub NULL w przypadku braku pamięci.
gg_change_info_request_free
Działanie:
Zwalnia pamięć zajmowaną przez struct gg_change_info_request i jej pola.
Deklaracja:
void gg_change_info_request_free(struct gg_change_info_request *r);
Parametry:
struct gg_change_info_request *rzwalniana struktura
Zwracana wartość:
Brak.
gg_search
Działanie:
Rozpoczyna szukanie użytkowników. Informacje o tym, czego dokładnie szukamy są zawarte w struct gg_search_request. Ze względu na specyfikę ich przeszukiwarki, niektórych pól nie można mieszać. Są oznaczone w libgadu.h jako osobne tryby
Deklaracja:
struct gg_http *gg_search(const struct gg_search_request *r, int async);
Parametry:
const struct gg_search_request *rinformacja o tym, czego szukamy
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_search_free(), albo NULL jeśli wystąpił błąd.
gg_search_watch_fd
Działanie:
Przy asynchronicznym wyszukiwaniu należy wywołać tą funkcję przy zmianach na obserwowanym deskryptorze.
Deklaracja:
int gg_search_watch_fd(struct gg_http *h);
Parametry:
struct gg_http *hstruktura opisująca połączenie
Zwracana wartość:
Jeśli wszystko poszło dobrze to 0, inaczej -1. Przeszukiwanie będzie zakończone, jeśli f->state == GG_STATE_DONE. Jeśli wystąpi jakiś błąd, to będzie tam GG_STATE_ERROR i odpowiedni kod błędu w f->error.
gg_search_free
Działanie:
Zwalnia pamięć po wyszukiwaniu.
Deklaracja:
void gg_search_free(struct gg_http *h);
Parametry:
struct gg_http *hzwalniana struktura
Zwracana wartość:
Brak.
gg_search_request_mode*
Działanie:
Funkcje pozwalające w wygodny sposób tworzyć struktury zawierające kryteria wyszukiwania.
Deklaracja:
const struct gg_search_request *gg_search_request_mode_0(char *nickname, char *first_name, char *last_name, char *city, int gender, int min_birth, int max_birth, int active, int start);
Parametry:
char *nicknamepseudonim
char *first_nameimię
int activeszukaj tylko aktywnych
int startzacznij od podanego wyniku (dolne 31 bitów)
char *last_namenazwisko
char *citymiasto
int genderpłeć (GG_GENDER_UNKNOWN, GG_GENDER_MALE, GG_GENDER_FEMALE)
int min_birthminimalna data urodzenia
int max_birthmaksymalna data urodzenia
emailadres e-mail
phonenumer telefonu
uinnumer
Zwracana wartość:
Wszystkie zwracają adres statycznego bufora, który można wykorzystać do nakarmienia funkcji gg_search().
gg_search_request_free
Działanie:
Zwalnia pamięć po struct gg_search_request.
Deklaracja:
void gg_search_request_free(struct gg_search_request *r);
Parametry:
struct gg_search_request *rzwalniana struktura.
Zwracana wartość:
Brak.
gg_userlist_get
Działanie:
Wysyła żądanie pobrania listy kontaktów z serwera.
Deklaracja:
struct gg_http *gg_userlist_get(uin_t uin, const char *passwd, int async);
Parametry:
uin_t uinnumer
const char *passwdhasło
int asyncpołączenie asynchroniczne
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_userlist_get_send(), albo NULL jeśli wystąpił błąd.
gg_userlist_get_watch_fd
Działanie:
Przy asynchronicznym ściąganiu listy kontaktów należy wywołać tą funkcję po zauważeniu zmian na obserwowanym deskryptorze.
Deklaracja:
int gg_userlist_get_watch_fd(struct gg_http *h);
Parametry:
struct gg_http *hstruktura opisująca połączenie
Zwracana wartość:
Jeśli wszystko poszło dobrze to 0, inaczej -1. Operacja będzie zakończona, jeśli h->state == GG_STATE_DONE. Jeśli wystąpi jakiś błąd, to będzie tam GG_STATE_ERROR i odpowiedni kod błędu w h->error.
gg_userlist_get_free
Działanie:
Zwalnia pamięć po pobieraniu listy kontaktów z serwera.
Deklaracja:
void gg_userlist_get_free(struct gg_http *h);
Parametry:
struct gg_http *hzwalniana struktura
Zwracana wartość:
Brak.
gg_userlist_put
Działanie:
Wysyła listę kontaktów na serwer.
Deklaracja:
struct gg_http *gg_userlist_put(uin_t uin, const char *passwd, const char *contacts, int async);
Parametry:
uin_t uinnumerek
const char *passwdhasło
const char *contactslista kontaktów
int asyncma być asynchronicznie
Zwracana wartość:
Zaalokowana struct gg_http, którą poźniej należy zwolnić funkcją gg_userlist_send(), albo NULL jeśli wystąpił błąd.
gg_userlist_put_watch_fd
Działanie:
Przy asynchronicznym wysyłaniu userlisty należy wywołać tą funkcję po zauważeniu zmian na obserwowanym deskryptorze
Deklaracja:
int gg_userlist_put_watch_fd(struct gg_http *h);
Parametry:
struct gg_http *hstruktura opisująca połączenie
Zwracana wartość:
Jeśli wszystko poszło dobrze to 0, inaczej -1. Operacja będzie zakończona, jeśli h->state == GG_STATE_DONE. Jeśli wystąpi jakiś błąd, to będzie tam GG_STATE_ERROR i odpowiedni kod błędu w h->error.
gg_userlist_put_free
Działanie:
Zwalnia pamięć po wysyłaniu listy kontaktów na serwer.
Deklaracja:
void gg_userlist_put_free(struct gg_http *h);
Parametry:
struct gg_http *hzwalniana struktura
Zwracana wartość:
Brak.