libgadu
1.12.2
|
Obsługa połączeń bezpośrednich od wersji Gadu-Gadu 7.x. Więcej...
Definicje | |
#define | gg_debug_dcc(dcc, level, fmt...) gg_debug_session(((dcc) != NULL) ? (dcc)->sess : NULL, level, fmt) |
#define | gg_debug_dump_dcc(dcc, level, buf, len) gg_debug_dump(((dcc) != NULL) ? (dcc)->sess : NULL, level, buf, len) |
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_get_relay_addr (struct gg_dcc7 *dcc) |
static int | gg_dcc7_connect (struct gg_dcc7 *dcc) |
static int | gg_dcc7_listen (struct gg_dcc7 *dcc, uint32_t addr, 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. Więcej... | |
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. Więcej... | |
int | gg_dcc7_reject (struct gg_dcc7 *dcc, int reason) |
Odrzuca próbę przesłania pliku. Więcej... | |
int | gg_dcc7_handle_id (struct gg_session *sess, struct gg_event *e, const void *payload, int len) |
int | gg_dcc7_handle_accept (struct gg_session *sess, struct gg_event *e, const void *payload, int len) |
int | gg_dcc7_handle_info (struct gg_session *sess, struct gg_event *e, const void *payload, int len) |
int | gg_dcc7_handle_reject (struct gg_session *sess, struct gg_event *e, const void *payload, int len) |
int | gg_dcc7_handle_new (struct gg_session *sess, struct gg_event *e, const 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. Więcej... | |
void | gg_dcc7_free (struct gg_dcc7 *dcc) |
Zwalnia zasoby używane przez połączenie bezpośrednie. Więcej... | |
Obsługa połączeń bezpośrednich od wersji Gadu-Gadu 7.x.
#define gg_debug_dcc | ( | dcc, | |
level, | |||
fmt... | |||
) | gg_debug_session(((dcc) != NULL) ? (dcc)->sess : NULL, level, fmt) |
#define gg_debug_dump_dcc | ( | dcc, | |
level, | |||
buf, | |||
len | |||
) | gg_debug_dump(((dcc) != NULL) ? (dcc)->sess : NULL, level, buf, len) |
|
static |
Dodaje połączenie bezpośrednie do sesji.
sess | Struktura sesji |
dcc | Struktura połączenia |
|
static |
Usuwa połączenie bezpośrednie z sesji.
sess | Struktura sesji |
dcc | Struktura połączenia |
|
static |
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 |
Rozpoczyna proces pobierania adresu
dcc | Struktura połączenia |
|
static |
Nawiązuje połączenie bezpośrednie
dcc | Struktura połączenia |
|
static |
Tworzy gniazdo nasłuchujące dla połączenia bezpośredniego
dcc | Struktura połączenia |
addr | Preferowany adres (jeśli równy 0, nasłuchujemy na wszystkich interfejsach) |
port | Preferowany port (jeśli równy 0, nasłuchujemy na losowym) |
|
static |
Tworzy gniazdo nasłuchujące i wysyła jego parametry
dcc | Struktura połączenia |
|
static |
Odwraca połączenie po nieudanym connect()
dcc | Struktura połączenia |
|
static |
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, | ||
const void * | payload, | ||
int | len | ||
) |
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, | ||
const void * | payload, | ||
int | len | ||
) |
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, | ||
const void * | payload, | ||
int | len | ||
) |
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, | ||
const void * | payload, | ||
int | len | ||
) |
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, | ||
const void * | payload, | ||
int | len | ||
) |
Obsługuje pakiet nowego połączenia bezpośredniego.
sess | Struktura sesji |
e | Struktura zdarzenia |
payload | Treść pakietu |
len | Długość pakietu |
|
static |
Ustawia odpowiednie stany wewnętrzne w zależności od rodzaju połączenia.
dcc | Struktura połączenia |