Obsługa połączeń bezpośrednich od wersji Gadu-Gadu 7.x. Więcej...
Definicje | |
#define | gg_debug_dcc(dcc, fmt...) gg_debug_session((dcc) ? (dcc)->sess : NULL, fmt) |
Funkcje | |
static int | gg_dcc7_session_add (struct gg_session *sess, struct gg_dcc7 *dcc) |
static int | gg_dcc7_session_remove (struct gg_session *sess, struct gg_dcc7 *dcc) |
static struct gg_dcc7 * | gg_dcc7_session_find (struct gg_session *sess, gg_dcc7_id_t id, uin_t uin) |
static int | gg_dcc7_connect (struct gg_session *sess, struct gg_dcc7 *dcc) |
static int | gg_dcc7_listen (struct gg_dcc7 *dcc, uint16_t port) |
static int | gg_dcc7_listen_and_send_info (struct gg_dcc7 *dcc) |
static int | gg_dcc7_reverse_connect (struct gg_dcc7 *dcc) |
static int | gg_dcc7_request_id (struct gg_session *sess, uint32_t type) |
static struct gg_dcc7 * | gg_dcc7_send_file_common (struct gg_session *sess, uin_t rcpt, int fd, size_t size, const char *filename1250, const char *hash, int seek) |
struct gg_dcc7 * | gg_dcc7_send_file (struct gg_session *sess, uin_t rcpt, const char *filename, const char *filename1250, const char *hash) |
Rozpoczyna wysyłanie pliku o danej nazwie. | |
struct gg_dcc7 * | gg_dcc7_send_file_fd (struct gg_session *sess, uin_t rcpt, int fd, size_t size, const char *filename1250, const char *hash) |
int | gg_dcc7_accept (struct gg_dcc7 *dcc, unsigned int offset) |
Potwierdza chęć odebrania pliku. | |
int | gg_dcc7_reject (struct gg_dcc7 *dcc, int reason) |
Odrzuca próbę przesłania pliku. | |
int | gg_dcc7_handle_id (struct gg_session *sess, struct gg_event *e, void *payload, int len) |
int | gg_dcc7_handle_accept (struct gg_session *sess, struct gg_event *e, void *payload, int len) |
int | gg_dcc7_handle_info (struct gg_session *sess, struct gg_event *e, void *payload, int len) |
int | gg_dcc7_handle_reject (struct gg_session *sess, struct gg_event *e, void *payload, int len) |
int | gg_dcc7_handle_new (struct gg_session *sess, struct gg_event *e, void *payload, int len) |
static int | gg_dcc7_postauth_fixup (struct gg_dcc7 *dcc) |
struct gg_event * | gg_dcc7_watch_fd (struct gg_dcc7 *dcc) |
Funkcja wywoływana po zaobserwowaniu zmian na deskryptorze połączenia. | |
void | gg_dcc7_free (struct gg_dcc7 *dcc) |
Zwalnia zasoby używane przez połączenie bezpośrednie. |
Obsługa połączeń bezpośrednich od wersji Gadu-Gadu 7.x.
#define gg_debug_dcc | ( | dcc, | |||
fmt... | ) | gg_debug_session((dcc) ? (dcc)->sess : NULL, fmt) |
static int gg_dcc7_session_add | ( | struct gg_session * | sess, | |
struct gg_dcc7 * | dcc | |||
) | [static] |
Tylko do użytku wewnętrznego.
Dodaje połączenie bezpośrednie do sesji.
sess | Struktura sesji | |
dcc | Struktura połączenia |
static int gg_dcc7_session_remove | ( | struct gg_session * | sess, | |
struct gg_dcc7 * | dcc | |||
) | [static] |
Tylko do użytku wewnętrznego.
Usuwa połączenie bezpośrednie z sesji.
sess | Struktura sesji | |
dcc | Struktura połączenia |
static struct gg_dcc7* gg_dcc7_session_find | ( | struct gg_session * | sess, | |
gg_dcc7_id_t | id, | |||
uin_t | uin | |||
) | [static, read] |
Tylko do użytku wewnętrznego.
Zwraca strukturę połączenia o danym identyfikatorze.
sess | Struktura sesji | |
id | Identyfikator połączenia | |
uin | Numer nadawcy lub odbiorcy |
NULL
jeśli nie znaleziono static int gg_dcc7_connect | ( | struct gg_session * | sess, | |
struct gg_dcc7 * | dcc | |||
) | [static] |
Tylko do użytku wewnętrznego.
Nawiązuje połączenie bezpośrednie
sess | Struktura sesji | |
dcc | Struktura połączenia |
static int gg_dcc7_listen | ( | struct gg_dcc7 * | dcc, | |
uint16_t | port | |||
) | [static] |
Tylko do użytku wewnętrznego.
Tworzy gniazdo nasłuchujące dla połączenia bezpośredniego
dcc | Struktura połączenia | |
port | Preferowany port (jeśli równy 0 lub -1, próbuje się domyślnego) |
static int gg_dcc7_listen_and_send_info | ( | struct gg_dcc7 * | dcc | ) | [static] |
Tylko do użytku wewnętrznego.
Tworzy gniazdo nasłuchujące i wysyła jego parametry
dcc | Struktura połączenia |
static int gg_dcc7_reverse_connect | ( | struct gg_dcc7 * | dcc | ) | [static] |
Tylko do użytku wewnętrznego.
Odwraca połączenie po nieudanym connect()
dcc | Struktura połączenia |
static int gg_dcc7_request_id | ( | struct gg_session * | sess, | |
uint32_t | type | |||
) | [static] |
Tylko do użytku wewnętrznego.
Wysyła do serwera żądanie nadania identyfikatora sesji
sess | Struktura sesji | |
type | Rodzaj połączenia (GG_DCC7_TYPE_FILE lub GG_DCC7_TYPE_VOICE ) |
int gg_dcc7_handle_id | ( | struct gg_session * | sess, | |
struct gg_event * | e, | |||
void * | payload, | |||
int | len | |||
) |
Tylko do użytku wewnętrznego.
Obsługuje pakiet identyfikatora połączenia bezpośredniego.
sess | Struktura sesji | |
e | Struktura zdarzenia | |
payload | Treść pakietu | |
len | Długość pakietu |
int gg_dcc7_handle_accept | ( | struct gg_session * | sess, | |
struct gg_event * | e, | |||
void * | payload, | |||
int | len | |||
) |
Tylko do użytku wewnętrznego.
Obsługuje pakiet akceptacji połączenia bezpośredniego.
sess | Struktura sesji | |
e | Struktura zdarzenia | |
payload | Treść pakietu | |
len | Długość pakietu |
int gg_dcc7_handle_info | ( | struct gg_session * | sess, | |
struct gg_event * | e, | |||
void * | payload, | |||
int | len | |||
) |
Tylko do użytku wewnętrznego.
Obsługuje pakiet informacji o połączeniu bezpośrednim.
sess | Struktura sesji | |
e | Struktura zdarzenia | |
payload | Treść pakietu | |
len | Długość pakietu |
int gg_dcc7_handle_reject | ( | struct gg_session * | sess, | |
struct gg_event * | e, | |||
void * | payload, | |||
int | len | |||
) |
Tylko do użytku wewnętrznego.
Obsługuje pakiet odrzucenia połączenia bezpośredniego.
sess | Struktura sesji | |
e | Struktura zdarzenia | |
payload | Treść pakietu | |
len | Długość pakietu |
int gg_dcc7_handle_new | ( | struct gg_session * | sess, | |
struct gg_event * | e, | |||
void * | payload, | |||
int | len | |||
) |
Tylko do użytku wewnętrznego.
Obsługuje pakiet nowego połączenia bezpośredniego.
sess | Struktura sesji | |
e | Struktura zdarzenia | |
payload | Treść pakietu | |
len | Długość pakietu |
static int gg_dcc7_postauth_fixup | ( | struct gg_dcc7 * | dcc | ) | [static] |
Tylko do użytku wewnętrznego.
Ustawia odpowiednie stany wewnętrzne w zależności od rodzaju połączenia.
dcc | Struktura połączenia |