libgadu.h | libgadu.h | |||
---|---|---|---|---|
skipping to change at line 34 | skipping to change at line 34 | |||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, | |||
* USA. | * USA. | |||
*/ | */ | |||
/** | /** | |||
* \file libgadu.h | * \file libgadu.h | |||
* | * | |||
* \brief Główny plik nagłówkowy biblioteki | * \brief Główny plik nagłówkowy biblioteki | |||
*/ | */ | |||
#ifndef __GG_LIBGADU_H | #ifndef LIBGADU_LIBGADU_H | |||
#define __GG_LIBGADU_H | #define LIBGADU_LIBGADU_H | |||
#ifdef __cplusplus | ||||
#ifdef _WIN32 | #ifdef _WIN32 | |||
#pragma pack(push, 1) | #pragma pack(push, 1) | |||
#endif | #endif | |||
#ifdef __cplusplus | ||||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
#include <sys/types.h> | #include <sys/types.h> | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <stdarg.h> | #include <stdarg.h> | |||
/** \cond ignore */ | /** \cond ignore */ | |||
/* Defined if libgadu was compiled for bigendian machine. */ | /* Defined if libgadu was compiled for bigendian machine. */ | |||
/* #undef GG_CONFIG_BIGENDIAN */ | /* #undef GG_CONFIG_BIGENDIAN */ | |||
/* Defined if this machine has gethostbyname_r(). */ | /* Defined if this machine has gethostbyname_r(). */ | |||
#define GG_CONFIG_HAVE_GETHOSTBYNAME_R /**/ | #define GG_CONFIG_HAVE_GETHOSTBYNAME_R /**/ | |||
/* Defined if libgadu was compiled and linked with fork support. */ | ||||
#define GG_CONFIG_HAVE_FORK /**/ | ||||
/* Defined if libgadu was compiled and linked with pthread support. */ | /* Defined if libgadu was compiled and linked with pthread support. */ | |||
#define GG_CONFIG_HAVE_PTHREAD /**/ | #define GG_CONFIG_HAVE_PTHREAD /**/ | |||
/* Defined if pthread resolver is the default one. */ | /* Defined if pthread resolver is the default one. */ | |||
/* #undef GG_CONFIG_PTHREAD_DEFAULT */ | /* #undef GG_CONFIG_PTHREAD_DEFAULT */ | |||
/* Defined if this machine has C99-compiliant vsnprintf(). */ | /* Defined if this machine has C99-compiliant vsnprintf(). */ | |||
#define GG_CONFIG_HAVE_C99_VSNPRINTF /**/ | #define GG_CONFIG_HAVE_C99_VSNPRINTF /**/ | |||
/* Defined if this machine has va_copy(). */ | /* Defined if this machine has va_copy(). */ | |||
skipping to change at line 84 | skipping to change at line 88 | |||
/* Defined if libgadu was compiled and linked with GnuTLS support. */ | /* Defined if libgadu was compiled and linked with GnuTLS support. */ | |||
#define GG_CONFIG_HAVE_GNUTLS /**/ | #define GG_CONFIG_HAVE_GNUTLS /**/ | |||
/* Defined if libgadu was compiled and linked with OpenSSL support. */ | /* Defined if libgadu was compiled and linked with OpenSSL support. */ | |||
/* #undef GG_CONFIG_HAVE_OPENSSL */ | /* #undef GG_CONFIG_HAVE_OPENSSL */ | |||
/* Defined if libgadu was compiled and linked with zlib support. */ | /* Defined if libgadu was compiled and linked with zlib support. */ | |||
#define GG_CONFIG_HAVE_ZLIB /**/ | #define GG_CONFIG_HAVE_ZLIB /**/ | |||
/* 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 /**/ | /* #undef 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 */ | #define 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 */ | |||
/* Defined if uintX_t types are defined in <sys/int_types.h>. */ | /* Defined if uintX_t types are defined in <sys/int_types.h>. */ | |||
/* #undef GG_CONFIG_HAVE_SYS_INT_TYPES_H */ | /* #undef GG_CONFIG_HAVE_SYS_INT_TYPES_H */ | |||
/* Defined if uintX_t types are defined in <sys/types.h>. */ | /* Defined if uintX_t types are defined in <sys/types.h>. */ | |||
/* #undef GG_CONFIG_HAVE_SYS_TYPES_H */ | /* #undef GG_CONFIG_HAVE_SYS_TYPES_H */ | |||
/* Defined if this machine has uint64_t. */ | ||||
#define GG_CONFIG_HAVE_UINT64_T /**/ | ||||
/* Defined if libgadu is GPL compliant (was not linked with OpenSSL or any | ||||
other non-GPL compliant library support). */ | ||||
#define GG_CONFIG_IS_GPL_COMPLIANT /**/ | ||||
#ifdef GG_CONFIG_HAVE_OPENSSL | #ifdef GG_CONFIG_HAVE_OPENSSL | |||
#include <openssl/ssl.h> | #include <openssl/ssl.h> | |||
#endif | #endif | |||
#ifdef GG_CONFIG_HAVE_STDINT_H | #ifdef GG_CONFIG_HAVE_STDINT_H | |||
#include <stdint.h> | #include <stdint.h> | |||
#else | #else | |||
# ifdef GG_CONFIG_HAVE_INTTYPES_H | # ifdef GG_CONFIG_HAVE_INTTYPES_H | |||
# include <inttypes.h> | # include <inttypes.h> | |||
# else | # else | |||
# ifdef GG_CONFIG_HAVE_SYS_INTTYPES_H | # ifdef GG_CONFIG_HAVE_SYS_INTTYPES_H | |||
# include <sys/inttypes.h> | # include <sys/inttypes.h> | |||
# else | # else | |||
# ifdef GG_CONFIG_HAVE_SYS_INT_TYPES_H | # ifdef GG_CONFIG_HAVE_SYS_INT_TYPES_H | |||
# include <sys/int_types.h> | # include <sys/int_types.h> | |||
# else | # else | |||
# ifdef GG_CONFIG_HAVE_SYS_TYPES_H | # ifdef GG_CONFIG_HAVE_SYS_TYPES_H | |||
# include <sys/types.h> | # include <sys/types.h> | |||
# else | # else | |||
#ifndef __AC_STDINT_H | ||||
#define __AC_STDINT_H | ||||
/* ISO C 9X: 7.18 Integer types <stdint.h> */ | /* ISO C 9X: 7.18 Integer types <stdint.h> */ | |||
typedef unsigned char uint8_t; | typedef unsigned char uint8_t; | |||
typedef unsigned short uint16_t; | typedef unsigned short uint16_t; | |||
typedef unsigned int uint32_t; | typedef unsigned int uint32_t; | |||
#ifndef __CYGWIN__ | ||||
#define __int8_t_defined | ||||
typedef signed char int8_t; | ||||
typedef signed short int16_t; | ||||
typedef signed int int32_t; | ||||
#endif | ||||
#endif /* __AC_STDINT_H */ | ||||
# endif | # endif | |||
# endif | # endif | |||
# endif | # endif | |||
# endif | # endif | |||
#endif | #endif | |||
#ifndef GG_CONFIG_HAVE_UINT64_T | ||||
typedef unsigned long long uint64_t; | ||||
#endif | ||||
#ifdef _MSC_VER | ||||
#include <BaseTsd.h> | ||||
typedef SSIZE_T ssize_t; | ||||
#endif | ||||
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ | ||||
> 4)) | ||||
# define GG_GNUC_PRINTF(format_idx, arg_idx) \ | ||||
__attribute__((format (printf, (format_idx), (arg_idx)))) | ||||
#else | ||||
# define GG_GNUC_PRINTF(format_idx, arg_idx) | ||||
#endif | ||||
/** \endcond */ | /** \endcond */ | |||
/** | /** | |||
* Numer Gadu-Gadu. | * Numer Gadu-Gadu. | |||
*/ | */ | |||
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. | |||
*/ | */ | |||
skipping to change at line 191 | skipping to change at line 206 | |||
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; | struct gg_dcc7_relay; | |||
struct gg_session_private; | ||||
/** | /** | |||
* 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ązywani a nazw (jeden z poniższych) */ | GG_RESOLVER_DEFAULT = 0, /**< Domyślny sposób rozwiązywani a nazw (jeden z poniższych) */ | |||
GG_RESOLVER_FORK, /**< RozwiÄ…zywanie nazw bazujÄ…ce n a procesach */ | GG_RESOLVER_FORK, /**< RozwiÄ…zywanie nazw bazujÄ…ce n a procesach */ | |||
GG_RESOLVER_PTHREAD, /**< RozwiÄ…zywanie nazw bazujÄ…ce n a wÄ…tkach */ | GG_RESOLVER_PTHREAD, /**< RozwiÄ…zywanie nazw bazujÄ…ce n a wÄ…tkach */ | |||
GG_RESOLVER_CUSTOM, /**< Funkcje rozwiÄ…zywania nazw dos tarczone przed aplikacjÄ™ */ | GG_RESOLVER_CUSTOM, /**< Funkcje rozwiÄ…zywania nazw dos tarczone przed aplikacjÄ™ */ | |||
GG_RESOLVER_WIN32, /**< RozwiÄ…zywanie nazw bazujÄ…ce n a wÄ…tkach Win32 */ | ||||
GG_RESOLVER_INVALID = -1 /**< Nieprawidłowy sposób rozwiąz ywania nazw (wynik \c gg_session_get_resolver) */ | GG_RESOLVER_INVALID = -1 /**< Nieprawidłowy sposób rozwiąz ywania nazw (wynik \c gg_session_get_resolver) */ | |||
} gg_resolver_t; | } gg_resolver_t; | |||
/** | /** | |||
* Rodzaj kodowania znaków. | * Rodzaj kodowania znaków. | |||
*/ | */ | |||
typedef enum { | typedef enum { | |||
GG_ENCODING_CP1250 = 0, /**< Kodowanie CP1250 */ | GG_ENCODING_CP1250 = 0, /**< Kodowanie CP1250 */ | |||
GG_ENCODING_UTF8, /**< Kodowanie UTF-8 */ | GG_ENCODING_UTF8, /**< Kodowanie UTF-8 */ | |||
GG_ENCODING_INVALID = -1 /**< Nieprawidłowe kodowanie */ | GG_ENCODING_INVALID = -1 /**< Nieprawidłowe kodowanie */ | |||
} gg_encoding_t; | } gg_encoding_t; | |||
/** | /** | |||
* Stopień kompatybilności ze starymi wersjami API. | ||||
*/ | ||||
typedef enum { | ||||
GG_COMPAT_LEGACY = 0, /**< Całkowita kompatybilność (nie wyłą | ||||
cza żadnych funkcji) */ | ||||
GG_COMPAT_1_12_0 = 1 /**< Wyłącza: dostarczanie eventów GG_EVE | ||||
NT_ACK, stary format konferencji */ | ||||
} gg_compat_t; | ||||
/** | ||||
* Flaga połączenia szyfrowanego. | ||||
* | ||||
* \ingroup login | ||||
*/ | ||||
typedef enum { | ||||
GG_SSL_DISABLED = 0, /**< Połączenie SSL wyłączone */ | ||||
GG_SSL_ENABLED, /**< Połączenie SSL włączone gdy dostęp | ||||
ne. Błędny certyfikat serwera nie powoduje odrzucenia połączenia. */ | ||||
GG_SSL_REQUIRED /**< Połączenie SSL wymagane. Błędny cer | ||||
tyfikat serwera powoduje odrzucenie połączenia. */ | ||||
} gg_ssl_t; | ||||
/** | ||||
* Sesja Gadu-Gadu. | * Sesja Gadu-Gadu. | |||
* | * | |||
* Tworzona przez funkcjÄ™ \c gg_login(), zwalniana przez \c gg_free_sessio n(). | * Tworzona przez funkcjÄ™ \c gg_login(), zwalniana przez \c gg_free_sessio n(). | |||
* | * | |||
* \ingroup login | * \ingroup login | |||
*/ | */ | |||
struct gg_session { | struct gg_session { | |||
gg_common_head(struct gg_session) | gg_common_head(struct gg_session) | |||
int async; /**< Flaga połączenia asynchronicznego */ | int async; /**< Flaga połączenia asynchronicznego */ | |||
skipping to change at line 248 | skipping to change at line 285 | |||
uint32_t external_addr; /**< Publiczny adres dla połączeń bezpoś rednich */ | uint32_t external_addr; /**< Publiczny adres dla połączeń bezpoś rednich */ | |||
uint16_t external_port; /**< Publiczny port dla połączeń bezpośr ednich */ | uint16_t external_port; /**< Publiczny port dla połączeń bezpośr ednich */ | |||
uin_t uin; /**< WÅ‚asny numer Gadu-Gadu */ | uin_t uin; /**< WÅ‚asny numer Gadu-Gadu */ | |||
char *password; /**< Hasło (zwalniane po użyciu) */ | char *password; /**< Hasło (zwalniane po użyciu) */ | |||
int initial_status; /**< PoczÄ…tkowy status */ | int initial_status; /**< PoczÄ…tkowy status */ | |||
int status; /**< Aktualny status */ | int status; /**< Aktualny status */ | |||
char *recv_buf; /**< Bufor na odbierany pakiety */ | char *recv_buf; /**< Bufor na odbierane pakiety. Wskaźnik z awsze maksymalnie wyrównany, tak jak w wyniku działania \c malloc(). */ | |||
int recv_done; /**< Liczba wczytanych bajtów pakietu */ | int recv_done; /**< Liczba wczytanych bajtów pakietu */ | |||
int recv_left; /**< Liczba pozostałych do wczytania bajtó w pakietu */ | int recv_left; /**< Liczba pozostałych do wczytania bajtó w pakietu */ | |||
int protocol_version; /**< Wersja protokołu (bez flag) */ | int protocol_version; /**< Wersja protokołu (bez flag) */ | |||
char *client_version; /**< Wersja klienta */ | char *client_version; /**< Wersja klienta */ | |||
int last_sysmsg; /**< Numer ostatniej wiadomości systemowej */ | int last_sysmsg; /**< Numer ostatniej wiadomości systemowej */ | |||
char *initial_descr; /**< PoczÄ…tkowy opis statusu */ | char *initial_descr; /**< PoczÄ…tkowy opis statusu */ | |||
void *resolver; /**< Dane prywatne procesu lub wÄ…tku rozwiÄ …zujÄ…cego nazwÄ™ serwera */ | void *resolver; /**< Dane prywatne procesu lub wÄ…tku rozwiÄ …zujÄ…cego nazwÄ™ serwera */ | |||
char *header_buf; /**< Bufor na początek nagłówka pakietu * | #ifndef DOXYGEN | |||
/ | char *header_buf; /**< Bufor na początek nagłówka pakietu ( | |||
unsigned int header_done; /**< Liczba wczytanych bajtów nagł | nieaktualne) */ | |||
ówka pakietu */ | unsigned int header_done; /**< Liczba wczytanych bajtów nagł | |||
ówka pakietu (nieaktualne) */ | ||||
#endif | ||||
#ifdef GG_CONFIG_HAVE_OPENSSL | #ifdef GG_CONFIG_HAVE_OPENSSL | |||
SSL *ssl; /**< Struktura TLS */ | SSL *ssl; /**< Struktura TLS */ | |||
SSL_CTX *ssl_ctx; /**< Kontekst sesji TLS */ | SSL_CTX *ssl_ctx; /**< Kontekst sesji TLS */ | |||
#else | #else | |||
void *ssl; /**< Struktura TLS */ | void *ssl; /**< Struktura TLS */ | |||
void *ssl_ctx; /**< Kontekst sesji TLS */ | void *ssl_ctx; /**< Kontekst sesji TLS */ | |||
#endif | #endif | |||
int image_size; /**< Maksymalny rozmiar obsługiwanych obraz ków w KiB */ | int image_size; /**< Maksymalny rozmiar obsługiwanych obraz ków w KiB */ | |||
skipping to change at line 299 | skipping to change at line 338 | |||
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 ser werów */ | gg_resolver_t resolver_type; /**< Sposób rozwiązywania nazw ser weró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 */ | int recv_msg_count; /**< Liczba odebranych wiadomości */ | |||
const char *resolver_host; /**< Nazwa do rozwiÄ…zania * | ||||
/ | ||||
struct in_addr *resolver_result; /**< Wynik rozwiÄ…zywania na | ||||
zwy */ | ||||
unsigned int resolver_index; /**< Indeks aktualnie obsłu | ||||
giwanego wyniku rozwiÄ…zywania nazwy */ | ||||
unsigned int resolver_count; /**< Liczba wyników rozwią | ||||
zywania nazwy */ | ||||
uint16_t connect_port[2]; /**< Lista portów do połą | ||||
czenia */ | ||||
unsigned int connect_index; /**< Indeks aktualnie obsłu | ||||
giwanego portu */ | ||||
char *connect_host; /**< Adres serwera Gadu-Gadu | ||||
, z którym się łączymy */ | ||||
gg_ssl_t ssl_flag; /**< Flaga połączenia szyf | ||||
rowanego */ | ||||
struct gg_session_private *private_data; /**< Prywatne dane s | ||||
esji, nie udostępnione w API */ | ||||
}; | }; | |||
/** | /** | |||
* 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 559 | skipping to change at line 611 | |||
GG_STATE_READING_ID, /**< Odebranie identyfikatora połą czenia bezpośredniego */ | GG_STATE_READING_ID, /**< Odebranie identyfikatora połą czenia bezpośredniego */ | |||
GG_STATE_SENDING_ID, /**< Wysłano identyfikator połącz enia bezpośredniego */ | GG_STATE_SENDING_ID, /**< Wysłano identyfikator połącz enia bezpośredniego */ | |||
GG_STATE_RESOLVING_GG, /**< Oczekiwanie na rozwiÄ…zanie naz wy serwera Gadu-Gadu */ | GG_STATE_RESOLVING_GG, /**< Oczekiwanie na rozwiÄ…zanie naz wy serwera Gadu-Gadu */ | |||
GG_STATE_RESOLVING_RELAY, /**< Oczekiwanie na rozwiązanie naz wy serwera pośredniczącego */ | GG_STATE_RESOLVING_RELAY, /**< Oczekiwanie na rozwiązanie naz wy serwera pośredniczącego */ | |||
GG_STATE_CONNECTING_RELAY, /**< Oczekiwanie na połączenie z s erwerem pośredniczącym */ | GG_STATE_CONNECTING_RELAY, /**< Oczekiwanie na połączenie z s erwerem pośredniczącym */ | |||
GG_STATE_READING_RELAY, /**< Odbieranie danych */ | GG_STATE_READING_RELAY, /**< Odbieranie danych */ | |||
GG_STATE_DISCONNECTING, /**< Oczekiwanie na potwierdzenie ro złączenia */ | GG_STATE_DISCONNECTING, /**< Oczekiwanie na potwierdzenie ro złączenia */ | |||
GG_STATE_CONNECT_HUB, /**< Nawiązanie połączenia z hube | ||||
m */ | ||||
GG_STATE_CONNECT_PROXY_HUB, | ||||
GG_STATE_CONNECT_GG, /**< Nawiązanie połączenia z serw | ||||
erem */ | ||||
GG_STATE_CONNECT_PROXY_GG, | ||||
GG_STATE_CONNECTING_PROXY_HUB, | ||||
GG_STATE_CONNECTING_PROXY_GG, | ||||
GG_STATE_RESOLVE_HUB_SYNC, | ||||
GG_STATE_RESOLVE_HUB_ASYNC, | ||||
GG_STATE_RESOLVE_PROXY_HUB_SYNC, | ||||
GG_STATE_RESOLVE_PROXY_HUB_ASYNC, | ||||
GG_STATE_RESOLVE_PROXY_GG_SYNC, | ||||
GG_STATE_RESOLVE_PROXY_GG_ASYNC, | ||||
GG_STATE_RESOLVE_GG_SYNC, | ||||
GG_STATE_RESOLVE_GG_ASYNC, | ||||
GG_STATE_RESOLVING_HUB, | ||||
GG_STATE_RESOLVING_PROXY_HUB, | ||||
GG_STATE_RESOLVING_PROXY_GG, | ||||
GG_STATE_SEND_HUB, | ||||
GG_STATE_SEND_PROXY_HUB, | ||||
GG_STATE_SEND_PROXY_GG, | ||||
GG_STATE_SENDING_HUB, | ||||
GG_STATE_SENDING_PROXY_HUB, | ||||
GG_STATE_SENDING_PROXY_GG, | ||||
GG_STATE_READING_HUB, | ||||
GG_STATE_READING_PROXY_HUB, | ||||
GG_STATE_READING_PROXY_GG, | ||||
}; | }; | |||
/** | /** | |||
* 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 */ | |||
GG_CHECK_WRITE = 1, /**< Sprawdź możliwość zapisu */ | GG_CHECK_WRITE = 1, /**< Sprawdź możliwość zapisu */ | |||
GG_CHECK_READ = 2 /**< Sprawdź możliwość odczytu * / | GG_CHECK_READ = 2 /**< Sprawdź możliwość odczytu * / | |||
}; | }; | |||
/** | /** | |||
* Flaga połączenia szyfrowanego. | * Metody nawiązywania połączeń TCP/TLS. | |||
* | * | |||
* \ingroup login | * \ingroup socketmanager | |||
*/ | */ | |||
typedef enum { | typedef enum { | |||
GG_SSL_DISABLED = 0, /**< Połączenie SSL wyłączone */ | GG_SOCKET_MANAGER_TYPE_INTERNAL = 0, /**< Wewnętrzna obsługa gniaz | |||
GG_SSL_ENABLED, /**< Połączenie SSL włączone gdy dostęp | d (domyślne). */ | |||
ne */ | GG_SOCKET_MANAGER_TYPE_TCP, /**< Dostarczona przez aplikacjÄ™ - tylk | |||
GG_SSL_REQUIRED /**< Połączenie SSL wymagane */ | o obsługa TCP. */ | |||
} gg_ssl_t; | GG_SOCKET_MANAGER_TYPE_TLS /**< Dostarczona przez aplikację - obsł | |||
uga zarówno TCP, jak i TLS. */ | ||||
} gg_socket_manager_type_t; | ||||
/** | ||||
* Funkcja dostarczona przez aplikacjÄ™, tworzÄ…ca nowe gniazdo TCP/TLS. | ||||
* | ||||
* Po nawiązaniu połączenia aplikacja musi wywołać gg_socket_manager_c | ||||
onnected. | ||||
* Jeżeli połączenie jest asynchroniczne, wywołanie musi nastąpić po | ||||
wyjściu z | ||||
* kontekstu tej funkcji. Dla połączeń synchronicznych z kolei, musi nas | ||||
tąpić | ||||
* jeszcze przed wyjściem z kontekstu. | ||||
* | ||||
* \param cb_data Dane prywatne aplikacji | ||||
* \param host Nazwa hosta | ||||
* \param port Numer portu | ||||
* \param is_tls Flaga określająca, czy ma zostać nawiązane połączeni | ||||
e TLS | ||||
* \param is_async Flaga określająca połączenie asynchroniczne (patrz s | ||||
zczegóły powyżej) | ||||
* \param priv Dane prywatne biblioteki libgadu (do przekazania do gg_socke | ||||
t_manager_connected) | ||||
* | ||||
* \return Uchwyt gniazda | ||||
* | ||||
* \ingroup socketmanager | ||||
*/ | ||||
typedef void* (*gg_socket_manager_connect_cb_t)(void *cb_data, const char * | ||||
host, int port, int is_tls, int is_async, void *priv); | ||||
/** | ||||
* Niszczy gniazdo i zwalnia wszystkie powiÄ…zane z nim zasoby. | ||||
* | ||||
* \param cb_data Dane prywatne aplikacji | ||||
* \param handle Uchwyt gniazda | ||||
* | ||||
* \ingroup socketmanager | ||||
*/ | ||||
typedef void (*gg_socket_manager_close_cb_t)(void *cb_data, void *handle); | ||||
/** | ||||
* Odbiera z gniazda dane binarne. | ||||
* | ||||
* Funkcja powinna zajmować się obsługą TLS, jeżeli gniazdo jest w tak | ||||
im trybie. | ||||
* | ||||
* \param cb_data Dane prywatne aplikacji | ||||
* \param handle Uchwyt gniazda | ||||
* \param buffer Bufor do zapisu danych | ||||
* \param bufsize Rozmiar bufora | ||||
* | ||||
* \return Ilość zapisanych danych, lub -1 (oraz ustawiony errno) w przyp | ||||
adku niepowodzenia | ||||
* | ||||
* \ingroup socketmanager | ||||
*/ | ||||
typedef ssize_t (*gg_socket_manager_read_cb_t)(void *cb_data, void *handle, | ||||
unsigned char *buffer, size_t bufsize); | ||||
/** | ||||
* Wysyła przez gniazdo dane binarne. | ||||
* | ||||
* Funkcja powinna zajmować się obsługą TLS, jeżeli gniazdo jest w tak | ||||
im trybie. | ||||
* | ||||
* \param cb_data Dane prywatne aplikacji | ||||
* \param handle Uchwyt gniazda | ||||
* \param data Dane do wysłania | ||||
* \param length Rozmiar danych | ||||
* | ||||
* \return Ilość wysłanych danych, lub -1 (oraz ustawiony errno) w przyp | ||||
adku niepowodzenia | ||||
* | ||||
* \ingroup socketmanager | ||||
*/ | ||||
typedef ssize_t (*gg_socket_manager_write_cb_t)(void *cb_data, void *handle | ||||
, const unsigned char *data, size_t length); | ||||
/** | ||||
* Struktura opisująca funkcje zarządzające gniazdami, jeżeli aplikacja | ||||
sama je | ||||
* obsługuje. | ||||
* | ||||
* \ingroup socketmanager | ||||
*/ | ||||
typedef struct { | ||||
void *cb_data; /**< Dane prywatne aplikacji */ | ||||
gg_socket_manager_connect_cb_t connect_cb; /**< Funkcja tworzÄ…ca no | ||||
we gniazdo */ | ||||
gg_socket_manager_close_cb_t close_cb; /**< Funkcja niszczÄ…ca gniaz | ||||
do */ | ||||
gg_socket_manager_read_cb_t read_cb; /**< Funkcja odczytujÄ…ca dane | ||||
z gniazda */ | ||||
gg_socket_manager_write_cb_t write_cb; /**< Funkcja wysyłająca dan | ||||
e przez gniazdo */ | ||||
#ifndef DOXYGEN | ||||
void *reserved1; | ||||
void *reserved2; | ||||
void *reserved3; | ||||
void *reserved4; | ||||
#endif | ||||
} gg_socket_manager_t; | ||||
int gg_socket_manager_connected(void *handle, void *priv, int fd); | ||||
/** | /** | |||
* Parametry połączenia z serwerem Gadu-Gadu. Parametry zostały przenies ione | * Parametry połączenia z serwerem Gadu-Gadu. Parametry zostały przenies ione | |||
* do struktury, by uniknąć zmian API po rozszerzeniu protokołu i dodani u | * do struktury, by uniknąć zmian API po rozszerzeniu protokołu i dodani u | |||
* kolejnych opcji połączenia. Część parametrów, które nie są już aktualne | * kolejnych opcji połączenia. Część parametrów, które nie są już aktualne | |||
* lub nie mają znaczenia, została usunięta z dokumentacji. | * lub nie mają znaczenia, została usunięta z dokumentacji. | |||
* | * | |||
* \ingroup login | * \ingroup login | |||
*/ | */ | |||
struct gg_login_params { | struct gg_login_params { | |||
skipping to change at line 619 | skipping to change at line 783 | |||
int image_size; /**< Maksymalny rozmiar obsługiwany ch obrazków w kilobajtach */ | int image_size; /**< Maksymalny rozmiar obsługiwany ch obrazków w kilobajtach */ | |||
#ifndef DOXYGEN | #ifndef DOXYGEN | |||
int era_omnix; /**< Flaga udawania klienta Era Omni x (nieaktualna) */ | int era_omnix; /**< Flaga udawania klienta Era Omni x (nieaktualna) */ | |||
#endif | #endif | |||
int hash_type; /**< Rodzaj skrótu hasła (\c GG_LO GIN_HASH_GG32 lub \c GG_LOGIN_HASH_SHA1, domyślnie SHA1) */ | int hash_type; /**< Rodzaj skrótu hasła (\c GG_LO GIN_HASH_GG32 lub \c GG_LOGIN_HASH_SHA1, domyślnie SHA1) */ | |||
gg_encoding_t encoding; /**< Rodzaj kodowania używanego w s esji (domyślnie CP1250) */ | gg_encoding_t encoding; /**< Rodzaj kodowania używanego w s esji (domyślnie CP1250) */ | |||
gg_resolver_t resolver; /**< Sposób rozwiązywania nazw (pa trz \ref build-resolver) */ | gg_resolver_t resolver; /**< Sposób rozwiązywania nazw (pa trz \ref build-resolver) */ | |||
int protocol_features; /**< Opcje protokołu (flagi GG_FEAT URE_*). */ | int protocol_features; /**< Opcje protokołu (flagi GG_FEAT URE_*). */ | |||
int status_flags; /**< Flagi statusu (flagi GG_STATUS_ FLAG_*, patrz \ref status). */ | int status_flags; /**< Flagi statusu (flagi GG_STATUS_ FLAG_*, patrz \ref status). */ | |||
#ifndef DOXYGEN | unsigned int struct_size; /**< Rozmiar struktury. To pole powi | |||
char dummy[1 * sizeof(int)]; /**< \internal Miejsce na kilka kole | nno być inicjowane wartością sizeof(struct gg_login_params) - w przeciwn | |||
jnych | ym przypadku pola za nim nie będą obsługiwane. Pozwala na rozszerzanie s | |||
parametrów, żeby wraz z dodawani | truktury bez łamania ABI. */ | |||
em kolejnych | ||||
parametrów nie zmieniał się roz | gg_compat_t compatibility; /**< Stopień kompatybilności ze st | |||
miar struktury */ | arym API. */ | |||
#endif | ||||
char *connect_host; /**< Nazwa hosta (oraz opcjonalnie p | ||||
ort, podany po dwukropku) serwera Gadu-Gadu (domyślnie pobierany automatyc | ||||
znie) (patrz pole struct_size). */ | ||||
gg_socket_manager_type_t socket_manager_type; /**< Wybrana metoda na | ||||
wiązywania połączeń TCP/TLS (domyślnie wewnętrzna) */ | ||||
gg_socket_manager_t socket_manager; /**< Jeżeli wybrano metodę zew | ||||
nętrzną - konfiguracja jej */ | ||||
char **host_white_list; /**< Lista zakończona wskaźnikiem | ||||
NULL, domen akceptowanych w odpowiedziach od huba (domyślnie wszystkie do | ||||
tej pory znane). Używane tylko przy GG_SSL_REQUIRED. Pusta lista wyłącza | ||||
sprawdzanie. */ | ||||
}; | }; | |||
#ifdef GG_CONFIG_IS_GPL_COMPLIANT | ||||
int gg_is_gpl_compliant(void); | ||||
#endif | ||||
struct gg_session *gg_login(const struct gg_login_params *p); | struct gg_session *gg_login(const struct gg_login_params *p); | |||
void gg_free_session(struct gg_session *sess); | void gg_free_session(struct gg_session *sess); | |||
void gg_logoff(struct gg_session *sess); | void gg_logoff(struct gg_session *sess); | |||
int gg_change_status(struct gg_session *sess, int status); | int gg_change_status(struct gg_session *sess, int status); | |||
int gg_change_status_descr(struct gg_session *sess, int status, const char *descr); | int gg_change_status_descr(struct gg_session *sess, int status, const char *descr); | |||
int gg_change_status_descr_time(struct gg_session *sess, int status, const char *descr, int time); | int gg_change_status_descr_time(struct gg_session *sess, int status, const char *descr, int time); | |||
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_html(struct gg_session *sess, int msgclass, uin_t recip ient, const unsigned char *html_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(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_confer_html(struct gg_session *sess, int msgclass, int recipients_count, uin_t *recipients, const unsigned char *html_message); | ||||
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_userlist100_request(struct gg_session *sess, char type, unsigned int version, char format_type, const char *request); | int gg_userlist100_request(struct gg_session *sess, char type, unsigned int version, char format_type, const char *request); | |||
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); | 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); | |||
skipping to change at line 662 | skipping to change at line 835 | |||
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); | int gg_multilogon_disconnect(struct gg_session *gs, gg_multilogon_id_t conn _id); | |||
int gg_chat_create(struct gg_session *gs); | ||||
int gg_chat_invite(struct gg_session *gs, uint64_t id, uin_t *participants, | ||||
unsigned int participants_count); | ||||
int gg_chat_leave(struct gg_session *gs, uint64_t id); | ||||
int gg_chat_send_message(struct gg_session *gs, uint64_t id, const char *me | ||||
ssage, int is_html); | ||||
/** | /** | |||
* 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 uwagi */ | GG_EVENT_NONE = 0, /**< Nie wydarzyło się nic wartego uwagi */ | |||
GG_EVENT_MSG, /**< \brief Otrzymano wiadomość. P rzekazuje również wiadomości systemowe od numeru 0. */ | GG_EVENT_MSG, /**< \brief Otrzymano wiadomość. P rzekazuje 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 planuje się używać protokołu w wersji starszej niż domyślna. Ostatni element tablicy zawiera uin równy 0, a pozostałe pola są niezainicjowan e. */ | GG_EVENT_NOTIFY, /**< \brief Informacja o statusach o sób 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. Ostatni element tablicy zawiera uin równy 0, a pozostałe pola są niezainicjowan e. */ | |||
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 717 | skipping to change at line 895 | |||
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Å„czen ia sesji. Informuje o tym, że zmiana stanu na niedostÄ™pny z opisem dotarÅ ‚a do serwera i można zakoÅ„czyć poÅ‚Ä…czenie TCP. */ | GG_EVENT_DISCONNECT_ACK, /**< \brief Potwierdzenie zakoÅ„czen ia sesji. Informuje o tym, że zmiana stanu na niedostÄ™pny z opisem dotarÅ ‚a do serwera i można zakoÅ„czyć poÅ‚Ä…czenie TCP. */ | |||
GG_EVENT_TYPING_NOTIFICATION, /**< Powiadomienie o pisaniu */ | GG_EVENT_TYPING_NOTIFICATION, /**< Powiadomienie o pisaniu */ | |||
GG_EVENT_USER_DATA, /**< Informacja o kontaktach */ | GG_EVENT_USER_DATA, /**< Informacja o kontaktach */ | |||
GG_EVENT_MULTILOGON_MSG, /**< Wiadomość wysłana z innej se sji multilogowania */ | GG_EVENT_MULTILOGON_MSG, /**< Wiadomość wysłana z innej se sji multilogowania */ | |||
GG_EVENT_MULTILOGON_INFO, /**< Informacja o innych sesjach mul tilogowania */ | GG_EVENT_MULTILOGON_INFO, /**< Informacja o innych sesjach mul tilogowania */ | |||
GG_EVENT_USERLIST100_VERSION, /**< Otrzymano numer wersji listy ko ntaktów na serwerze (10.0) */ | GG_EVENT_USERLIST100_VERSION, /**< Otrzymano numer wersji listy ko ntaktów na serwerze (10.0) */ | |||
GG_EVENT_USERLIST100_REPLY, /**< Wynik importu lub eksportu list y kontaktów (10.0) */ | GG_EVENT_USERLIST100_REPLY, /**< Wynik importu lub eksportu list y kontaktów (10.0) */ | |||
GG_EVENT_IMTOKEN, /**< Otrzymano ciÄ…g IMTOKEN (11.0) | ||||
*/ | ||||
GG_EVENT_PONG110, /**< \brief Utrzymanie połączenia | ||||
(11.0). Może służyć do synchronizacji czasu z serwerem. */ | ||||
GG_EVENT_JSON_EVENT, /**< Otrzymano komunikat systemowy ( | ||||
11.0) */ | ||||
GG_EVENT_ACK110, /**< Potwierdzenie wysłania wiadomo | ||||
ści (11.0) */ | ||||
GG_EVENT_CHAT_INFO, /**< Otrzymano informacjÄ™ o konfere | ||||
ncji (11.0). */ | ||||
GG_EVENT_CHAT_INFO_GOT_ALL, /**< \brief Informacje o wszystkich | ||||
konferencjach zostały już wysłane (11.0). Otrzymywany po ostatnim pakiec | ||||
ie \c GG_EVENT_CHAT_INFO */ | ||||
GG_EVENT_CHAT_INFO_UPDATE, /**< \brief Aktualizacja informacji | ||||
o konferencji (11.0). Dodanie, usunięcie jednego z uczestników. */ | ||||
GG_EVENT_CHAT_CREATED, /**< Potwierdzenie utworzenia konfer | ||||
encji (11.0) */ | ||||
GG_EVENT_CHAT_INVITE_ACK, /**< Potwierdzenie wysłania zaprosz | ||||
enia do konferencji (11.0) */ | ||||
}; | }; | |||
#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 738 | skipping to change at line 927 | |||
GG_FAILURE_READING, /**< Zerwano połączenie podczas od czytu */ | GG_FAILURE_READING, /**< Zerwano połączenie podczas od czytu */ | |||
GG_FAILURE_WRITING, /**< Zerwano połączenie podczas za pisu */ | GG_FAILURE_WRITING, /**< Zerwano połączenie podczas za pisu */ | |||
GG_FAILURE_PASSWORD, /**< Nieprawidłowe hasło */ | GG_FAILURE_PASSWORD, /**< Nieprawidłowe hasło */ | |||
GG_FAILURE_404, /**< Nieużywane */ | GG_FAILURE_404, /**< Nieużywane */ | |||
GG_FAILURE_TLS, /**< Błąd negocjacji szyfrowanego połączenia */ | GG_FAILURE_TLS, /**< Błąd negocjacji szyfrowanego połączenia */ | |||
GG_FAILURE_NEED_EMAIL, /**< Serwer rozłączył nas z proś bą o zmianę adresu e-mail */ | GG_FAILURE_NEED_EMAIL, /**< Serwer rozłączył nas z proś bą o zmianę adresu e-mail */ | |||
GG_FAILURE_INTRUDER, /**< Zbyt wiele prób połączenia z nieprawidłowym hasłem */ | GG_FAILURE_INTRUDER, /**< Zbyt wiele prób połączenia z nieprawidłowym hasłem */ | |||
GG_FAILURE_UNAVAILABLE, /**< Serwery są wyłączone */ | GG_FAILURE_UNAVAILABLE, /**< Serwery są wyłączone */ | |||
GG_FAILURE_PROXY, /**< Błąd serwera pośrednicząceg o */ | GG_FAILURE_PROXY, /**< Błąd serwera pośrednicząceg o */ | |||
GG_FAILURE_HUB, /**< Błąd połączenia z hubem */ | GG_FAILURE_HUB, /**< Błąd połączenia z hubem */ | |||
GG_FAILURE_INTERNAL, /**< Błąd wewnętrzny */ | ||||
}; | }; | |||
/** | /** | |||
* Kod błędu danej operacji. | * Kod błędu danej operacji. | |||
* | * | |||
* Nie zawiera przesadnie szczegółowych informacji o powodach błędów, by nie | * Nie zawiera przesadnie szczegółowych informacji o powodach błędów, by nie | |||
* komplikować ich obsługi. Jeśli wymagana jest większa dokładność, należy | * komplikować ich obsługi. Jeśli wymagana jest większa dokładność, należy | |||
* sprawdzić zawartość zmiennej systemowej \c errno. | * sprawdzić zawartość zmiennej systemowej \c errno. | |||
*/ | */ | |||
enum gg_error_t { | enum gg_error_t { | |||
skipping to change at line 804 | skipping to change at line 994 | |||
* 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 zdarzeń \c GG_EVENT_MSG i \c GG_EVENT_MULTILOGON_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/odbiorcy */ | uin_t sender; /**< Numer nadawcy/odbiorcy */ | |||
int msgclass; /**< Klasa wiadomości */ | int msgclass; /**< Klasa wiadomości */ | |||
#ifndef _WIN32 | ||||
time_t time; /**< Czas nadania */ | time_t time; /**< Czas nadania */ | |||
#else | ||||
uint32_t time; /**< Czas nadania */ | ||||
#endif | ||||
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 te kstu */ | int formats_length; /**< Długość informacji o formatowaniu te kstu */ | |||
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 */ | |||
char *xhtml_message; /**< Treść wiadomości w formacie XHTML (m | char *xhtml_message; /**< Treść wiadomości w formacie XHTML */ | |||
oże być równe \c NULL, jeśli wiadomość nie zawiera treści XHTML) */ | ||||
uint64_t chat_id; /**< Identyfikator konferencji lub 0, jeżel | ||||
i jest to zwykła wiadomość (11.0) */ | ||||
uint64_t flags; /**< Flagi wiadomości (11.0) */ | ||||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_NOTIFY_DESCR. | * Opis zdarzenia \c GG_EVENT_NOTIFY_DESCR. | |||
*/ | */ | |||
struct gg_event_notify_descr { | struct gg_event_notify_descr { | |||
struct gg_notify_reply *notify; /**< Informacje o liście kontaktów */ | struct gg_notify_reply *notify; /**< Informacje o liście kontaktów */ | |||
char *descr; /**< Opis status */ | char *descr; /**< Opis status */ | |||
}; | }; | |||
skipping to change at line 845 | skipping to change at line 1042 | |||
* Opis zdarzenia \c GG_EVENT_STATUS60. | * Opis zdarzenia \c GG_EVENT_STATUS60. | |||
*/ | */ | |||
struct gg_event_status60 { | struct gg_event_status60 { | |||
uin_t uin; /**< Numer Gadu-Gadu */ | uin_t uin; /**< Numer Gadu-Gadu */ | |||
int status; /**< Nowy status */ | int status; /**< Nowy status */ | |||
uint32_t remote_ip; /**< Adres IP dla połączeń bezpośrednich */ | uint32_t remote_ip; /**< Adres IP dla połączeń bezpośrednich */ | |||
uint16_t remote_port; /**< Port dla połączeń bezpośrednich */ | uint16_t remote_port; /**< Port dla połączeń bezpośrednich */ | |||
int version; /**< Wersja protokołu */ | int version; /**< Wersja protokołu */ | |||
int image_size; /**< Maksymalny rozmiar obsługiwanych obraz ków w KiB */ | int image_size; /**< Maksymalny rozmiar obsługiwanych obraz ków w KiB */ | |||
char *descr; /**< Opis statusu */ | char *descr; /**< Opis statusu */ | |||
#ifndef _WIN32 | ||||
time_t time; /**< Czas powrotu */ | time_t time; /**< Czas powrotu */ | |||
#else | ||||
uint32_t time; /**< Czas powrotu */ | ||||
#endif | ||||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_NOTIFY_REPLY60. | * Opis zdarzenia \c GG_EVENT_NOTIFY_REPLY60. | |||
*/ | */ | |||
struct gg_event_notify60 { | struct gg_event_notify60 { | |||
uin_t uin; /**< Numer Gadu-Gadu. W ostatnim elemencie j est równy 0, a pozostałe pola są niezainicjowane. */ | uin_t uin; /**< Numer Gadu-Gadu. W ostatnim elemencie j est równy 0, a pozostałe pola są niezainicjowane. */ | |||
int status; /**< Nowy status */ | int status; /**< Nowy status */ | |||
uint32_t remote_ip; /**< Adres IP dla połączeń bezpośrednich */ | uint32_t remote_ip; /**< Adres IP dla połączeń bezpośrednich */ | |||
uint16_t remote_port; /**< Port dla połączeń bezpośrednich */ | uint16_t remote_port; /**< Port dla połączeń bezpośrednich */ | |||
int version; /**< Wersja protokołu */ | int version; /**< Wersja protokołu */ | |||
int image_size; /**< Maksymalny rozmiar obsługiwanych obraz ków w KiB */ | int image_size; /**< Maksymalny rozmiar obsługiwanych obraz ków w KiB */ | |||
char *descr; /**< Opis statusu */ | char *descr; /**< Opis statusu */ | |||
#ifndef _WIN32 | ||||
time_t time; /**< Czas powrotu */ | time_t time; /**< Czas powrotu */ | |||
#else | ||||
uint32_t time; /**< Czas powrotu */ | ||||
#endif | ||||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_ACK. | * Opis zdarzenia \c GG_EVENT_ACK. | |||
*/ | */ | |||
struct gg_event_ack { | struct gg_event_ack { | |||
uin_t recipient; /**< Numer odbiorcy */ | uin_t recipient; /**< Numer odbiorcy */ | |||
int status; /**< Status doręczenia */ | int status; /**< Status doręczenia */ | |||
int seq; /**< Numer sekwencyjny wiadomości */ | int seq; /**< Numer sekwencyjny wiadomości */ | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_ACK110. | ||||
*/ | ||||
struct gg_event_ack110 { | ||||
uint8_t msg_type; /**< Rodzaj wiadomości (0x01 - zwykła, 0x0 | ||||
2 - konferencja) */ | ||||
uint32_t seq; /**< Numer sekwencyjny */ | ||||
uint32_t time; /**< Czas zdarzenia */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_USERLIST. | * Opis zdarzenia \c GG_EVENT_USERLIST. | |||
*/ | */ | |||
struct gg_event_userlist { | struct gg_event_userlist { | |||
char type; /**< Rodzaj odpowiedzi */ | char type; /**< Rodzaj odpowiedzi */ | |||
char *reply; /**< Treść odpowiedzi */ | char *reply; /**< Treść odpowiedzi */ | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_DCC_VOICE_DATA. | * Opis zdarzenia \c GG_EVENT_DCC_VOICE_DATA. | |||
*/ | */ | |||
skipping to change at line 915 | skipping to change at line 1129 | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_XML_EVENT. | * Opis zdarzenia \c GG_EVENT_XML_EVENT. | |||
*/ | */ | |||
struct gg_event_xml_event { | struct gg_event_xml_event { | |||
char *data; /**< Bufor z komunikatem */ | char *data; /**< Bufor z komunikatem */ | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_JSON_EVENT. | ||||
*/ | ||||
struct gg_event_json_event { | ||||
char *data; /**< Bufor z komunikatem */ | ||||
char *type; /**< Bufor z typem komunikatu */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_DCC7_CONNECTED. | * Opis zdarzenia \c GG_EVENT_DCC7_CONNECTED. | |||
*/ | */ | |||
struct gg_event_dcc7_connected { | struct gg_event_dcc7_connected { | |||
struct gg_dcc7 *dcc7; /**< Struktura połączenia */ | struct gg_dcc7 *dcc7; /**< Struktura połączenia */ | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_DCC7_PENDING. | * Opis zdarzenia \c GG_EVENT_DCC7_PENDING. | |||
*/ | */ | |||
struct gg_event_dcc7_pending { | struct gg_event_dcc7_pending { | |||
skipping to change at line 997 | skipping to change at line 1219 | |||
/** | /** | |||
* Struktura opisujÄ…ca sesjÄ™ multilogowania. | * Struktura opisujÄ…ca sesjÄ™ multilogowania. | |||
*/ | */ | |||
struct gg_multilogon_session { | struct gg_multilogon_session { | |||
gg_multilogon_id_t id; /**< Identyfikator sesji */ | gg_multilogon_id_t id; /**< Identyfikator sesji */ | |||
char *name; /**< Nazwa sesji (podana w \c gg_log in_params.client_version) */ | char *name; /**< Nazwa sesji (podana w \c gg_log in_params.client_version) */ | |||
uint32_t remote_addr; /**< Adres sesji */ | uint32_t remote_addr; /**< Adres sesji */ | |||
int status_flags; /**< Flagi statusu sesji */ | int status_flags; /**< Flagi statusu sesji */ | |||
int protocol_features; /**< Opcje protokolu sesji */ | int protocol_features; /**< Opcje protokolu sesji */ | |||
#ifndef _WIN32 | ||||
time_t logon_time; /**< Czas zalogowania */ | time_t logon_time; /**< Czas zalogowania */ | |||
#else | ||||
uint32_t logon_time; /**< Czas zalogowania */ | ||||
#endif | ||||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_MULTILOGON_INFO. | * Opis zdarzenia \c GG_EVENT_MULTILOGON_INFO. | |||
*/ | */ | |||
struct gg_event_multilogon_info { | struct gg_event_multilogon_info { | |||
int count; /**< Liczba sesji */ | int count; /**< Liczba sesji */ | |||
struct gg_multilogon_session *sessions; /** Lista sesji */ | struct gg_multilogon_session *sessions; /** Lista sesji */ | |||
}; | }; | |||
skipping to change at line 1026 | skipping to change at line 1252 | |||
* Opis zdarzenia \c GG_EVENT_USERLIST100_REPLY. | * Opis zdarzenia \c GG_EVENT_USERLIST100_REPLY. | |||
*/ | */ | |||
struct gg_event_userlist100_reply { | struct gg_event_userlist100_reply { | |||
char type; /**< Rodzaj odpowiedzi */ | char type; /**< Rodzaj odpowiedzi */ | |||
uint32_t version; /**< Aktualna wersja listy kontaktó w na serwerze */ | uint32_t version; /**< Aktualna wersja listy kontaktó w na serwerze */ | |||
char format_type; /**< Typ formatu listy kontaktów (Å ¼Ä…dany w \c gg_userlist100_request.format_type) */ | char format_type; /**< Typ formatu listy kontaktów (Å ¼Ä…dany w \c gg_userlist100_request.format_type) */ | |||
char *reply; /**< Treść listy kontaktów w prze syłanej wersji i formacie */ | char *reply; /**< Treść listy kontaktów w prze syłanej wersji i formacie */ | |||
}; | }; | |||
/** | /** | |||
* Opis zdarzenia \c GG_EVENT_IMTOKEN. | ||||
*/ | ||||
struct gg_event_imtoken { | ||||
char *imtoken; /**< Wartość IMTOKEN */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_PONG110. | ||||
*/ | ||||
struct gg_event_pong110 { | ||||
#ifndef _WIN32 | ||||
time_t time; /**< Aktualny czas na serwerze */ | ||||
#else | ||||
uint32_t time; /**< Aktualny czas na serwerze */ | ||||
#endif | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_CHAT_INFO. | ||||
*/ | ||||
struct gg_event_chat_info { | ||||
uint64_t id; /**< Identyfikator konferencji */ | ||||
uint32_t version; /**< Wersja informacji o konferencji | ||||
*/ | ||||
uint32_t participants_count; /**< Ilość uczestników */ | ||||
uin_t *participants; /**< Lista uczestników */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_CHAT_INFO_UPDATE. | ||||
*/ | ||||
struct gg_event_chat_info_update { | ||||
uint64_t id; /**< Identyfikator konferencji */ | ||||
uint32_t type; /**< Typ aktualizacji (\c GG_CHAT_IN | ||||
FO_UPDATE_*) */ | ||||
uin_t participant; /**< Uczestnik, którego dotyczy akt | ||||
ualizacja */ | ||||
uin_t inviter; /**< Uczestnik inicjujÄ…cy aktualiza | ||||
cjÄ™ (zapraszajÄ…cy) */ | ||||
uint32_t version; /**< Wersja informacji o konferencji | ||||
*/ | ||||
uint32_t time; /**< Czas zdarzenia */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_CHAT_CREATED. | ||||
*/ | ||||
struct gg_event_chat_created { | ||||
uint64_t id; /**< Identyfikator konferencji */ | ||||
uint32_t seq; /**< Numer sekwencyjny */ | ||||
}; | ||||
/** | ||||
* Opis zdarzenia \c GG_EVENT_CHAT_INVITE_ACK. | ||||
*/ | ||||
struct gg_event_chat_invite_ack { | ||||
uint64_t id; /**< Identyfikator konferencji */ | ||||
uint32_t seq; /**< Numer sekwencyjny */ | ||||
}; | ||||
/** | ||||
* 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_EVEN T_CONN_FAILED) */ | enum gg_failure_t failure; /**< Błąd połączenia (\c GG_EVEN T_CONN_FAILED) */ | |||
struct gg_notify_reply *notify; /**< Zmiana statusu kontaktów (\c G G_EVENT_NOTIFY) */ | struct gg_notify_reply *notify; /**< Zmiana statusu kontaktów (\c G G_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 G G_EVENT_STATUS) */ | struct gg_event_status status; /**< Zmiana statusu kontaktów (\c G G_EVENT_STATUS) */ | |||
struct gg_event_status60 status60; /**< Zmiana statusu kontaktà ³w (\c GG_EVENT_STATUS60) */ | struct gg_event_status60 status60; /**< Zmiana statusu kontaktà ³w (\c GG_EVENT_STATUS60) */ | |||
struct gg_event_notify60 *notify60; /**< Zmiana statusu kontaktà ³w (\c GG_EVENT_NOTIFY60) */ | struct gg_event_notify60 *notify60; /**< Zmiana statusu kontaktà ³w (\c GG_EVENT_NOTIFY60) */ | |||
struct gg_event_msg msg; /**< Otrzymano wiadomość (\c GG_EV ENT_MSG) */ | struct gg_event_msg msg; /**< Otrzymano wiadomość (\c GG_EV ENT_MSG) */ | |||
struct gg_event_ack ack; /**< Potwierdzenie wiadomości (\c G G_EVENT_ACK) */ | struct gg_event_ack ack; /**< Potwierdzenie wiadomości (\c G G_EVENT_ACK) */ | |||
struct gg_event_ack110 ack110; /**< Potwierdzenie wysłania wiadomo ści (11.0) (\c GG_EVENT_ACK110) */ | ||||
struct gg_event_image_request image_request; /**< Żądanie wysł ania obrazka (\c GG_EVENT_IMAGE_REQUEST) */ | struct gg_event_image_request image_request; /**< Żądanie wysł ania obrazka (\c GG_EVENT_IMAGE_REQUEST) */ | |||
struct gg_event_image_reply image_reply; /**< Odpowiedź z ob razkiem (\c GG_EVENT_IMAGE_REPLY) */ | struct gg_event_image_reply image_reply; /**< Odpowiedź z ob razkiem (\c GG_EVENT_IMAGE_REPLY) */ | |||
struct gg_event_userlist userlist; /**< Odpowiedź listy kontak tów (\c GG_EVENT_USERLIST) */ | struct gg_event_userlist userlist; /**< Odpowiedź listy kontak tów (\c GG_EVENT_USERLIST) */ | |||
gg_pubdir50_t pubdir50; /**< Odpowiedź katalogu publicznego (\c GG_ EVENT_PUBDIR50_*) */ | gg_pubdir50_t pubdir50; /**< Odpowiedź katalogu publicznego (\c GG_ EVENT_PUBDIR50_*) */ | |||
struct gg_event_xml_event xml_event; /**< Zdarzenie systemowe (\c GG_EVENT_XML_EVENT) */ | struct gg_event_xml_event xml_event; /**< Zdarzenie systemowe (\c GG_EVENT_XML_EVENT) */ | |||
struct gg_event_json_event json_event; /**< Zdarzenie systemowe (\c GG_EVENT_JSON_EVENT) */ | ||||
struct gg_dcc *dcc_new; /**< Nowe połączenie bezpośrednie (\c GG_ EVENT_DCC_NEW) */ | struct gg_dcc *dcc_new; /**< Nowe połączenie bezpośrednie (\c GG_ EVENT_DCC_NEW) */ | |||
enum gg_error_t dcc_error; /**< Błąd połączenia bezpośredn iego (\c GG_EVENT_DCC_ERROR) */ | enum gg_error_t dcc_error; /**< Błąd połączenia bezpośredn iego (\c GG_EVENT_DCC_ERROR) */ | |||
struct gg_event_dcc_voice_data dcc_voice_data; /**< Dane połączen ia głosowego (\c GG_EVENT_DCC_VOICE_DATA) */ | struct gg_event_dcc_voice_data dcc_voice_data; /**< Dane połączen ia 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średn iego (\c GG_EVENT_DCC7_ERROR) */ | enum gg_error_t dcc7_error; /**< Błąd połączenia bezpośredn iego (\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Å‚Ä …czenia bezpoÅ›redniego (\c GG_EVENT_DCC7_REJECT) */ | struct gg_event_dcc7_reject dcc7_reject; /**< Odrzucono poÅ‚Ä …czenia 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łączeni e bezpośrednie (\c GG_EVENT_DCC7_DONE) */ | struct gg_event_dcc7_done dcc7_done; /**< Zakończono połączeni e bezpośrednie (\c GG_EVENT_DCC7_DONE) */ | |||
struct gg_event_typing_notification typing_notification; /**< Powiadomienie o pisaniu */ | struct gg_event_typing_notification typing_notification; /**< Powiadomienie o pisaniu */ | |||
struct gg_event_user_data user_data; /**< Informacje o kontaktach */ | struct gg_event_user_data user_data; /**< Informacje o kontaktach */ | |||
struct gg_event_msg multilogon_msg; /**< Inna sesja wysłała wi adomość (\c GG_EVENT_MULTILOGON_MSG) */ | struct gg_event_msg multilogon_msg; /**< Inna sesja wysłała wi adomość (\c GG_EVENT_MULTILOGON_MSG) */ | |||
struct gg_event_multilogon_info multilogon_info; /**< Informa cja o innych sesjach multilogowania (\c GG_EVENT_MULTILOGON_INFO) */ | struct gg_event_multilogon_info multilogon_info; /**< Informa cja o innych sesjach multilogowania (\c GG_EVENT_MULTILOGON_INFO) */ | |||
struct gg_event_userlist100_version userlist100_version; /**< Informacja o numerze wersji listy kontaktów na serwerze (\c GG_EVENT_USER LIST100_VERSION) */ | struct gg_event_userlist100_version userlist100_version; /**< Informacja o numerze wersji listy kontaktów na serwerze (\c GG_EVENT_USER LIST100_VERSION) */ | |||
struct gg_event_userlist100_reply userlist100_reply; /**< Odpowie dź listy kontaktów (10.0) (\c GG_EVENT_USERLIST100_REPLY) */ | struct gg_event_userlist100_reply userlist100_reply; /**< Odpowie dź listy kontaktów (10.0) (\c GG_EVENT_USERLIST100_REPLY) */ | |||
struct gg_event_imtoken imtoken; /**< CiÄ…g IMTOKEN (11.0) (\ | ||||
c GG_EVENT_IMTOKEN) */ | ||||
struct gg_event_pong110 pong110; /**< Utrzymanie połączenia | ||||
(11.0) (\c GG_EVENT_PONG110) */ | ||||
struct gg_event_chat_info chat_info; /**< Informacje o konferencj | ||||
i (11.0) (\c GG_EVENT_CHAT_INFO) */ | ||||
struct gg_event_chat_info_update chat_info_update; /**< Aktuali | ||||
zacja informacji o konferencji (11.0) (\c GG_EVENT_CHAT_INFO_UPDATE) */ | ||||
struct gg_event_chat_created chat_created; /**< Potwierdzenie u | ||||
tworzenia konferencji (11.0) (\c GG_EVENT_CHAT_CREATED) */ | ||||
struct gg_event_chat_invite_ack chat_invite_ack; /**< Potwier | ||||
dzenie wysłania zaproszenia do konferencji (11.0) (\c GG_EVENT_CHAT_INVITE | ||||
_ACK) */ | ||||
}; | }; | |||
/** | /** | |||
* 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 1177 | skipping to change at line 1467 | |||
* | * | |||
* Wartość pola GG_PUBDIR50_ACTIVE. | * Wartość pola GG_PUBDIR50_ACTIVE. | |||
*/ | */ | |||
enum { | enum { | |||
GG_PUBDIR50_ACTIVE_TRUE, /**< Wyszukaj tylko osoby dostępne */ | GG_PUBDIR50_ACTIVE_TRUE, /**< Wyszukaj tylko osoby dostępne */ | |||
}; | }; | |||
#endif /* DOXYGEN */ | #endif /* DOXYGEN */ | |||
/** | /** | |||
* Powód błędu operacji na katalogu publicznym. | ||||
* | ||||
* \ingroup http | ||||
*/ | ||||
typedef enum { | ||||
GG_PUBDIR_ERROR_NONE = 0, /**< Brak błędu */ | ||||
GG_PUBDIR_ERROR_OTHER, /**< Nieznany błąd */ | ||||
GG_PUBDIR_ERROR_TOKEN, /**< Błędny token */ | ||||
GG_PUBDIR_ERROR_OLD_PASSWORD, /**< Niepoprawne stare hasło */ | ||||
GG_PUBDIR_ERROR_NEW_PASSWORD, /**< Niepoprawne nowe hasło */ | ||||
} gg_pubdir_error_t; | ||||
/** | ||||
* Wynik operacji na katalogu publicznym. | * Wynik operacji na katalogu publicznym. | |||
* | * | |||
* \ingroup http | * \ingroup http | |||
*/ | */ | |||
struct gg_pubdir { | struct gg_pubdir { | |||
int success; /**< Flaga powodzenia operacji */ | int success; /**< Flaga powodzenia operacji */ | |||
uin_t uin; /**< Otrzymany numer lub 0 w przypadku błę du */ | uin_t uin; /**< Otrzymany numer lub 0 w przypadku błę du */ | |||
gg_pubdir_error_t error; /**< Powód błędu */ | ||||
}; | }; | |||
int gg_pubdir_watch_fd(struct gg_http *f); | int gg_pubdir_watch_fd(struct gg_http *f); | |||
void gg_pubdir_free(struct gg_http *f); | void gg_pubdir_free(struct gg_http *f); | |||
/** | /** | |||
* Token autoryzacji niektórych operacji HTTP. | * Token autoryzacji niektórych operacji HTTP. | |||
* | * | |||
* \ingroup token | * \ingroup token | |||
*/ | */ | |||
skipping to change at line 1278 | skipping to change at line 1582 | |||
/** | /** | |||
* \ingroup debug | * \ingroup debug | |||
* @{ | * @{ | |||
*/ | */ | |||
#define GG_DEBUG_NET 1 /**< Rejestracja zdarzeń związanych z siec ią */ | #define GG_DEBUG_NET 1 /**< Rejestracja zdarzeń związanych z siec ią */ | |||
#define GG_DEBUG_TRAFFIC 2 /**< Rejestracja ruchu sieciowego */ | #define GG_DEBUG_TRAFFIC 2 /**< Rejestracja ruchu sieciowego */ | |||
#define GG_DEBUG_DUMP 4 /**< Rejestracja zawartoÅ›ci pakietà ³w */ | #define GG_DEBUG_DUMP 4 /**< Rejestracja zawartoÅ›ci pakietà ³w */ | |||
#define GG_DEBUG_FUNCTION 8 /**< Rejestracja wywołań funkcji */ | #define GG_DEBUG_FUNCTION 8 /**< Rejestracja wywołań funkcji */ | |||
#define GG_DEBUG_MISC 16 /**< Rejestracja różnych informacji */ | #define GG_DEBUG_MISC 16 /**< Rejestracja różnych informacji */ | |||
#define GG_DEBUG_VERBOSE 32 /**< Rejestracja informacji szczegółowych | ||||
*/ | ||||
#define GG_DEBUG_WARNING 64 /**< Rejestracja ostrzeżeń */ | ||||
#define GG_DEBUG_ERROR 128 /**< Rejestracja błędów krytycznych */ | ||||
/** @} */ | /** @} */ | |||
const char *gg_debug_state(enum gg_state_t state); | ||||
const char *gg_debug_event(enum gg_event_t event); | ||||
#ifdef GG_DEBUG_DISABLE | #ifdef GG_DEBUG_DISABLE | |||
#define gg_debug(x, y...) do { } while(0) | #define gg_debug(...) do { } while (0) | |||
#define gg_debug_session(z, x, y...) do { } while(0) | #define gg_debug_session(...) do { } while (0) | |||
#else | #else | |||
void gg_debug(int level, const char *format, ...); | void gg_debug(int level, const char *format, ...) GG_GNUC_PRINTF(2, 3); | |||
void gg_debug_session(struct gg_session *sess, int level, const char *forma | void gg_debug_session(struct gg_session *sess, int level, const char *forma | |||
t, ...); | t, ...) GG_GNUC_PRINTF(3, 4); | |||
#endif | #endif | |||
const char *gg_libgadu_version(void); | const char *gg_libgadu_version(void); | |||
/** | /** | |||
* Lista funkcji biblioteki, które zależą od zewnętrznych bibliotek. | * Lista funkcji biblioteki, które zależą od zewnętrznych bibliotek. | |||
* | * | |||
* \ingroup version | * \ingroup version | |||
*/ | */ | |||
typedef enum { | typedef enum { | |||
skipping to change at line 1444 | skipping to change at line 1754 | |||
struct gg_http *gg_userlist_remove(uin_t uin, const char *password, int asy nc) GG_DEPRECATED; | struct gg_http *gg_userlist_remove(uin_t uin, const char *password, int asy nc) GG_DEPRECATED; | |||
int gg_userlist_remove_watch_fd(struct gg_http *f) GG_DEPRECATED; | int gg_userlist_remove_watch_fd(struct gg_http *f) GG_DEPRECATED; | |||
void gg_userlist_remove_free(struct gg_http *f) GG_DEPRECATED; | void gg_userlist_remove_free(struct gg_http *f) GG_DEPRECATED; | |||
int gg_pubdir50_handle_reply(struct gg_event *e, const char *packet, int le ngth) GG_DEPRECATED; | int gg_pubdir50_handle_reply(struct gg_event *e, const char *packet, int le ngth) GG_DEPRECATED; | |||
/** \endcond */ | /** \endcond */ | |||
int gg_file_hash_sha1(int fd, uint8_t *result) GG_DEPRECATED; | int gg_file_hash_sha1(int fd, uint8_t *result) GG_DEPRECATED; | |||
#ifdef __GNUC__ | char *gg_saprintf(const char *format, ...) GG_GNUC_PRINTF(1, 2) GG_DEPRECAT | |||
char *gg_saprintf(const char *format, ...) __attribute__ ((format (printf, | ED; | |||
1, 2))) GG_DEPRECATED; | ||||
#else | ||||
char *gg_saprintf(const char *format, ...) GG_DEPRECATED; | ||||
#endif | ||||
char *gg_vsaprintf(const char *format, va_list ap) GG_DEPRECATED; | char *gg_vsaprintf(const char *format, va_list ap) GG_DEPRECATED; | |||
#define gg_alloc_sprintf gg_saprintf | #define gg_alloc_sprintf gg_saprintf | |||
char *gg_get_line(char **ptr) GG_DEPRECATED; | char *gg_get_line(char **ptr) GG_DEPRECATED; | |||
int gg_connect(void *addr, int port, int async) GG_DEPRECATED; | int gg_connect(void *addr, int port, int async) GG_DEPRECATED; | |||
struct in_addr *gg_gethostbyname(const char *hostname) GG_DEPRECATED; | struct in_addr *gg_gethostbyname(const char *hostname) GG_DEPRECATED; | |||
char *gg_read_line(int sock, char *buf, int length) GG_DEPRECATED; | char *gg_read_line(int sock, char *buf, int length) GG_DEPRECATED; | |||
void gg_chomp(char *line) GG_DEPRECATED; | void gg_chomp(char *line) GG_DEPRECATED; | |||
skipping to change at line 1490 | skipping to change at line 1795 | |||
*/ | */ | |||
struct gg_image_queue { | struct gg_image_queue { | |||
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 */ | |||
uint32_t packet_type; /**< \brief Rodzaj odbieranych pakie | ||||
tów. W niektórych przypadkach (przy multilogowaniu) serwer wysyła nam dw | ||||
ie kopie obrazka jako dwa różne typy pakietów */ | ||||
} GG_DEPRECATED; | } GG_DEPRECATED; | |||
int gg_dcc7_handle_id(struct gg_session *sess, struct gg_event *e, const vo id *payload, int len) GG_DEPRECATED; | int gg_dcc7_handle_id(struct gg_session *sess, struct gg_event *e, const vo id *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_new(struct gg_session *sess, struct gg_event *e, const v oid *payload, int len) GG_DEPRECATED; | int gg_dcc7_handle_new(struct gg_session *sess, struct gg_event *e, const v oid *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_info(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED; | int gg_dcc7_handle_info(struct gg_session *sess, struct gg_event *e, const void *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_accept(struct gg_session *sess, struct gg_event *e, cons t void *payload, int len) GG_DEPRECATED; | int gg_dcc7_handle_accept(struct gg_session *sess, struct gg_event *e, cons t void *payload, int len) GG_DEPRECATED; | |||
int gg_dcc7_handle_reject(struct gg_session *sess, struct gg_event *e, cons t void *payload, int len) GG_DEPRECATED; | int gg_dcc7_handle_reject(struct gg_session *sess, struct gg_event *e, cons 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 | |||
skipping to change at line 1513 | skipping to change at line 1820 | |||
#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_HOST "relay.gadu-gadu.pl" | |||
#define GG_RELAY_PORT 80 | #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 "10.1.0.11070" | #define GG_PROTOCOL_VERSION_100 0x2e | |||
#define GG_DEFAULT_PROTOCOL_VERSION 0x2e | #define GG_PROTOCOL_VERSION_110 0x40 | |||
/* GG_DEPRECATED */ | ||||
#define GG_DEFAULT_CLIENT_VERSION "-" | ||||
#define GG_DEFAULT_PROTOCOL_VERSION GG_PROTOCOL_VERSION_110 | ||||
#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.11.4" | #define GG_LIBGADU_VERSION "1.12.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_40 0x0040 | |||
skipping to change at line 1669 | skipping to change at line 1981 | |||
#define GG_STATUS_AVAIL 0x0002 | #define GG_STATUS_AVAIL 0x0002 | |||
#define GG_STATUS_AVAIL_DESCR 0x0004 | #define GG_STATUS_AVAIL_DESCR 0x0004 | |||
#define GG_STATUS_BUSY 0x0003 | #define GG_STATUS_BUSY 0x0003 | |||
#define GG_STATUS_BUSY_DESCR 0x0005 | #define GG_STATUS_BUSY_DESCR 0x0005 | |||
#define GG_STATUS_DND 0x0021 | #define GG_STATUS_DND 0x0021 | |||
#define GG_STATUS_DND_DESCR 0x0022 | #define GG_STATUS_DND_DESCR 0x0022 | |||
#define GG_STATUS_INVISIBLE 0x0014 | #define GG_STATUS_INVISIBLE 0x0014 | |||
#define GG_STATUS_INVISIBLE_DESCR 0x0016 | #define GG_STATUS_INVISIBLE_DESCR 0x0016 | |||
#define GG_STATUS_BLOCKED 0x0006 | #define GG_STATUS_BLOCKED 0x0006 | |||
#define GG_STATUS_GGPLUS 0x0020 | ||||
#define GG_STATUS_NOT_SET 0x0023 | ||||
#define GG_STATUS_UNKNOWN 0x0025 | ||||
#define GG_STATUS_IMAGE_MASK 0x0100 | #define GG_STATUS_IMAGE_MASK 0x0100 | |||
#define GG_STATUS_DESCR_MASK 0x4000 | #define GG_STATUS_DESCR_MASK 0x4000 | |||
#define GG_STATUS_FRIENDS_MASK 0x8000 | #define GG_STATUS_FRIENDS_MASK 0x8000 | |||
#define GG_STATUS_FLAG_UNKNOWN 0x00000001 | #define GG_STATUS_FLAG_UNKNOWN 0x00000001 | |||
#define GG_STATUS_FLAG_VIDEO 0x00000002 | #define GG_STATUS_FLAG_VIDEO 0x00000002 | |||
#define GG_STATUS_FLAG_INHERIT 0x00000020 | ||||
#define GG_STATUS_FLAG_MOBILE 0x00100000 | #define GG_STATUS_FLAG_MOBILE 0x00100000 | |||
#define GG_STATUS_FLAG_SPAM 0x00800000 | #define GG_STATUS_FLAG_SPAM 0x00800000 | |||
#else | #else | |||
/** | /** | |||
* Rodzaje statusów użytkownika. | * Rodzaje statusów użytkownika. | |||
* | * | |||
* \ingroup status | * \ingroup status | |||
*/ | */ | |||
skipping to change at line 1699 | skipping to change at line 2016 | |||
GG_STATUS_FFC_DESCR, /**< PoGGadaj ze mnÄ… z opisem */ | GG_STATUS_FFC_DESCR, /**< PoGGadaj ze mnÄ… z opisem */ | |||
GG_STATUS_AVAIL, /**< Dostępny */ | GG_STATUS_AVAIL, /**< Dostępny */ | |||
GG_STATUS_AVAIL_DESCR, /**< Dostępny z opisem */ | GG_STATUS_AVAIL_DESCR, /**< Dostępny z opisem */ | |||
GG_STATUS_BUSY, /**< Zajęty */ | GG_STATUS_BUSY, /**< Zajęty */ | |||
GG_STATUS_BUSY_DESCR, /**< Zajęty z opisem */ | GG_STATUS_BUSY_DESCR, /**< Zajęty z opisem */ | |||
GG_STATUS_DND, /**< Nie przeszkadzać */ | GG_STATUS_DND, /**< Nie przeszkadzać */ | |||
GG_STATUS_DND_DESCR, /**< Nie przeszakdzać z opisem */ | GG_STATUS_DND_DESCR, /**< Nie przeszakdzać z opisem */ | |||
GG_STATUS_INVISIBLE, /**< Niewidoczny (tylko własny stat us) */ | GG_STATUS_INVISIBLE, /**< Niewidoczny (tylko własny stat us) */ | |||
GG_STATUS_INVISIBLE_DESCR, /**< Niewidoczny z opisem (tylko wł asny status) */ | GG_STATUS_INVISIBLE_DESCR, /**< Niewidoczny z opisem (tylko wł asny status) */ | |||
GG_STATUS_BLOCKED, /**< Zablokowany (tylko status innyc h) */ | GG_STATUS_BLOCKED, /**< Zablokowany (tylko status innyc h) */ | |||
GG_STATUS_GGPLUS, /**< Status "Korzystam z GG Plus" */ | ||||
GG_STATUS_NOT_SET, /**< Status nie ustawiony (przy logo | ||||
waniu siÄ™ do sieci) */ | ||||
GG_STATUS_IMAGE_MASK, /**< Flaga bitowa oznaczająca opis graficzny (tylko jeśli wybrano \c GG_FEATURE_IMAGE_DESCR) */ | GG_STATUS_IMAGE_MASK, /**< Flaga bitowa oznaczająca opis graficzny (tylko jeśli wybrano \c GG_FEATURE_IMAGE_DESCR) */ | |||
GG_STATUS_DESCR_MASK, /**< Flaga bitowa oznaczająca statu s z opisem (tylko jeśli wybrano \c GG_FEATURE_IMAGE_DESCR) */ | GG_STATUS_DESCR_MASK, /**< Flaga bitowa oznaczająca statu s z opisem (tylko jeśli wybrano \c GG_FEATURE_IMAGE_DESCR) */ | |||
GG_STATUS_FRIENDS_MASK, /**< Flaga bitowa dostępności tylk o dla znajomych */ | GG_STATUS_FRIENDS_MASK, /**< Flaga bitowa dostępności tylk o dla znajomych */ | |||
}; | }; | |||
/** | /** | |||
* Rodzaje statusów użytkownika. Mapa bitowa. | * Rodzaje statusów użytkownika. Mapa bitowa. | |||
* | * | |||
* \ingroup status | * \ingroup status | |||
*/ | */ | |||
enum { | enum { | |||
GG_STATUS_FLAG_UNKNOWN, /**< Przeznaczenie nieznane, ale wys tępuje zawsze */ | GG_STATUS_FLAG_UNKNOWN, /**< Przeznaczenie nieznane, ale wys tępuje zawsze */ | |||
GG_STATUS_FLAG_VIDEO, /**< Klient obsługuje wideorozmowy */ | GG_STATUS_FLAG_VIDEO, /**< Klient obsługuje wideorozmowy */ | |||
GG_STATUS_FLAG_INHERIT, /**< Synchronizacja statusu do innyc h klientów (przy logowaniu się do sieci) */ | ||||
GG_STATUS_FLAG_MOBILE, /**< Klient mobilny (ikona telefonu komórkowego) */ | GG_STATUS_FLAG_MOBILE, /**< Klient mobilny (ikona telefonu komórkowego) */ | |||
GG_STATUS_FLAG_SPAM, /**< Klient chce otrzymywać linki o d nieznajomych */ | GG_STATUS_FLAG_SPAM, /**< Klient chce otrzymywać linki o d nieznajomych */ | |||
}; | }; | |||
#endif /* DOXYGEN */ | #endif /* DOXYGEN */ | |||
/** | /** | |||
* \ingroup status | * \ingroup status | |||
* | * | |||
* Flaga bitowa dostepnosci informujaca ze mozemy voipowac | * Flaga bitowa dostepnosci informujaca ze mozemy voipowac | |||
skipping to change at line 2168 | skipping to change at line 2488 | |||
GG_USERLIST100_FORMAT_TYPE_NONE, /**< Brak treści listy kont aktów. */ | GG_USERLIST100_FORMAT_TYPE_NONE, /**< Brak treści listy kont aktów. */ | |||
GG_USERLIST100_FORMAT_TYPE_GG70, /**< Format listy kontaktów zgodny z Gadu-Gadu 7.0. */ | GG_USERLIST100_FORMAT_TYPE_GG70, /**< Format listy kontaktów zgodny z Gadu-Gadu 7.0. */ | |||
GG_USERLIST100_FORMAT_TYPE_GG100, /**< Format listy kontaktów zgodny z Gadu-Gadu 10.0. */ | GG_USERLIST100_FORMAT_TYPE_GG100, /**< Format listy kontaktów zgodny z Gadu-Gadu 10.0. */ | |||
}; | }; | |||
#endif /* DOXYGEN */ | #endif /* DOXYGEN */ | |||
#ifndef DOXYGEN | #ifndef DOXYGEN | |||
#define GG_USERLIST100_REPLY_LIST 0x00 | #define GG_USERLIST100_REPLY_LIST 0x00 | |||
#define GG_USERLIST100_REPLY_UPTODATE 0x01 | ||||
#define GG_USERLIST100_REPLY_ACK 0x10 | #define GG_USERLIST100_REPLY_ACK 0x10 | |||
#define GG_USERLIST100_REPLY_REJECT 0x12 | #define GG_USERLIST100_REPLY_REJECT 0x12 | |||
#else | #else | |||
/** | /** | |||
* \ingroup importexport | * \ingroup importexport | |||
* | * | |||
* Typ odpowiedzi listy kontaktów (10.0). | * Typ odpowiedzi listy kontaktów (10.0). | |||
*/ | */ | |||
enum { | enum { | |||
GG_USERLIST100_REPLY_LIST, /**< W odpowiedzi znajduje się aktu alna lista kontaktów na serwerze. */ | GG_USERLIST100_REPLY_LIST, /**< W odpowiedzi znajduje się aktu alna lista kontaktów na serwerze. */ | |||
GG_USERLIST100_REPLY_UPTODATE, /**< Komunikat o tym, że lista kont aktów jest już zsynchronizowana. */ | ||||
GG_USERLIST100_REPLY_ACK, /**< Potwierdzenie odebrania nowej w ersji listy kontaktów. W polu \c gg_userlist100_reply.version znajduje siÄ ™ numer nowej wersji listy kontaktów. */ | GG_USERLIST100_REPLY_ACK, /**< Potwierdzenie odebrania nowej w ersji listy kontaktów. W polu \c gg_userlist100_reply.version znajduje siÄ ™ numer nowej wersji listy kontaktów. */ | |||
GG_USERLIST100_REPLY_REJECT, /**< Odmowa przyjęcia nowej wersji listy kontaktów. W polu \c gg_userlist100_reply.version znajduje się nume r wersji listy kontaktów aktualnie przechowywanej przez serwer. */ | GG_USERLIST100_REPLY_REJECT, /**< Odmowa przyjęcia nowej wersji listy kontaktów. W polu \c gg_userlist100_reply.version znajduje się nume r wersji listy kontaktów aktualnie przechowywanej przez serwer. */ | |||
}; | }; | |||
#endif /* DOXYGEN */ | #endif /* DOXYGEN */ | |||
struct gg_dcc_tiny_packet { | struct gg_dcc_tiny_packet { | |||
uint8_t type; /* rodzaj pakietu */ | uint8_t type; /* rodzaj pakietu */ | |||
} GG_PACKED; | } GG_PACKED; | |||
skipping to change at line 2249 | skipping to change at line 2571 | |||
#define GG_DCC7_ACCEPT 0x21 | #define GG_DCC7_ACCEPT 0x21 | |||
struct gg_dcc7_accept { | struct gg_dcc7_accept { | |||
uint32_t uin; /* numer przyjmującego połączenie */ | uint32_t uin; /* numer przyjmującego połączenie */ | |||
gg_dcc7_id_t id; /* identyfikator połączenia */ | gg_dcc7_id_t id; /* identyfikator połączenia */ | |||
uint32_t offset; /* offset przy wznawianiu transmisji */ | uint32_t offset; /* offset przy wznawianiu transmisji */ | |||
uint32_t dunno1; /* 0x00000000 */ | uint32_t dunno1; /* 0x00000000 */ | |||
} GG_PACKED; | } GG_PACKED; | |||
// XXX API | /* XXX API */ | |||
#define GG_DCC7_TYPE_P2P 0x00000001 /**< Połączenie bezpośrednie */ | #define GG_DCC7_TYPE_P2P 0x00000001 /**< Połączenie bezpośrednie */ | |||
#define GG_DCC7_TYPE_SERVER 0x00000002 /**< Połączenie przez serwer */ | #define GG_DCC7_TYPE_SERVER 0x00000002 /**< Połączenie przez serwer */ | |||
#define GG_DCC7_REJECT 0x22 | #define GG_DCC7_REJECT 0x22 | |||
struct gg_dcc7_reject { | struct gg_dcc7_reject { | |||
uint32_t uin; /**< Numer odrzucającego połączen ie */ | uint32_t uin; /**< Numer odrzucającego połączen ie */ | |||
gg_dcc7_id_t id; /**< Identyfikator połączenia */ | gg_dcc7_id_t id; /**< Identyfikator połączenia */ | |||
uint32_t reason; /**< Powód rozłączenia */ | uint32_t reason; /**< Powód rozłączenia */ | |||
} GG_PACKED; | } GG_PACKED; | |||
// XXX API | /* XXX API */ | |||
#define GG_DCC7_REJECT_BUSY 0x00000001 /**< Połączenie bezpośrednie już trwa, nie umiem obsłużyć więcej */ | #define GG_DCC7_REJECT_BUSY 0x00000001 /**< Połączenie bezpośrednie już trwa, nie umiem obsłużyć więcej */ | |||
#define GG_DCC7_REJECT_USER 0x00000002 /**< Użytkownik odrzucił połącze nie */ | #define GG_DCC7_REJECT_USER 0x00000002 /**< Użytkownik odrzucił połącze nie */ | |||
#define GG_DCC7_REJECT_VERSION 0x00000006 /**< Druga strona ma wersję klienta nieobsługującą połączeń bezpośrednich tego typu */ | #define GG_DCC7_REJECT_VERSION 0x00000006 /**< Druga strona ma wersję klienta nieobsługującą połączeń bezpośrednich tego typu */ | |||
#define GG_DCC7_ID_REQUEST 0x23 | #define GG_DCC7_ID_REQUEST 0x23 | |||
struct gg_dcc7_id_request { | struct gg_dcc7_id_request { | |||
uint32_t type; /**< Rodzaj tranmisji */ | uint32_t type; /**< Rodzaj tranmisji */ | |||
} GG_PACKED; | } GG_PACKED; | |||
// XXX API | /* XXX API */ | |||
#define GG_DCC7_TYPE_VOICE 0x00000001 /**< Transmisja głosu */ | #define GG_DCC7_TYPE_VOICE 0x00000001 /**< Transmisja głosu */ | |||
#define GG_DCC7_TYPE_FILE 0x00000004 /**< transmisja pliku */ | #define GG_DCC7_TYPE_FILE 0x00000004 /**< transmisja pliku */ | |||
#define GG_DCC7_ID_REPLY 0x23 | #define GG_DCC7_ID_REPLY 0x23 | |||
struct gg_dcc7_id_reply { | struct gg_dcc7_id_reply { | |||
uint32_t type; /** Rodzaj transmisji */ | uint32_t type; /** Rodzaj transmisji */ | |||
gg_dcc7_id_t id; /** Przyznany identyfikator */ | gg_dcc7_id_t id; /** Przyznany identyfikator */ | |||
} GG_PACKED; | } GG_PACKED; | |||
#define GG_DCC7_DUNNO1 0x24 | #define GG_DCC7_DUNNO1 0x24 | |||
struct gg_dcc7_dunno1 { | ||||
// XXX | ||||
} GG_PACKED; | ||||
#define GG_DCC7_TIMEOUT_CONNECT 10 /* 10 sekund */ | #define GG_DCC7_TIMEOUT_CONNECT 10 /* 10 sekund */ | |||
#define GG_DCC7_TIMEOUT_SEND 1800 /* 30 minut */ | #define GG_DCC7_TIMEOUT_SEND 1800 /* 30 minut */ | |||
#define GG_DCC7_TIMEOUT_GET 1800 /* 30 minut */ | #define GG_DCC7_TIMEOUT_GET 1800 /* 30 minut */ | |||
#define GG_DCC7_TIMEOUT_FILE_ACK 300 /* 5 minut */ | #define GG_DCC7_TIMEOUT_FILE_ACK 300 /* 5 minut */ | |||
#define GG_DCC7_TIMEOUT_VOICE_ACK 300 /* 5 minut */ | #define GG_DCC7_TIMEOUT_VOICE_ACK 300 /* 5 minut */ | |||
#define GG_CHAT_INFO_UPDATE_ENTERED 0x01 | ||||
#define GG_CHAT_INFO_UPDATE_EXITED 0x03 | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | ||||
#ifdef _WIN32 | #ifdef _WIN32 | |||
#pragma pack(pop) | #pragma pack(pop) | |||
#endif | #endif | |||
#endif | ||||
#endif /* __GG_LIBGADU_H */ | #endif /* LIBGADU_LIBGADU_H */ | |||
/* | /* | |||
* Local variables: | * Local variables: | |||
* c-indentation-style: k&r | * c-indentation-style: k&r | |||
* c-basic-offset: 8 | * c-basic-offset: 8 | |||
* indent-tabs-mode: notnil | * indent-tabs-mode: notnil | |||
* End: | * End: | |||
* | * | |||
* vim: shiftwidth=8: | * vim: shiftwidth=8: | |||
*/ | */ | |||
End of changes. 67 change blocks. | ||||
63 lines changed or deleted | 458 lines changed or added | |||