uin_t
Znaczenie:
Typ reprezentujący numer osoby.
gg_session
Znaczenie:
Struktura opisująca daną sesję. Tworzona przez gg_login(), zwalniana przez gg_free_session().
Pola struktury:
int fd; podglądany deskryptor
int check; sprawdzamy zapis czy odczyt
int state; aktualny stan maszynki
int error; kod błędu dla GG_STATE_ERROR
int type; rodzaj sesji
int id; identyfikator
int timeout; sugerowany timeout w sekundach
int (*callback)(x*); callback przy zmianach
void (*destroy)(x*); funkcja niszczenia
int async; czy połączenie jest asynchroniczne
int pid; pid procesu resolvera
int port; port, z którym się łączymy
int seq; numer sekwencyjny ostatniej wiadomości
int last_pong; czas otrzymania ostatniego ping/pong
int last_event; czas otrzymania ostatniego pakietu
struct gg_event *event; zdarzenie po ->callback()
uint32_t proxy_addr; adres proxy, keszowany
uint16_t proxy_port; port proxy
uint32_t hub_addr; adres huba po resolvnięciu
uint32_t server_addr; adres serwera, od huba
uint32_t client_addr; adres klienta
uint16_t client_port; port, na którym klient słucha
uint32_t external_addr; adres zewnetrzny klienta
uint16_t external_port; port zewnetrzny klienta
uin_t uin; numerek klienta
char *password; i jego hasło. zwalniane automagicznie
int initial_status; początkowy stan klienta
int status; aktualny stan klienta
char *recv_buf; bufor na otrzymywane pakiety
int recv_done; ile już wczytano do bufora
int recv_left; i ile jeszcze trzeba wczytać
int protocol_version; wersja używanego protokołu
char *client_version; wersja używanego klienta
int last_sysmsg; ostatnia wiadomość systemowa
char *initial_descr; początkowy opis stanu klienta
void *resolver; wskaźnik na informacje resolvera
char *header_buf; bufor na początek nagłówka
int header_done; ile już mamy
gg_http
Znaczenie:
Ogólna struktura opisująca stan wszystkich operacji HTTP. Tworzona przez gg_http_connect(), zwalniana przez gg_http_free().
Pola struktury:
int fd; podglądany deskryptor
int check; sprawdzamy zapis czy odczyt
int state; aktualny stan maszynki
int error; kod błędu dla GG_STATE_ERROR
int type; rodzaj sesji
int id; identyfikator
int timeout; sugerowany timeout w sekundach
int (*callback)(x*); callback przy zmianach
void (*destroy)(x*); funkcja niszczenia
int async; czy połączenie asynchroniczne
int pid; pid procesu resolvera
int port; port, z którym się łączymy
char *query; bufor zapytania http
char *header; bufor nagłówka
int header_size; rozmiar wczytanego nagłówka
char *body; bufor otrzymanych informacji
int body_size; ilość informacji
void *data; dane danej operacji http
char *user_data; dane użytkownika, nie są zwalniane przez gg_http_free()
void *resolver; wskaźnik na informacje resolvera
gg_file_info
Znaczenie:
Odpowiednik windowsowej struktury WIN32_FIND_DATA niezbędnej przy wysyłaniu plików.
Pola struktury:
uint32_t mode; dwFileAttributes
uint32_t ctime[2]; ftCreationTime
uint32_t atime[2]; ftLastAccessTime
uint32_t mtime[2]; ftLastWriteTime
uint32_t size_hi; nFileSizeHigh
uint32_t size; nFileSizeLow
uint32_t reserved0; dwReserved0
uint32_t reserved1; dwReserved1
unsigned char filename[GG_MAX_PATH - 14]; cFileName
unsigned char short_filename[14]; cAlternateFileName
gg_dcc
Znaczenie:
Struktura opisująca nasłuchujące gniazdo połączeń między klientami. tworzona przez gg_dcc_socket_create(), zwalniana przez gg_dcc_free().
Pola struktury:
int fd; podglądany deskryptor
int check; sprawdzamy zapis czy odczyt
int state; aktualny stan maszynki
int error; kod błędu dla GG_STATE_ERROR
int type; rodzaj sesji
int id; identyfikator
int timeout; sugerowany timeout w sekundach
int (*callback)(x*); callback przy zmianach
void (*destroy)(x*); funkcja niszczenia
struct gg_event *event; opis zdarzenia
int active; czy to my się łączymy?
int port; port, na którym siedzi
uin_t uin; uin klienta
uin_t peer_uin; uin drugiej strony
int file_fd; deskryptor pliku
int offset; offset w pliku
int chunk_size; rozmiar kawałka
int chunk_offset; offset w aktualnym kawałku
int established; połączenie ustanowione
char *voice_buf; bufor na pakiet połączenia głosowego
int incoming; połączenie przychodzące
char *chunk_buf; bufor na kawałek danych
uint32_t remote_addr; adres drugiej strony
uint16_t remote_port; port drugiej strony
gg_session_t
Znaczenie:
Rodzaje sesji.
Wartości:
GG_SESSION_GGpołączenie z serwerem gg
GG_SESSION_HTTPogólna sesja http
GG_SESSION_SEARCHszukanie
GG_SESSION_REGISTERrejestrowanie
GG_SESSION_REMINDprzypominanie hasła
GG_SESSION_PASSWDzmiana hasła
GG_SESSION_CHANGEzmiana informacji o sobie
GG_SESSION_DCCogólne połączenie DCC
GG_SESSION_DCC_SOCKETnasłuchujący socket
GG_SESSION_DCC_SENDwysyłanie pliku
GG_SESSION_DCC_GETodbieranie pliku
GG_SESSION_DCC_VOICErozmowa głosowa
GG_SESSION_USERLIST_GETpobieranie userlisty
GG_SESSION_USERLIST_PUTwysyłanie userlisty
GG_SESSION_UNREGISTERusuwanie konta
GG_SESSION_USERLIST_REMOVEusuwanie userlisty
GG_SESSION_USER0zdefiniowana dla użytkownika
GG_SESSION_USER1j.w.
GG_SESSION_USER2j.w.
GG_SESSION_USER3j.w.
GG_SESSION_USER4j.w.
GG_SESSION_USER5j.w.
GG_SESSION_USER6j.w.
GG_SESSION_USER7j.w.
gg_state_t
Znaczenie:
Opisuje stan asynchronicznej maszyny.
Wartości:
GG_STATE_IDLEnie powinno wystąpić.
GG_STATE_RESOLVINGwywołał gethostbyname()
GG_STATE_CONNECTINGwywołał connect()
GG_STATE_READING_DATAczeka na dane http
GG_STATE_ERRORwystąpił błąd. kod w x->error
GG_STATE_CONNECTING_HUBwywołał connect() na huba
GG_STATE_CONNECTING_GGwywołał connect() na serwer
GG_STATE_READING_KEYczeka na klucz
GG_STATE_READING_REPLYczeka na odpowiedź
GG_STATE_CONNECTEDpołączył się
GG_STATE_SENDING_QUERYwysyła zapytanie http
GG_STATE_READING_HEADERczeka na nagłówek http
GG_STATE_PARSINGprzetwarza dane
GG_STATE_DONEskończył
GG_STATE_LISTENINGczeka na połączenia
GG_STATE_READING_UIN_1czeka na uin peera
GG_STATE_READING_UIN_2czeka na swój uin
GG_STATE_SENDING_ACKwysyła potwierdzenie dcc
GG_STATE_READING_ACKczeka na potwierdzenie dcc
GG_STATE_READING_REQUESTczeka na komendę
GG_STATE_SENDING_REQUESTwysyła komendę
GG_STATE_SENDING_FILE_INFOwysyła informacje o pliku
GG_STATE_READING_PRE_FILE_INFOczeka na pakiet przed file_info
GG_STATE_READING_FILE_INFOczeka na informacje o pliku
GG_STATE_SENDING_FILE_ACKwysyła potwierdzenie pliku
GG_STATE_READING_FILE_ACKczeka na potwierdzenie pliku
GG_STATE_SENDING_FILE_HEADERwysyła nagłówek pliku
GG_STATE_READING_FILE_HEADERczeka na nagłówek
GG_STATE_GETTING_FILEodbiera plik
GG_STATE_SENDING_FILEwysyła plik
GG_STATE_READING_VOICE_ACKczeka na potwierdzenie voip
GG_STATE_READING_VOICE_HEADERczeka na rodzaj bloku voip
GG_STATE_READING_VOICE_SIZEczeka na rozmiar bloku voip
GG_STATE_READING_VOICE_DATAczeka na dane voip
GG_STATE_SENDING_VOICE_ACKwysyła potwierdzenie voip
GG_STATE_SENDING_VOICE_REQUESTwysyła żądanie voip
GG_STATE_READING_TYPEczeka na typ połączenia
gg_check_t
Znaczenie:
Informuje, co proces klienta powinien sprawdzić na deskryptorze danego połączenia.
Wartości:
GG_CHECK_NONEnic. nie powinno wystąpić
GG_CHECK_WRITEsprawdzamy możliwość zapisu
GG_CHECK_READsprawdzamy możliwość odczytu
gg_login_params
Znaczenie:
Parametry gg_login(). Przeniesiono do struktury, żeby uniknąć problemów z ciągłymi zmianami API, gdy dodano coś nowego do protokołu.
Pola struktury:
uin_t uin; numerek
char *password; hasło
int async; asynchroniczne sockety?
int status; początkowy status klienta
char *status_descr; opis statusu
uint32_t server_addr; adres serwera gg
uint16_t server_port; port serwera gg
uint32_t client_addr; adres dcc klienta
uint16_t client_port; port dcc klienta
int protocol_version; wersja protokołu
char *client_version; wersja klienta
int has_audio; czy ma dźwięk?
int last_sysmsg; ostatnia wiadomość systemowa
uint32_t external_addr; adres widziany na zewnatrz
uint16_t external_port; port widziany na zewnatrz
gg_event_t
Znaczenie:
Rodzaje zdarzeń.
Wartości:
GG_EVENT_NONEnic się nie wydarzyło
GG_EVENT_MSGotrzymano wiadomość
GG_EVENT_NOTIFYktoś się pojawił
GG_EVENT_NOTIFY_DESCRktoś się pojawił z opisem
GG_EVENT_STATUSktoś zmienił stan
GG_EVENT_ACKpotwierdzenie wysłania wiadomości
GG_EVENT_PONGpakiet pong
GG_EVENT_CONN_FAILEDpołączenie się powiodło
GG_EVENT_CONN_SUCCESSpołączenie się nie udało
GG_EVENT_DISCONNECTserwer zrywa połączenie
GG_EVENT_DCC_NEWnowe połączenie między klientami
GG_EVENT_DCC_ERRORbłąd połączenia między klientami
GG_EVENT_DCC_DONEzakończono połączenie
GG_EVENT_DCC_CLIENT_ACCEPTmoment akceptacji klienta
GG_EVENT_DCC_CALLBACKklient się połączył na żądanie
GG_EVENT_DCC_NEED_FILE_INFOnależy wypełnić file_info
GG_EVENT_DCC_NEED_FILE_ACKczeka na potwierdzenie pliku
GG_EVENT_DCC_NEED_VOICE_ACKczeka na potwierdzenie rozmowy
GG_EVENT_DCC_VOICE_DATAramka danych rozmowy głosowej
GG_EVENT_PUBDIR50_SEARCH_REPLYodpowiedz wyszukiwania
GG_EVENT_PUBDIR50_READodczytano własne dane z katalogu
GG_EVENT_PUBDIR50_WRITEwpisano własne dane do katalogu
gg_failure_t
Znaczenie:
Określa powód nieudanego połączenia.
Wartości:
GG_FAILURE_RESOLVINGnie znaleziono serwera
GG_FAILURE_CONNECTINGnie można się połączyć
GG_FAILURE_INVALIDserwer zwrócił nieprawidłowe dane
GG_FAILURE_READINGzerwano połączenie podczas odczytu
GG_FAILURE_WRITINGzerwano połączenie podczas zapisu
GG_FAILURE_PASSWORDnieprawidłowe hasło
GG_FAILURE_404XXX nieużywane
gg_error_t
Znaczenie:
Określa rodzaj błędu wywołanego przez daną operację. Nie zawiera przesadnie szczegółowych informacji o powodzie błędu, by nie komplikować obsługi błędów. Jeśli wymagana jest większa dokładność, należy sprawdzić zawartość zmiennej errno.
Wartości:
GG_ERROR_RESOLVINGbłąd znajdowania hosta
GG_ERROR_CONNECTINGbłąd łaczenia się
GG_ERROR_READINGbłąd odczytu
GG_ERROR_WRITINGbłąd wysyłania
GG_ERROR_DCC_HANDSHAKEbłąd negocjacji
GG_ERROR_DCC_FILEbłąd odczytu/zapisu pliku
GG_ERROR_DCC_EOFplik się skończył?
GG_ERROR_DCC_NETbłąd wysyłania/odbierania
GG_ERROR_DCC_REFUSEDpołączenie odrzucone przez usera
gg_pubdir_50_t
Znaczenie:
Typ opisujący zapytanie lub wynik zapytania katalogu publicznego z protokołu GG 5.0. Nie należy się odwoływać bezpośrednio do jego pól -- służą do tego funkcje gg_pubdir50_*()
gg_event
Znaczenie:
Struktura opisująca rodzaj zdarzenia. Wychodzi z gg_watch_fd() lub z gg_dcc_watch_fd()
Pola struktury:
int type; rodzaj zdarzenia -- gg_event_t
Pola unii event:
struct gg_notify_reply *notify; informacje o liście kontaktów -- GG_EVENT_NOTIFY
int failure; błąd połączenia -- GG_EVENT_FAILURE
struct gg_dcc *dcc_new; nowe połączenie bezpośrednie -- GG_EVENT_DCC_NEW
int dcc_error; błąd połączenia bezpośredniego -- GG_EVENT_DCC_ERROR
gg_pubdir50_t pubdir50; wynik operacji związanej z katalogiem publicznym -- GG_EVENT_PUBDIR50_*
Pola struktury event.msg (odebrano wiadomość -- GG_EVENT_MSG):
uin_t sender; numer nadawcy
int msgclass; klasa wiadomości
time_t time; czas nadania
unsigned char *message; treść wiadomości
int recipients_count; ilość odbiorców konferencji
uin_t *recipients; odbiorcy konferencji
int formats_length; długość informacji o formatowaniu tekstu
void *formats; informacje o formatowaniu tekstu
Pola struktury event.notify_descr (informacje o liście kontaktów z opisami stanu -- GG_EVENT_NOTIFY_DESCR):
struct gg_notify_reply *notify; informacje o liście kontaktów
char *descr; opis stanu
Pola struktury event.status (zmiana stanu -- GG_EVENT_STATUS):
uin_t uin; numer
uint32_t status; nowy stan
char *descr; opis stanu
Pola struktury event.ack (potwierdzenie wiadomości -- GG_EVENT_ACK):
uin_t recipient; numer odbiorcy
int status; stan doręczenia wiadomości
int seq; numer sekwencyjny wiadomości
Pola struktury event.dcc_voice_data (otrzymano dane dźwiękowe -- GG_EVENT_DCC_VOICE_DATA):
uint8_t *data; dane dźwiękowe
int length; ilość danych dźwiękowych
gg_pubdir
Znaczenie:
Operacje na katalogu publicznym.
Pola struktury:
int success; czy się udało
uin_t uin; otrzymany numerek. 0 jeśli błąd
gg_change_info_request
Znaczenie:
Opis żądania zmiany informacji w katalogu publicznym.
Pola struktury:
char *first_name; imię
char *last_name; nazwisko
char *nickname; pseudonim
char *email; email
int born; rok urodzenia
int gender; płeć
char *city; miasto