libgadu.h | libgadu.h | |||
---|---|---|---|---|
skipping to change at line 74 | skipping to change at line 74 | |||
/* Defined if this machine has va_copy(). */ | /* Defined if this machine has va_copy(). */ | |||
#define GG_CONFIG_HAVE_VA_COPY /**/ | #define GG_CONFIG_HAVE_VA_COPY /**/ | |||
/* Defined if this machine has __va_copy(). */ | /* Defined if this machine has __va_copy(). */ | |||
#define GG_CONFIG_HAVE___VA_COPY /**/ | #define GG_CONFIG_HAVE___VA_COPY /**/ | |||
/* Defined if this machine supports long long. */ | /* Defined if this machine supports long long. */ | |||
#define GG_CONFIG_HAVE_LONG_LONG /**/ | #define GG_CONFIG_HAVE_LONG_LONG /**/ | |||
/* Defined if libgadu was compiled and linked with TLS support. */ | /* Defined if libgadu was compiled and linked with GnuTLS support. */ | |||
#define GG_CONFIG_HAVE_OPENSSL /**/ | #define GG_CONFIG_HAVE_GNUTLS /**/ | |||
/* Defined if libgadu was compiled and linked with OpenSSL support. */ | ||||
/* #undef GG_CONFIG_HAVE_OPENSSL */ | ||||
/* Defined if uintX_t types are defined in <stdint.h>. */ | /* Defined if uintX_t types are defined in <stdint.h>. */ | |||
#define GG_CONFIG_HAVE_STDINT_H /**/ | #define GG_CONFIG_HAVE_STDINT_H /**/ | |||
/* Defined if uintX_t types are defined in <inttypes.h>. */ | /* Defined if uintX_t types are defined in <inttypes.h>. */ | |||
/* #undef GG_CONFIG_HAVE_INTTYPES_H */ | /* #undef GG_CONFIG_HAVE_INTTYPES_H */ | |||
/* Defined if uintX_t types are defined in <sys/inttypes.h>. */ | /* Defined if uintX_t types are defined in <sys/inttypes.h>. */ | |||
/* #undef GG_CONFIG_HAVE_SYS_INTTYPES_H */ | /* #undef GG_CONFIG_HAVE_SYS_INTTYPES_H */ | |||
skipping to change at line 151 | skipping to change at line 154 | |||
typedef uint32_t uin_t; | typedef uint32_t uin_t; | |||
/** | /** | |||
* Identyfikator połączenia bezpośredniego Gadu-Gadu 7.x. | * Identyfikator połączenia bezpośredniego Gadu-Gadu 7.x. | |||
*/ | */ | |||
typedef struct { | typedef struct { | |||
uint8_t id[8]; | uint8_t id[8]; | |||
} gg_dcc7_id_t; | } gg_dcc7_id_t; | |||
/** | /** | |||
* Identyfikator sesji multilogowania. | ||||
*/ | ||||
typedef struct { | ||||
uint8_t id[8]; | ||||
} gg_multilogon_id_t; | ||||
/** | ||||
* Makro deklarujące pola wspólne dla struktur sesji. | * Makro deklarujące pola wspólne dla struktur sesji. | |||
*/ | */ | |||
#define gg_common_head(x) \ | #define gg_common_head(x) \ | |||
int fd; /**< Obserwowany deskryptor */ \ | int fd; /**< Obserwowany deskryptor */ \ | |||
int check; /**< Informacja o żądaniu odczytu/zapisu (pa trz \ref gg_check_t) */ \ | int check; /**< Informacja o żądaniu odczytu/zapisu (pa trz \ref gg_check_t) */ \ | |||
int state; /**< Aktualny stan połączenia (patrz \ref gg _state_t) */ \ | int state; /**< Aktualny stan połączenia (patrz \ref gg _state_t) */ \ | |||
int error; /**< Kod błędu dla \c GG_STATE_ERROR (patrz \ref gg_error_t) */ \ | int error; /**< Kod błędu dla \c GG_STATE_ERROR (patrz \ref gg_error_t) */ \ | |||
int type; /**< Rodzaj sesji (patrz \ref gg_session_t) */ \ | int type; /**< Rodzaj sesji (patrz \ref gg_session_t) */ \ | |||
int id; /**< Identyfikator sesji */ \ | int id; /**< Identyfikator sesji */ \ | |||
int timeout; /**< Czas pozostały do zakończenia stanu */ \ | int timeout; /**< Czas pozostały do zakończenia stanu */ \ | |||
skipping to change at line 176 | skipping to change at line 186 | |||
* rzutowanie niezależne od rodzaju połączenia. | * rzutowanie niezależne od rodzaju połączenia. | |||
*/ | */ | |||
struct gg_common { | struct gg_common { | |||
gg_common_head(struct gg_common) | gg_common_head(struct gg_common) | |||
}; | }; | |||
struct gg_image_queue; | struct gg_image_queue; | |||
struct gg_dcc7; | struct gg_dcc7; | |||
struct gg_dcc7_relay; | ||||
/** | /** | |||
* Sposób rozwiązywania nazw serwerów. | * Sposób rozwiązywania nazw serwerów. | |||
*/ | */ | |||
typedef enum { | typedef enum { | |||
GG_RESOLVER_DEFAULT = 0, /**< Domyślny sposób rozwiązywania n azw (jeden z poniższych) */ | GG_RESOLVER_DEFAULT = 0, /**< Domyślny sposób rozwiązywania n azw (jeden z poniższych) */ | |||
GG_RESOLVER_FORK, /**< Rozwiązywanie nazw bazujące na procesach */ | GG_RESOLVER_FORK, /**< Rozwiązywanie nazw bazujące na procesach */ | |||
GG_RESOLVER_PTHREAD, /**< Rozwiązywanie nazw bazujące na wątkach */ | GG_RESOLVER_PTHREAD, /**< Rozwiązywanie nazw bazujące na wątkach */ | |||
GG_RESOLVER_CUSTOM, /**< Funkcje rozwiązywania nazw dost arczone przed aplikację */ | GG_RESOLVER_CUSTOM, /**< Funkcje rozwiązywania nazw dost arczone przed aplikację */ | |||
GG_RESOLVER_INVALID = -1 /**< Nieprawidłowy sposób rozwiązywa nia nazw (wynik \c gg_session_get_resolver) */ | GG_RESOLVER_INVALID = -1 /**< Nieprawidłowy sposób rozwiązywa nia nazw (wynik \c gg_session_get_resolver) */ | |||
} gg_resolver_t; | } gg_resolver_t; | |||
skipping to change at line 283 | skipping to change at line 295 | |||
int protocol_flags; /**< Flagi protokołu */ | int protocol_flags; /**< Flagi protokołu */ | |||
gg_encoding_t encoding; /**< Rodzaj kodowania znaków */ | gg_encoding_t encoding; /**< Rodzaj kodowania znaków */ | |||
gg_resolver_t resolver_type; /**< Sposób rozwiązywania nazw serwe rów */ | gg_resolver_t resolver_type; /**< Sposób rozwiązywania nazw serwe rów */ | |||
int (*resolver_start)(int *fd, void **private_data, const char *host name); /**< Funkcja rozpoczynająca rozwiązywanie nazwy */ | int (*resolver_start)(int *fd, void **private_data, const char *host name); /**< Funkcja rozpoczynająca rozwiązywanie nazwy */ | |||
void (*resolver_cleanup)(void **private_data, int force); /**< Funkcja zwalniająca zasoby po rozwiązaniu nazwy */ | void (*resolver_cleanup)(void **private_data, int force); /**< Funkcja zwalniająca zasoby po rozwiązaniu nazwy */ | |||
int protocol_features; /**< Opcje protokołu */ | int protocol_features; /**< Opcje protokołu */ | |||
int status_flags; /**< Flagi statusu */ | int status_flags; /**< Flagi statusu */ | |||
int recv_msg_count; /**< Liczba odebranych wiadomości */ | ||||
}; | }; | |||
/** | /** | |||
* Połączenie HTTP. | * Połączenie HTTP. | |||
* | * | |||
* Tworzone przez \c gg_http_connect(), zwalniane przez \c gg_http_free(). | * Tworzone przez \c gg_http_connect(), zwalniane przez \c gg_http_free(). | |||
* | * | |||
* \ingroup http | * \ingroup http | |||
*/ | */ | |||
struct gg_http { | struct gg_http { | |||
skipping to change at line 390 | skipping to change at line 403 | |||
int established; /**< Flaga ustanowienia połączenia */ | int established; /**< Flaga ustanowienia połączenia */ | |||
char *voice_buf; /**< Bufor na pakiet połączenia głosowego */ | char *voice_buf; /**< Bufor na pakiet połączenia głosowego */ | |||
int incoming; /**< Flaga połączenia przychodzącego */ | int incoming; /**< Flaga połączenia przychodzącego */ | |||
char *chunk_buf; /**< Bufor na fragment danych */ | char *chunk_buf; /**< Bufor na fragment danych */ | |||
uint32_t remote_addr; /**< Adres drugiej strony */ | uint32_t remote_addr; /**< Adres drugiej strony */ | |||
uint16_t remote_port; /**< Port drugiej strony */ | uint16_t remote_port; /**< Port drugiej strony */ | |||
}; | }; | |||
#define GG_DCC7_HASH_LEN 20 /**< Maksymalny rozmiar skrótu pliku w połączeniach bezpośrenich */ | #define GG_DCC7_HASH_LEN 20 /**< Maksymalny rozmiar skrótu pliku w połączeniach bezpośrenich */ | |||
#define GG_DCC7_FILENAME_LEN 255 /**< Maksymalny rozmiar nazwy pliku w połączeniach bezpośrednich */ | #define GG_DCC7_FILENAME_LEN 255 /**< Maksymalny rozmiar nazwy pliku w połączeniach bezpośrednich */ | |||
#define GG_DCC7_INFO_LEN 64 /**< Maksymalny rozmiar informacji o | #define GG_DCC7_INFO_LEN 32 /**< Maksymalny rozmiar informacji o | |||
połączeniach bezpośrednich */ | połączeniach bezpośrednich */ | |||
#define GG_DCC7_INFO_HASH_LEN 32 /**< Maksymalny rozmiar skrótu ip in | ||||
formacji o połączeniach bezpośrednich */ | ||||
/** | /** | |||
* Połączenie bezpośrednie od wersji Gadu-Gadu 7.x. | * Połączenie bezpośrednie od wersji Gadu-Gadu 7.x. | |||
* | * | |||
* \ingroup dcc7 | * \ingroup dcc7 | |||
*/ | */ | |||
struct gg_dcc7 { | struct gg_dcc7 { | |||
gg_common_head(struct gg_dcc7) | gg_common_head(struct gg_dcc7) | |||
gg_dcc7_id_t cid; /**< Identyfikator połączenia */ | gg_dcc7_id_t cid; /**< Identyfikator połączenia */ | |||
skipping to change at line 432 | skipping to change at line 446 | |||
uint32_t remote_addr; /**< Adres drugiej strony */ | uint32_t remote_addr; /**< Adres drugiej strony */ | |||
uint16_t remote_port; /**< Port drugiej strony */ | uint16_t remote_port; /**< Port drugiej strony */ | |||
struct gg_session *sess; | struct gg_session *sess; | |||
/**< Sesja do której przypisano połączenie * / | /**< Sesja do której przypisano połączenie * / | |||
struct gg_dcc7 *next; /**< Następne połączenie w liście */ | struct gg_dcc7 *next; /**< Następne połączenie w liście */ | |||
int soft_timeout; /**< Flaga mówiąca, że po przekroczeniu \c t imeout należy wywołać \c gg_dcc7_watch_fd() */ | int soft_timeout; /**< Flaga mówiąca, że po przekroczeniu \c t imeout należy wywołać \c gg_dcc7_watch_fd() */ | |||
int seek; /**< Flaga mówiąca, że można zmieniać położe nie w wysyłanym pliku */ | int seek; /**< Flaga mówiąca, że można zmieniać położe nie w wysyłanym pliku */ | |||
void *resolver; /**< Dane prywatne procesu lub wątku rozwiąz | ||||
ującego nazwę serwera */ | ||||
int relay; /**< Flaga mówiąca, że laczymy sie przez ser | ||||
wer */ | ||||
int relay_index; /**< Numer serwera pośredniczącego, do które | ||||
go się łączymy */ | ||||
int relay_count; /**< Rozmiar listy serwerów pośredniczących | ||||
*/ | ||||
struct gg_dcc7_relay *relay_list; /**< Lista serwerów pośredni | ||||
czących */ | ||||
}; | }; | |||
/** | /** | |||
* Rodzaj sesji. | * Rodzaj sesji. | |||
*/ | */ | |||
enum gg_session_t { | enum gg_session_t { | |||
GG_SESSION_GG = 1, /**< Połączenie z serwerem Gadu-Gadu */ | GG_SESSION_GG = 1, /**< Połączenie z serwerem Gadu-Gadu */ | |||
GG_SESSION_HTTP, /**< Połączenie HTTP */ | GG_SESSION_HTTP, /**< Połączenie HTTP */ | |||
GG_SESSION_SEARCH, /**< Wyszukiwanie w katalogu publicznym (nie aktualne) */ | GG_SESSION_SEARCH, /**< Wyszukiwanie w katalogu publicznym (nie aktualne) */ | |||
GG_SESSION_REGISTER, /**< Rejestracja nowego konta */ | GG_SESSION_REGISTER, /**< Rejestracja nowego konta */ | |||
skipping to change at line 527 | skipping to change at line 548 | |||
GG_STATE_READING_TYPE, /* czeka na typ połączenia */ | GG_STATE_READING_TYPE, /* czeka na typ połączenia */ | |||
/* nowe. bez sensu jest to API. */ | /* nowe. bez sensu jest to API. */ | |||
GG_STATE_TLS_NEGOTIATION, /**< Negocjacja połączenia szyfrowan ego */ | GG_STATE_TLS_NEGOTIATION, /**< Negocjacja połączenia szyfrowan ego */ | |||
GG_STATE_REQUESTING_ID, /**< Oczekiwanie na nadanie identyfi katora połączenia bezpośredniego */ | GG_STATE_REQUESTING_ID, /**< Oczekiwanie na nadanie identyfi katora połączenia bezpośredniego */ | |||
GG_STATE_WAITING_FOR_ACCEPT, /**< Oczekiwanie na potwierdzenie lu b odrzucenie połączenia bezpośredniego */ | GG_STATE_WAITING_FOR_ACCEPT, /**< Oczekiwanie na potwierdzenie lu b odrzucenie połączenia bezpośredniego */ | |||
GG_STATE_WAITING_FOR_INFO, /**< Oczekiwanie na informacje o poł ączeniu bezpośrednim */ | GG_STATE_WAITING_FOR_INFO, /**< Oczekiwanie na informacje o poł ączeniu bezpośrednim */ | |||
GG_STATE_READING_ID, /**< Odebranie identyfikatora połącz enia bezpośredniego */ | GG_STATE_READING_ID, /**< Odebranie identyfikatora połącz enia bezpośredniego */ | |||
GG_STATE_SENDING_ID /**< Wysłano identyfikatora połączen | GG_STATE_SENDING_ID, /**< Wysłano identyfikator połączeni | |||
ia bezpośredniego */ | a bezpośredniego */ | |||
GG_STATE_RESOLVING_GG, /**< Oczekiwanie na rozwiązanie nazw | ||||
y serwera Gadu-Gadu */ | ||||
GG_STATE_RESOLVING_RELAY, /**< Oczekiwanie na rozwiązanie nazw | ||||
y serwera pośredniczącego */ | ||||
GG_STATE_CONNECTING_RELAY, /**< Oczekiwanie na połączenie z ser | ||||
werem pośredniczącym */ | ||||
GG_STATE_READING_RELAY, /**< Odbieranie danych */ | ||||
GG_STATE_DISCONNECTING, /**< Oczekiwanie na potwierdzenie ro | ||||
złączenia */ | ||||
}; | }; | |||
/** | /** | |||
* Informacja o tym, czy biblioteka chce zapisywać i/lub czytać | * Informacja o tym, czy biblioteka chce zapisywać i/lub czytać | |||
* z deskryptora. Maska bitowa. | * z deskryptora. Maska bitowa. | |||
* | * | |||
* \ingroup events | * \ingroup events | |||
*/ | */ | |||
enum gg_check_t { | enum gg_check_t { | |||
GG_CHECK_NONE = 0, /**< Nie sprawdzaj niczego */ | GG_CHECK_NONE = 0, /**< Nie sprawdzaj niczego */ | |||
skipping to change at line 605 | skipping to change at line 633 | |||
int gg_change_status_flags(struct gg_session *sess, int flags); | int gg_change_status_flags(struct gg_session *sess, int flags); | |||
int gg_send_message(struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message); | int gg_send_message(struct gg_session *sess, int msgclass, uin_t recipient, const unsigned char *message); | |||
int gg_send_message_richtext(struct gg_session *sess, int msgclass, uin_t r ecipient, const unsigned char *message, const unsigned char *format, int fo rmatlen); | int gg_send_message_richtext(struct gg_session *sess, int msgclass, uin_t r ecipient, const unsigned char *message, const unsigned char *format, int fo rmatlen); | |||
int gg_send_message_confer(struct gg_session *sess, int msgclass, int recip ients_count, uin_t *recipients, const unsigned char *message); | int gg_send_message_confer(struct gg_session *sess, int msgclass, int recip ients_count, uin_t *recipients, const unsigned char *message); | |||
int gg_send_message_confer_richtext(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message, cons t unsigned char *format, int formatlen); | int gg_send_message_confer_richtext(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *message, cons t unsigned char *format, int formatlen); | |||
int gg_send_message_ctcp(struct gg_session *sess, int msgclass, uin_t recip ient, const unsigned char *message, int message_len); | int gg_send_message_ctcp(struct gg_session *sess, int msgclass, uin_t recip ient, const unsigned char *message, int message_len); | |||
int gg_ping(struct gg_session *sess); | int gg_ping(struct gg_session *sess); | |||
int gg_userlist_request(struct gg_session *sess, char type, const char *req uest); | int gg_userlist_request(struct gg_session *sess, char type, const char *req uest); | |||
int gg_image_request(struct gg_session *sess, uin_t recipient, int size, ui nt32_t crc32); | int gg_image_request(struct gg_session *sess, uin_t recipient, int size, ui nt32_t crc32); | |||
int gg_image_reply(struct gg_session *sess, uin_t recipient, const char *fi lename, const char *image, int size); | int gg_image_reply(struct gg_session *sess, uin_t recipient, const char *fi lename, const char *image, int size); | |||
int gg_typing_notification(struct gg_session *sess, uin_t recipient, int le ngth); | ||||
uint32_t gg_crc32(uint32_t crc, const unsigned char *buf, int len); | uint32_t gg_crc32(uint32_t crc, const unsigned char *buf, int len); | |||
int gg_session_set_resolver(struct gg_session *gs, gg_resolver_t type); | int gg_session_set_resolver(struct gg_session *gs, gg_resolver_t type); | |||
gg_resolver_t gg_session_get_resolver(struct gg_session *gs); | gg_resolver_t gg_session_get_resolver(struct gg_session *gs); | |||
int gg_session_set_custom_resolver(struct gg_session *gs, int (*resolver_st art)(int*, void**, const char*), void (*resolver_cleanup)(void**, int)); | int gg_session_set_custom_resolver(struct gg_session *gs, int (*resolver_st art)(int*, void**, const char*), void (*resolver_cleanup)(void**, int)); | |||
int gg_http_set_resolver(struct gg_http *gh, gg_resolver_t type); | int gg_http_set_resolver(struct gg_http *gh, gg_resolver_t type); | |||
gg_resolver_t gg_http_get_resolver(struct gg_http *gh); | gg_resolver_t gg_http_get_resolver(struct gg_http *gh); | |||
int gg_http_set_custom_resolver(struct gg_http *gh, int (*resolver_start)(i nt*, void**, const char*), void (*resolver_cleanup)(void**, int)); | int gg_http_set_custom_resolver(struct gg_http *gh, int (*resolver_start)(i nt*, void**, const char*), void (*resolver_cleanup)(void**, int)); | |||
int gg_global_set_resolver(gg_resolver_t type); | int gg_global_set_resolver(gg_resolver_t type); | |||
gg_resolver_t gg_global_get_resolver(void); | gg_resolver_t gg_global_get_resolver(void); | |||
int gg_global_set_custom_resolver(int (*resolver_start)(int*, void**, const char*), void (*resolver_cleanup)(void**, int)); | int gg_global_set_custom_resolver(int (*resolver_start)(int*, void**, const char*), void (*resolver_cleanup)(void**, int)); | |||
int gg_multilogon_disconnect(struct gg_session *gs, gg_multilogon_id_t conn | ||||
_id); | ||||
/** | /** | |||
* Rodzaj zdarzenia. | * Rodzaj zdarzenia. | |||
* | * | |||
* \ingroup events | * \ingroup events | |||
*/ | */ | |||
enum gg_event_t { | enum gg_event_t { | |||
GG_EVENT_NONE = 0, /**< Nie wydarzyło się nic wartego u wagi */ | GG_EVENT_NONE = 0, /**< Nie wydarzyło się nic wartego u wagi */ | |||
GG_EVENT_MSG, /**< \brief Otrzymano wiadomość. Prz ekazuje również wiadomości systemowe od numeru 0. */ | GG_EVENT_MSG, /**< \brief Otrzymano wiadomość. Prz ekazuje również wiadomości systemowe od numeru 0. */ | |||
GG_EVENT_NOTIFY, /**< \brief Informacja o statusach o sób z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, jeśli planu je się używać protokołu w wersji starszej niż domyślna. Ostatni element tab licy zawiera uin równy 0, a pozostałe pola są niezainicjowane. */ | GG_EVENT_NOTIFY, /**< \brief Informacja o statusach o sób z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, jeśli planu je się używać protokołu w wersji starszej niż domyślna. Ostatni element tab licy zawiera uin równy 0, a pozostałe pola są niezainicjowane. */ | |||
GG_EVENT_NOTIFY_DESCR, /**< \brief Informacja o statusie op isowym osoby z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, je śli planuje się używać protokołu w wersji starszej niż domyślna. */ | GG_EVENT_NOTIFY_DESCR, /**< \brief Informacja o statusie op isowym osoby z listy kontaktów (przed 6.0). Zdarzenie należy obsługiwać, je śli planuje się używać protokołu w wersji starszej niż domyślna. */ | |||
skipping to change at line 652 | skipping to change at line 683 | |||
GG_EVENT_DCC_NEED_FILE_INFO, /**< Należy wypełnić \c file_info dl a połączenia bezpośredniego (6.x) */ | GG_EVENT_DCC_NEED_FILE_INFO, /**< Należy wypełnić \c file_info dl a połączenia bezpośredniego (6.x) */ | |||
GG_EVENT_DCC_NEED_FILE_ACK, /**< Czeka na potwierdzenie pliku w połączeniu bezpośrednim (6.x) */ | GG_EVENT_DCC_NEED_FILE_ACK, /**< Czeka na potwierdzenie pliku w połączeniu bezpośrednim (6.x) */ | |||
GG_EVENT_DCC_NEED_VOICE_ACK, /**< Czeka na potwierdzenie rozmowy w połączeniu bezpośrednim (6.x) */ | GG_EVENT_DCC_NEED_VOICE_ACK, /**< Czeka na potwierdzenie rozmowy w połączeniu bezpośrednim (6.x) */ | |||
GG_EVENT_DCC_VOICE_DATA, /**< Dane bezpośredniego połączenia głosowego (6.x) */ | GG_EVENT_DCC_VOICE_DATA, /**< Dane bezpośredniego połączenia głosowego (6.x) */ | |||
GG_EVENT_PUBDIR50_SEARCH_REPLY, /**< Odpowiedź katalogu publicznego */ | GG_EVENT_PUBDIR50_SEARCH_REPLY, /**< Odpowiedź katalogu publicznego */ | |||
GG_EVENT_PUBDIR50_READ, /**< Odczytano własne dane z katalog u publicznego */ | GG_EVENT_PUBDIR50_READ, /**< Odczytano własne dane z katalog u publicznego */ | |||
GG_EVENT_PUBDIR50_WRITE, /**< Zmieniono własne dane w katalog u publicznym */ | GG_EVENT_PUBDIR50_WRITE, /**< Zmieniono własne dane w katalog u publicznym */ | |||
GG_EVENT_STATUS60, /**< Zmiana statusu osoby z listy ko ntaktów */ | GG_EVENT_STATUS60, /**< Zmiana statusu osoby z listy ko ntaktów */ | |||
GG_EVENT_NOTIFY60, /**< Informacja o statusach osób z l isty kontaktów. Ostatni element tablicy zawiera uin równy 0, a pozostałe po la są niezainicjowane. */ | GG_EVENT_NOTIFY60, /**< Informacja o statusach osób z l isty kontaktów. Ostatni element tablicy zawiera uin równy 0, a pozostałe po la są niezainicjowane. */ | |||
GG_EVENT_USERLIST, /**< Wynik importu lub eksportu list y kontaktów */ | GG_EVENT_USERLIST, /**< Wynik importu lub eksportu list y kontaktów */ | |||
GG_EVENT_IMAGE_REQUEST, /**< Żądanie przesłania obrazka z wi adomości */ | GG_EVENT_IMAGE_REQUEST, /**< Żądanie przesłania obrazka z wi adomości */ | |||
GG_EVENT_IMAGE_REPLY, /**< Przysłano obrazek z wiadomości */ | GG_EVENT_IMAGE_REPLY, /**< Przysłano obrazek z wiadomości */ | |||
GG_EVENT_DCC_ACK, /**< Potwierdzenie transmisji w połą czeniu bezpośrednim (6.x) */ | GG_EVENT_DCC_ACK, /**< Potwierdzenie transmisji w połą czeniu bezpośrednim (6.x) */ | |||
GG_EVENT_DCC7_NEW, /**< Nowe połączenie bezpośrednie (7 .x) */ | GG_EVENT_DCC7_NEW, /**< Nowe połączenie bezpośrednie (7 .x) */ | |||
GG_EVENT_DCC7_ACCEPT, /**< Zaakceptowano połączenie bezpoś rednie (7.x), nowy deskryptor */ | GG_EVENT_DCC7_ACCEPT, /**< Zaakceptowano połączenie bezpoś rednie (7.x), nowy deskryptor */ | |||
GG_EVENT_DCC7_REJECT, /**< Odrzucono połączenie bezpośredn ie (7.x) */ | GG_EVENT_DCC7_REJECT, /**< Odrzucono połączenie bezpośredn ie (7.x) */ | |||
GG_EVENT_DCC7_CONNECTED, /**< Zestawiono połączenie bezpośred nie (7.x), nowy deskryptor */ | GG_EVENT_DCC7_CONNECTED, /**< Zestawiono połączenie bezpośred nie (7.x), nowy deskryptor */ | |||
GG_EVENT_DCC7_ERROR, /**< Błąd połączenia bezpośredniego (7.x) */ | GG_EVENT_DCC7_ERROR, /**< Błąd połączenia bezpośredniego (7.x) */ | |||
GG_EVENT_DCC7_DONE, /**< Zakończono połączenie bezpośred nie (7.x) */ | GG_EVENT_DCC7_DONE, /**< Zakończono połączenie bezpośred nie (7.x) */ | |||
GG_EVENT_DCC7_PENDING, /**< Trwa próba połączenia bezpośred niego (7.x), nowy deskryptor */ | GG_EVENT_DCC7_PENDING, /**< Trwa próba połączenia bezpośred niego (7.x), nowy deskryptor */ | |||
GG_EVENT_XML_EVENT, /**< Otrzymano komunikat systemowy ( 7.7) */ | GG_EVENT_XML_EVENT, /**< Otrzymano komunikat systemowy ( 7.7) */ | |||
GG_EVENT_DISCONNECT_ACK, /**< \brief Potwierdzenie zakończeni a sesji. Informuje o tym, że zmiana stanu na niedostępny z opisem dotarła d o serwera i można zakończyć połączenie TCP. */ | GG_EVENT_DISCONNECT_ACK, /**< \brief Potwierdzenie zakończeni a sesji. Informuje o tym, że zmiana stanu na niedostępny z opisem dotarła d o serwera i można zakończyć połączenie TCP. */ | |||
GG_EVENT_TYPING_NOTIFICATION, /**< Powiadomienie o pisaniu */ | ||||
GG_EVENT_USER_DATA, /**< Informacja o kontaktach */ | ||||
GG_EVENT_MULTILOGON_MSG, /**< Wiadomość wysłana z innej sesji | ||||
multilogowania */ | ||||
GG_EVENT_MULTILOGON_INFO, /**< Informacja o innych sesjach mul | ||||
tilogowania */ | ||||
}; | }; | |||
#define GG_EVENT_SEARCH50_REPLY GG_EVENT_PUBDIR50_SEARCH_REPLY | #define GG_EVENT_SEARCH50_REPLY GG_EVENT_PUBDIR50_SEARCH_REPLY | |||
/** | /** | |||
* Powód nieudanego połączenia. | * Powód nieudanego połączenia. | |||
*/ | */ | |||
enum gg_failure_t { | enum gg_failure_t { | |||
GG_FAILURE_RESOLVING = 1, /**< Nie znaleziono serwera */ | GG_FAILURE_RESOLVING = 1, /**< Nie znaleziono serwera */ | |||
GG_FAILURE_CONNECTING, /**< Błąd połączenia */ | GG_FAILURE_CONNECTING, /**< Błąd połączenia */ | |||
skipping to change at line 712 | skipping to change at line 747 | |||
GG_ERROR_DCC_HANDSHAKE, /**< Błąd negocjacji */ | GG_ERROR_DCC_HANDSHAKE, /**< Błąd negocjacji */ | |||
GG_ERROR_DCC_FILE, /**< Błąd odczytu/zapisu pliku */ | GG_ERROR_DCC_FILE, /**< Błąd odczytu/zapisu pliku */ | |||
GG_ERROR_DCC_EOF, /**< Przedwczesny koniec pliku */ | GG_ERROR_DCC_EOF, /**< Przedwczesny koniec pliku */ | |||
GG_ERROR_DCC_NET, /**< Błąd wysyłania/odbierania */ | GG_ERROR_DCC_NET, /**< Błąd wysyłania/odbierania */ | |||
GG_ERROR_DCC_REFUSED, /**< Połączenie odrzucone */ | GG_ERROR_DCC_REFUSED, /**< Połączenie odrzucone */ | |||
GG_ERROR_DCC7_HANDSHAKE, /**< Błąd negocjacji */ | GG_ERROR_DCC7_HANDSHAKE, /**< Błąd negocjacji */ | |||
GG_ERROR_DCC7_FILE, /**< Błąd odczytu/zapisu pliku */ | GG_ERROR_DCC7_FILE, /**< Błąd odczytu/zapisu pliku */ | |||
GG_ERROR_DCC7_EOF, /**< Przedwczesny koniec pliku */ | GG_ERROR_DCC7_EOF, /**< Przedwczesny koniec pliku */ | |||
GG_ERROR_DCC7_NET, /**< Błąd wysyłania/odbierania */ | GG_ERROR_DCC7_NET, /**< Błąd wysyłania/odbierania */ | |||
GG_ERROR_DCC7_REFUSED /**< Połączenie odrzucone */ | GG_ERROR_DCC7_REFUSED, /**< Połączenie odrzucone */ | |||
GG_ERROR_DCC7_RELAY, /**< Problem z serwerem pośrednicząc | ||||
ym */ | ||||
}; | }; | |||
/** | /** | |||
* Pole zapytania lub odpowiedzi katalogu publicznego. | * Pole zapytania lub odpowiedzi katalogu publicznego. | |||
*/ | */ | |||
struct gg_pubdir50_entry { | struct gg_pubdir50_entry { | |||
int num; /**< Numer wyniku */ | int num; /**< Numer wyniku */ | |||
char *field; /**< Nazwa pola */ | char *field; /**< Nazwa pola */ | |||
char *value; /**< Wartość pola */ | char *value; /**< Wartość pola */ | |||
} /* GG_DEPRECATED */; | } /* GG_DEPRECATED */; | |||
skipping to change at line 747 | skipping to change at line 783 | |||
/** | /** | |||
* Zapytanie lub odpowiedź katalogu publicznego. | * Zapytanie lub odpowiedź katalogu publicznego. | |||
* | * | |||
* Do pól nie należy się odwoływać bezpośrednio -- wszystkie niezbędne | * Do pól nie należy się odwoływać bezpośrednio -- wszystkie niezbędne | |||
* informacje są dostępne za pomocą funkcji \c gg_pubdir50_* | * informacje są dostępne za pomocą funkcji \c gg_pubdir50_* | |||
*/ | */ | |||
typedef struct gg_pubdir50_s *gg_pubdir50_t; | typedef struct gg_pubdir50_s *gg_pubdir50_t; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_MSG. | * Opis zdarzeń \c GG_EVENT_MSG i \c GG_EVENT_MULTILOGON_MSG. | |||
*/ | */ | |||
struct gg_event_msg { | struct gg_event_msg { | |||
uin_t sender; /**< Numer nadawcy */ | uin_t sender; /**< Numer nadawcy/odbiorcy */ | |||
int msgclass; /**< Klasa wiadomości */ | int msgclass; /**< Klasa wiadomości */ | |||
time_t time; /**< Czas nadania */ | time_t time; /**< Czas nadania */ | |||
unsigned char *message; /**< Treść wiadomości */ | unsigned char *message; /**< Treść wiadomości */ | |||
int recipients_count; /**< Liczba odbiorców konferencji */ | int recipients_count; /**< Liczba odbiorców konferencji */ | |||
uin_t *recipients; /**< Odbiorcy konferencji */ | uin_t *recipients; /**< Odbiorcy konferencji */ | |||
int formats_length; /**< Długość informacji o formatowaniu tekst u */ | int formats_length; /**< Długość informacji o formatowaniu tekst u */ | |||
void *formats; /**< Informacje o formatowaniu tekstu */ | void *formats; /**< Informacje o formatowaniu tekstu */ | |||
uint32_t seq; /**< Numer sekwencyjny wiadomości */ | uint32_t seq; /**< Numer sekwencyjny wiadomości */ | |||
skipping to change at line 902 | skipping to change at line 938 | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_DCC7_DONE. | * Opis zdarzenia \c GG_EVENT_DCC7_DONE. | |||
*/ | */ | |||
struct gg_event_dcc7_done { | struct gg_event_dcc7_done { | |||
struct gg_dcc7 *dcc7; /**< Struktura połączenia */ | struct gg_dcc7 *dcc7; /**< Struktura połączenia */ | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_TYPING_NOTIFICATION. | ||||
*/ | ||||
struct gg_event_typing_notification { | ||||
uin_t uin; /**< Numer rozmówcy */ | ||||
int length; /**< Długość tekstu */ | ||||
}; | ||||
/** | ||||
* Atrybut użytkownika. | ||||
*/ | ||||
struct gg_event_user_data_attr { | ||||
int type; /**< Typ atrybutu */ | ||||
char *key; /**< Klucz */ | ||||
char *value; /**< Wartość */ | ||||
}; | ||||
/** | ||||
* Struktura opisująca kontakt w zdarzeniu GG_EVENT_USER_DATA. | ||||
*/ | ||||
struct gg_event_user_data_user { | ||||
uin_t uin; /**< Numer kontaktu */ | ||||
size_t attr_count; /**< Liczba atrybutów */ | ||||
struct gg_event_user_data_attr *attrs; /**< Lista atrybutów */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_USER_DATA. | ||||
*/ | ||||
struct gg_event_user_data { | ||||
int type; /**< Rodzaj informacji o kontaktach */ | ||||
size_t user_count; /**< Liczba kontaktów */ | ||||
struct gg_event_user_data_user *users; /**< Lista kontaktów */ | ||||
}; | ||||
/** | ||||
* Struktura opisująca sesję multilogowania. | ||||
*/ | ||||
struct gg_multilogon_session { | ||||
gg_multilogon_id_t id; /**< Identyfikator sesji */ | ||||
char *name; /**< Nazwa sesji (podana w \c gg_log | ||||
in_params.client_version) */ | ||||
uint32_t remote_addr; /**< Adres sesji */ | ||||
int status_flags; /**< Flagi statusu sesji */ | ||||
int protocol_features; /**< Opcje protokolu sesji */ | ||||
time_t logon_time; /**< Czas zalogowania */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_MULTILOGON_INFO. | ||||
*/ | ||||
struct gg_event_multilogon_info { | ||||
int count; /**< Liczba sesji */ | ||||
struct gg_multilogon_session *sessions; /** Lista sesji */ | ||||
}; | ||||
/** | ||||
* Unia wszystkich zdarzeń zwracanych przez funkcje \c gg_watch_fd(), | * Unia wszystkich zdarzeń zwracanych przez funkcje \c gg_watch_fd(), | |||
* \c gg_dcc_watch_fd() i \c gg_dcc7_watch_fd(). | * \c gg_dcc_watch_fd() i \c gg_dcc7_watch_fd(). | |||
* | * | |||
* \ingroup events | * \ingroup events | |||
*/ | */ | |||
union gg_event_union { | union gg_event_union { | |||
enum gg_failure_t failure; /**< Błąd połączenia (\c GG_EVENT_CO NN_FAILED) */ | enum gg_failure_t failure; /**< Błąd połączenia (\c GG_EVENT_CO NN_FAILED) */ | |||
struct gg_notify_reply *notify; /**< Zmiana statusu kontaktów (\c GG _EVENT_NOTIFY) */ | struct gg_notify_reply *notify; /**< Zmiana statusu kontaktów (\c GG _EVENT_NOTIFY) */ | |||
struct gg_event_notify_descr notify_descr; /**< Zmiana statusu kontaktów (\c GG_EVENT_NOTIFY_DESCR) */ | struct gg_event_notify_descr notify_descr; /**< Zmiana statusu kontaktów (\c GG_EVENT_NOTIFY_DESCR) */ | |||
struct gg_event_status status; /**< Zmiana statusu kontaktów (\c GG _EVENT_STATUS) */ | struct gg_event_status status; /**< Zmiana statusu kontaktów (\c GG _EVENT_STATUS) */ | |||
skipping to change at line 931 | skipping to change at line 1022 | |||
struct gg_dcc *dcc_new; /**< Nowe połączenie bezpośrednie (\c GG_EVE NT_DCC_NEW) */ | struct gg_dcc *dcc_new; /**< Nowe połączenie bezpośrednie (\c GG_EVE NT_DCC_NEW) */ | |||
enum gg_error_t dcc_error; /**< Błąd połączenia bezpośredniego (\c GG_EVENT_DCC_ERROR) */ | enum gg_error_t dcc_error; /**< Błąd połączenia bezpośredniego (\c GG_EVENT_DCC_ERROR) */ | |||
struct gg_event_dcc_voice_data dcc_voice_data; /**< Dane połączenia głosowego (\c GG_EVENT_DCC_VOICE_DATA) */ | struct gg_event_dcc_voice_data dcc_voice_data; /**< Dane połączenia głosowego (\c GG_EVENT_DCC_VOICE_DATA) */ | |||
struct gg_dcc7 *dcc7_new; /**< Nowe połączenie bezpośrednie (\ c GG_EVENT_DCC7_NEW) */ | struct gg_dcc7 *dcc7_new; /**< Nowe połączenie bezpośrednie (\ c GG_EVENT_DCC7_NEW) */ | |||
enum gg_error_t dcc7_error; /**< Błąd połączenia bezpośredniego (\c GG_EVENT_DCC7_ERROR) */ | enum gg_error_t dcc7_error; /**< Błąd połączenia bezpośredniego (\c GG_EVENT_DCC7_ERROR) */ | |||
struct gg_event_dcc7_connected dcc7_connected; /**< Informacja o ze stawieniu połączenia bezpośredniego (\c GG_EVENT_DCC7_CONNECTED) */ | struct gg_event_dcc7_connected dcc7_connected; /**< Informacja o ze stawieniu połączenia bezpośredniego (\c GG_EVENT_DCC7_CONNECTED) */ | |||
struct gg_event_dcc7_pending dcc7_pending; /**< Trwa próba połą czenia bezpośredniego (\c GG_EVENT_DCC7_PENDING) */ | struct gg_event_dcc7_pending dcc7_pending; /**< Trwa próba połą czenia bezpośredniego (\c GG_EVENT_DCC7_PENDING) */ | |||
struct gg_event_dcc7_reject dcc7_reject; /**< Odrzucono połąc zenia bezpośredniego (\c GG_EVENT_DCC7_REJECT) */ | struct gg_event_dcc7_reject dcc7_reject; /**< Odrzucono połąc zenia bezpośredniego (\c GG_EVENT_DCC7_REJECT) */ | |||
struct gg_event_dcc7_accept dcc7_accept; /**< Zaakceptowano p ołączenie bezpośrednie (\c GG_EVENT_DCC7_ACCEPT) */ | struct gg_event_dcc7_accept dcc7_accept; /**< Zaakceptowano p ołączenie bezpośrednie (\c GG_EVENT_DCC7_ACCEPT) */ | |||
struct gg_event_dcc7_done dcc7_done; /**< Zakończono połączenie b ezpośrednie (\c GG_EVENT_DCC7_DONE) */ | struct gg_event_dcc7_done dcc7_done; /**< Zakończono połączenie b ezpośrednie (\c GG_EVENT_DCC7_DONE) */ | |||
struct gg_event_typing_notification typing_notification; /**< | ||||
Powiadomienie o pisaniu */ | ||||
struct gg_event_user_data user_data; /**< Informacje o kontaktach | ||||
*/ | ||||
struct gg_event_msg multilogon_msg; /**< Inna sesja wysłała wiad | ||||
omość (\c GG_EVENT_MULTILOGON_MSG) */ | ||||
struct gg_event_multilogon_info multilogon_info; /**< Informa | ||||
cja o innych sesjach multilogowania (\c GG_EVENT_MULTILOGON_INFO) */ | ||||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia. | * Opis zdarzenia. | |||
* | * | |||
* Zwracany przez funkcje \c gg_watch_fd(), \c gg_dcc_watch_fd() | * Zwracany przez funkcje \c gg_watch_fd(), \c gg_dcc_watch_fd() | |||
* i \c gg_dcc7_watch_fd(). Po przeanalizowaniu należy zwolnić | * i \c gg_dcc7_watch_fd(). Po przeanalizowaniu należy zwolnić | |||
* za pomocą \c gg_event_free(). | * za pomocą \c gg_event_free(). | |||
* | * | |||
* \ingroup events | * \ingroup events | |||
skipping to change at line 1349 | skipping to change at line 1444 | |||
uin_t sender; /**< Nadawca obrazka */ | uin_t sender; /**< Nadawca obrazka */ | |||
uint32_t size; /**< Rozmiar obrazka */ | uint32_t size; /**< Rozmiar obrazka */ | |||
uint32_t crc32; /**< Suma kontrolna CRC32 */ | uint32_t crc32; /**< Suma kontrolna CRC32 */ | |||
char *filename; /**< Nazwa pliku */ | char *filename; /**< Nazwa pliku */ | |||
char *image; /**< Bufor z odebranymi danymi */ | char *image; /**< Bufor z odebranymi danymi */ | |||
uint32_t done; /**< Rozmiar odebranych danych */ | uint32_t done; /**< Rozmiar odebranych danych */ | |||
struct gg_image_queue *next; /**< Kolejny element listy */ | struct gg_image_queue *next; /**< Kolejny element listy */ | |||
} GG_DEPRECATED; | } GG_DEPRECATED; | |||
int gg_dcc7_handle_id(struct gg_session *sess, struct gg_event *e, void *pa | int gg_dcc7_handle_id(struct gg_session *sess, struct gg_event *e, const vo | |||
yload, int len) GG_DEPRECATED; | id *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_new(struct gg_session *sess, struct gg_event *e, void *p | int gg_dcc7_handle_new(struct gg_session *sess, struct gg_event *e, const v | |||
ayload, int len) GG_DEPRECATED; | oid *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_info(struct gg_session *sess, struct gg_event *e, void * | int gg_dcc7_handle_info(struct gg_session *sess, struct gg_event *e, const | |||
payload, int len) GG_DEPRECATED; | void *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_accept(struct gg_session *sess, struct gg_event *e, void | int gg_dcc7_handle_accept(struct gg_session *sess, struct gg_event *e, cons | |||
*payload, int len) GG_DEPRECATED; | t void *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_reject(struct gg_session *sess, struct gg_event *e, void | int gg_dcc7_handle_reject(struct gg_session *sess, struct gg_event *e, cons | |||
*payload, int len) GG_DEPRECATED; | t void *payload, int len) GG_DEPRECATED; | |||
#define GG_APPMSG_HOST "appmsg.gadu-gadu.pl" | #define GG_APPMSG_HOST "appmsg.gadu-gadu.pl" | |||
#define GG_APPMSG_PORT 80 | #define GG_APPMSG_PORT 80 | |||
#define GG_PUBDIR_HOST "pubdir.gadu-gadu.pl" | #define GG_PUBDIR_HOST "pubdir.gadu-gadu.pl" | |||
#define GG_PUBDIR_PORT 80 | #define GG_PUBDIR_PORT 80 | |||
#define GG_REGISTER_HOST "register.gadu-gadu.pl" | #define GG_REGISTER_HOST "register.gadu-gadu.pl" | |||
#define GG_REGISTER_PORT 80 | #define GG_REGISTER_PORT 80 | |||
#define GG_REMIND_HOST "retr.gadu-gadu.pl" | #define GG_REMIND_HOST "retr.gadu-gadu.pl" | |||
#define GG_REMIND_PORT 80 | #define GG_REMIND_PORT 80 | |||
#define GG_RELAY_HOST "relay.gadu-gadu.pl" | ||||
#define GG_RELAY_PORT 80 | ||||
#define GG_DEFAULT_PORT 8074 | #define GG_DEFAULT_PORT 8074 | |||
#define GG_HTTPS_PORT 443 | #define GG_HTTPS_PORT 443 | |||
#define GG_HTTP_USERAGENT "Mozilla/4.7 [en] (Win98; I)" | #define GG_HTTP_USERAGENT "Mozilla/4.7 [en] (Win98; I)" | |||
#define GG_DEFAULT_CLIENT_VERSION "8.0.0.7669" | #define GG_DEFAULT_CLIENT_VERSION "10.1.0.11070" | |||
#define GG_DEFAULT_PROTOCOL_VERSION 0x2e | #define GG_DEFAULT_PROTOCOL_VERSION 0x2e | |||
#define GG_DEFAULT_TIMEOUT 30 | #define GG_DEFAULT_TIMEOUT 30 | |||
#define GG_HAS_AUDIO_MASK 0x40000000 | #define GG_HAS_AUDIO_MASK 0x40000000 | |||
#define GG_HAS_AUDIO7_MASK 0x20000000 | #define GG_HAS_AUDIO7_MASK 0x20000000 | |||
#define GG_ERA_OMNIX_MASK 0x04000000 | #define GG_ERA_OMNIX_MASK 0x04000000 | |||
#define GG_LIBGADU_VERSION "1.9.1" | #define GG_LIBGADU_VERSION "1.10.0" | |||
#ifndef DOXYGEN | #ifndef DOXYGEN | |||
#define GG_FEATURE_MSG77 0x0001 | #define GG_FEATURE_MSG77 0x0001 | |||
#define GG_FEATURE_STATUS77 0x0002 | #define GG_FEATURE_STATUS77 0x0002 | |||
#define GG_FEATURE_UNKNOWN_4 0x0004 | #define GG_FEATURE_UNKNOWN_4 0x0004 | |||
#define GG_FEATURE_UNKNOWN_8 0x0008 | #define GG_FEATURE_UNKNOWN_8 0x0008 | |||
#define GG_FEATURE_DND_FFC 0x0010 | #define GG_FEATURE_DND_FFC 0x0010 | |||
#define GG_FEATURE_IMAGE_DESCR 0x0020 | #define GG_FEATURE_IMAGE_DESCR 0x0020 | |||
#define GG_FEATURE_UNKNOWN_40 0x0040 | ||||
#define GG_FEATURE_UNKNOWN_80 0x0080 | ||||
#define GG_FEATURE_UNKNOWN_100 0x0100 | ||||
#define GG_FEATURE_USER_DATA 0x0200 | ||||
#define GG_FEATURE_MSG_ACK 0x0400 | ||||
#define GG_FEATURE_UNKNOWN_800 0x0800 | ||||
#define GG_FEATURE_UNKNOWN_1000 0x1000 | ||||
#define GG_FEATURE_TYPING_NOTIFICATION 0x2000 | ||||
#define GG_FEATURE_MULTILOGON 0x4000 | ||||
/* Poniższe makra zostały zachowane dla zgodności API */ | /* Poniższe makra zostały zachowane dla zgodności API */ | |||
#define GG_FEATURE_MSG80 0 | #define GG_FEATURE_MSG80 0 | |||
#define GG_FEATURE_STATUS80 0 | #define GG_FEATURE_STATUS80 0 | |||
#define GG_FEATURE_STATUS80BETA 0 | #define GG_FEATURE_STATUS80BETA 0 | |||
#define GG_FEATURE_ALL (GG_FEATURE_MSG80 | GG_FEATURE_STATU | ||||
S80 | GG_FEATURE_DND_FFC | GG_FEATURE_IMAGE_DESCR) | #define GG_FEATURE_ALL (GG_FEATURE_MSG80 | GG_FEATURE_STATU | |||
S80 | GG_FEATURE_DND_FFC | GG_FEATURE_IMAGE_DESCR | GG_FEATURE_UNKNOWN_100 | ||||
| GG_FEATURE_USER_DATA | GG_FEATURE_MSG_ACK | GG_FEATURE_TYPING_NOTIFICATIO | ||||
N) | ||||
#else | #else | |||
/** | /** | |||
* \ingroup login | * \ingroup login | |||
* | * | |||
* Flagi opcji protokołu. | * Flagi opcji protokołu. | |||
*/ | */ | |||
enum { | enum { | |||
GG_FEATURE_MSG77, /**< Klient życzy sobie otrzymywać wiadomośc i zgodnie z protokołem 7.7 */ | GG_FEATURE_MSG77, /**< Klient życzy sobie otrzymywać wiadomośc i zgodnie z protokołem 7.7 */ | |||
skipping to change at line 2008 | skipping to change at line 2115 | |||
#define GG_DCC_TIMEOUT_FILE_ACK 300 /* 5 minut */ | #define GG_DCC_TIMEOUT_FILE_ACK 300 /* 5 minut */ | |||
#define GG_DCC_TIMEOUT_VOICE_ACK 300 /* 5 minut */ | #define GG_DCC_TIMEOUT_VOICE_ACK 300 /* 5 minut */ | |||
#define GG_DCC7_INFO 0x1f | #define GG_DCC7_INFO 0x1f | |||
struct gg_dcc7_info { | struct gg_dcc7_info { | |||
uint32_t uin; /* numer nadawcy */ | uint32_t uin; /* numer nadawcy */ | |||
uint32_t type; /* sposób połączenia */ | uint32_t type; /* sposób połączenia */ | |||
gg_dcc7_id_t id; /* identyfikator połączenia */ | gg_dcc7_id_t id; /* identyfikator połączenia */ | |||
char info[GG_DCC7_INFO_LEN]; /* informacje o połączeniu "ip port" */ | char info[GG_DCC7_INFO_LEN]; /* informacje o połączeniu "ip port" */ | |||
char hash[GG_DCC7_INFO_HASH_LEN];/* skrót "ip" */ | ||||
} GG_PACKED; | } GG_PACKED; | |||
#define GG_DCC7_NEW 0x20 | #define GG_DCC7_NEW 0x20 | |||
struct gg_dcc7_new { | struct gg_dcc7_new { | |||
gg_dcc7_id_t id; /* identyfikator połączenia */ | gg_dcc7_id_t id; /* identyfikator połączenia */ | |||
uint32_t uin_from; /* numer nadawcy */ | uint32_t uin_from; /* numer nadawcy */ | |||
uint32_t uin_to; /* numer odbiorcy */ | uint32_t uin_to; /* numer odbiorcy */ | |||
uint32_t type; /* rodzaj transmisji */ | uint32_t type; /* rodzaj transmisji */ | |||
unsigned char filename[GG_DCC7_FILENAME_LEN]; /* nazwa pliku */ | unsigned char filename[GG_DCC7_FILENAME_LEN]; /* nazwa pliku */ | |||
End of changes. 23 change blocks. | ||||
24 lines changed or deleted | 153 lines changed or added | |||