uin_t
Typ reprezentujący numer osoby.
gg_session
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
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
Odpowiednik windowsowej struktury WIN32_FIND_DATA niezbędnej przy
wysyłaniu plików.
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
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
Rodzaje sesji.
GG_SESSION_GG | połączenie z serwerem gg |
GG_SESSION_HTTP | ogólna sesja http |
GG_SESSION_SEARCH | szukanie |
GG_SESSION_REGISTER | rejestrowanie |
GG_SESSION_REMIND | przypominanie hasła |
GG_SESSION_PASSWD | zmiana hasła |
GG_SESSION_CHANGE | zmiana informacji o sobie |
GG_SESSION_DCC | ogólne połączenie DCC |
GG_SESSION_DCC_SOCKET | nasłuchujący socket |
GG_SESSION_DCC_SEND | wysyłanie pliku |
GG_SESSION_DCC_GET | odbieranie pliku |
GG_SESSION_DCC_VOICE | rozmowa głosowa |
GG_SESSION_USERLIST_GET | pobieranie userlisty |
GG_SESSION_USERLIST_PUT | wysyłanie userlisty |
GG_SESSION_UNREGISTER | usuwanie konta |
GG_SESSION_USERLIST_REMOVE | usuwanie userlisty |
GG_SESSION_USER0 | zdefiniowana dla użytkownika |
GG_SESSION_USER1 | j.w. |
GG_SESSION_USER2 | j.w. |
GG_SESSION_USER3 | j.w. |
GG_SESSION_USER4 | j.w. |
GG_SESSION_USER5 | j.w. |
GG_SESSION_USER6 | j.w. |
GG_SESSION_USER7 | j.w. |
gg_state_t
Opisuje stan asynchronicznej maszyny.
GG_STATE_IDLE | nie powinno wystąpić. |
GG_STATE_RESOLVING | wywołał gethostbyname() |
GG_STATE_CONNECTING | wywołał connect() |
GG_STATE_READING_DATA | czeka na dane http |
GG_STATE_ERROR | wystąpił błąd. kod w x->error |
GG_STATE_CONNECTING_HUB | wywołał connect() na huba |
GG_STATE_CONNECTING_GG | wywołał connect() na serwer |
GG_STATE_READING_KEY | czeka na klucz |
GG_STATE_READING_REPLY | czeka na odpowiedź |
GG_STATE_CONNECTED | połączył się |
GG_STATE_SENDING_QUERY | wysyła zapytanie http |
GG_STATE_READING_HEADER | czeka na nagłówek http |
GG_STATE_PARSING | przetwarza dane |
GG_STATE_DONE | skończył |
GG_STATE_LISTENING | czeka na połączenia |
GG_STATE_READING_UIN_1 | czeka na uin peera |
GG_STATE_READING_UIN_2 | czeka na swój uin |
GG_STATE_SENDING_ACK | wysyła potwierdzenie dcc |
GG_STATE_READING_ACK | czeka na potwierdzenie dcc |
GG_STATE_READING_REQUEST | czeka na komendę |
GG_STATE_SENDING_REQUEST | wysyła komendę |
GG_STATE_SENDING_FILE_INFO | wysyła informacje o pliku |
GG_STATE_READING_PRE_FILE_INFO | czeka na pakiet przed file_info |
GG_STATE_READING_FILE_INFO | czeka na informacje o pliku |
GG_STATE_SENDING_FILE_ACK | wysyła potwierdzenie pliku |
GG_STATE_READING_FILE_ACK | czeka na potwierdzenie pliku |
GG_STATE_SENDING_FILE_HEADER | wysyła nagłówek pliku |
GG_STATE_READING_FILE_HEADER | czeka na nagłówek |
GG_STATE_GETTING_FILE | odbiera plik |
GG_STATE_SENDING_FILE | wysyła plik |
GG_STATE_READING_VOICE_ACK | czeka na potwierdzenie voip |
GG_STATE_READING_VOICE_HEADER | czeka na rodzaj bloku voip |
GG_STATE_READING_VOICE_SIZE | czeka na rozmiar bloku voip |
GG_STATE_READING_VOICE_DATA | czeka na dane voip |
GG_STATE_SENDING_VOICE_ACK | wysyła potwierdzenie voip |
GG_STATE_SENDING_VOICE_REQUEST | wysyła żądanie voip |
GG_STATE_READING_TYPE | czeka na typ połączenia |
gg_check_t
Informuje, co proces klienta powinien sprawdzić na deskryptorze danego
połączenia.
GG_CHECK_NONE | nic. nie powinno wystąpić |
GG_CHECK_WRITE | sprawdzamy możliwość zapisu |
GG_CHECK_READ | sprawdzamy możliwość odczytu |
gg_login_params
Parametry gg_login(). Przeniesiono do struktury, żeby uniknąć problemów
z ciągłymi zmianami API, gdy dodano coś nowego do protokołu.
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
Rodzaje zdarzeń.
GG_EVENT_NONE | nic się nie wydarzyło |
GG_EVENT_MSG | otrzymano wiadomość |
GG_EVENT_NOTIFY | ktoś się pojawił |
GG_EVENT_NOTIFY_DESCR | ktoś się pojawił z opisem |
GG_EVENT_STATUS | ktoś zmienił stan |
GG_EVENT_ACK | potwierdzenie wysłania wiadomości |
GG_EVENT_PONG | pakiet pong |
GG_EVENT_CONN_FAILED | połączenie się powiodło |
GG_EVENT_CONN_SUCCESS | połączenie się nie udało |
GG_EVENT_DISCONNECT | serwer zrywa połączenie |
GG_EVENT_DCC_NEW | nowe połączenie między klientami |
GG_EVENT_DCC_ERROR | błąd połączenia między klientami |
GG_EVENT_DCC_DONE | zakończono połączenie |
GG_EVENT_DCC_CLIENT_ACCEPT | moment akceptacji klienta |
GG_EVENT_DCC_CALLBACK | klient się połączył na żądanie |
GG_EVENT_DCC_NEED_FILE_INFO | należy wypełnić file_info |
GG_EVENT_DCC_NEED_FILE_ACK | czeka na potwierdzenie pliku |
GG_EVENT_DCC_NEED_VOICE_ACK | czeka na potwierdzenie rozmowy |
GG_EVENT_DCC_VOICE_DATA | ramka danych rozmowy głosowej |
GG_EVENT_PUBDIR50_SEARCH_REPLY | odpowiedz wyszukiwania |
GG_EVENT_PUBDIR50_READ | odczytano własne dane z katalogu |
GG_EVENT_PUBDIR50_WRITE | wpisano własne dane do katalogu |
gg_failure_t
Określa powód nieudanego połączenia.
GG_FAILURE_RESOLVING | nie znaleziono serwera |
GG_FAILURE_CONNECTING | nie można się połączyć |
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 | XXX nieużywane |
gg_error_t
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.
GG_ERROR_RESOLVING | błąd znajdowania hosta |
GG_ERROR_CONNECTING | błąd łaczenia się |
GG_ERROR_READING | błąd odczytu |
GG_ERROR_WRITING | błąd wysyłania |
GG_ERROR_DCC_HANDSHAKE | błąd negocjacji |
GG_ERROR_DCC_FILE | błąd odczytu/zapisu pliku |
GG_ERROR_DCC_EOF | plik się skończył? |
GG_ERROR_DCC_NET | błąd wysyłania/odbierania |
GG_ERROR_DCC_REFUSED | połączenie odrzucone przez usera |
gg_pubdir_50_t
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
int type; | rodzaj zdarzenia -- gg_event_t |
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_* |
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 |
struct gg_notify_reply *notify; | informacje o liście kontaktów |
char *descr; | opis stanu |
uin_t uin; | numer |
uint32_t status; | nowy stan |
char *descr; | opis stanu |
uin_t recipient; | numer odbiorcy |
int status; | stan doręczenia wiadomości |
int seq; | numer sekwencyjny wiadomości |
uint8_t *data; | dane dźwiękowe |
int length; | ilość danych dźwiękowych |
gg_pubdir
Operacje na katalogu publicznym.
int success; | czy się udało |
uin_t uin; | otrzymany numerek. 0 jeśli błąd |
gg_change_info_request
Opis żądania zmiany informacji w katalogu publicznym.
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 |
|