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
unsigned int header_done;ile już mamy
void *ssl; zachowujemy ABI
int image_size; maksymalny rozmiar obrazków w KiB
char *userlist_reply; fragment odpowiedzi listy kontaktów
int userlist_blocks; na ile kawałków podzielono listę kontaktów
struct gg_image_queue *images; aktualnie wczytywane obrazki
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
unsigned int body_size; oczekiwana 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
unsigned int body_done; ile już treści odebrano?
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
unsigned int offset; offset w pliku
unsigned int chunk_size;rozmiar kawałka
unsigned 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_TOKENpobieranie tokenu
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_STATE_TLS_NEGOTIATIONnegocjuje połączenie TLS
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
int tls; czy łączymy po TLS?
int image_size; maksymalny rozmiar obrazka w KiB
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ę nie udało
GG_EVENT_CONN_SUCCESSpołączenie się powiodł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_EVENT_STATUS60ktoś zmienił stan w GG 6.0
GG_EVENT_NOTIFY60ktoś się pojawił w GG 6.0
GG_EVENT_USERLISTodpowiedź listy kontaktów w GG 6.0
GG_EVENT_IMAGE_REQUESTprośba o wysłanie obrazka GG 6.0
GG_EVENT_IMAGE_REPLYpodesłany obrazek GG 6.0
GG_EVENT_DCC_ACKpotwierdzenie transmisji
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_FAILURE_TLSbłąd negocjacji TLS
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
enum gg_failure_t 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.status60 (zmiana stanu -- GG_EVENT_STATUS60):
uin_t uin; numer
int status; nowy stan
uint32_t remote_ip; adres ip
uint16_t remote_port; port
int version; wersja klienta
int image_size; maksymalny rozmiar grafiki w KiB
char *descr; opis stanu
time_t time; czas powrotu
Pola struktury event.notify60 (informacja o liście kontaktów -- GG_EVENT_NOTIFY60):
uin_t uin; numer
int status; stan
uint32_t remote_ip; adres ip
uint16_t remote_port; port
int version; wersja klienta
int image_size; maksymalny rozmiar grafiki w KiB
char *descr; opis stanu
time_t time; czas powrotu
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
Pola struktury event.userlist (odpowiedź listy kontaktów serwera):
char type; rodzaj odpowiedzi
char *reply; treść odpowiedzi
Pola struktury event.image_request (prośba o obrazek):
uin_t sender; nadawca prośby
uint32_t size; rozmiar obrazka
uint32_t crc32; suma kontrolna
Pola struktury event.image_reply (odpowiedź z obrazkiem):
uin_t sender; nadawca odpowiedzi
uint32_t size; rozmiar obrazka
uint32_t crc32; suma kontrolna
char *filename; nazwa pliku
char *image; bufor z obrazkiem
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