libgadu 1.12.2
Wczytywanie...
Szukanie...
Brak dopasowań
Dokumentacja pliku dcc7.c

Obsługa połączeń bezpośrednich od wersji Gadu-Gadu 7.x. Więcej...

Definicje

#define gg_debug_dcc(dcc, level, fmt...)
#define gg_debug_dump_dcc(dcc, 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_dcc7gg_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_dcc7gg_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_dcc7gg_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_dcc7gg_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, 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_eventgg_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.

Opis szczegółowy

Obsługa połączeń bezpośrednich od wersji Gadu-Gadu 7.x.

Dokumentacja definicji

◆ gg_debug_dcc

#define gg_debug_dcc ( dcc,
level,
fmt... )
Wartość:
gg_debug_session(((dcc) != NULL) ? (dcc)->sess : NULL, level, fmt)
void gg_debug_session(struct gg_session *gs, int level, const char *format,...)
Definicja debug.c:143

◆ gg_debug_dump_dcc

#define gg_debug_dump_dcc ( dcc,
level,
buf,
len )
Wartość:
gg_debug_dump(((dcc) != NULL) ? (dcc)->sess : NULL, level, buf, len)
void gg_debug_dump(struct gg_session *gs, int level, const char *buf, size_t len)
Definicja debug.c:164

Dokumentacja funkcji

◆ gg_dcc7_session_add()

int gg_dcc7_session_add ( struct gg_session * sess,
struct gg_dcc7 * dcc )
static

Dodaje połączenie bezpośrednie do sesji.

Parametry
sessStruktura sesji
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_session_remove()

int gg_dcc7_session_remove ( struct gg_session * sess,
struct gg_dcc7 * dcc )
static

Usuwa połączenie bezpośrednie z sesji.

Parametry
sessStruktura sesji
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_session_find()

struct gg_dcc7 * gg_dcc7_session_find ( struct gg_session * sess,
gg_dcc7_id_t id,
uin_t uin )
static

Zwraca strukturę połączenia o danym identyfikatorze.

Parametry
sessStruktura sesji
idIdentyfikator połączenia
uinNumer nadawcy lub odbiorcy
Zwraca
Struktura połączenia lub NULL jeśli nie znaleziono

◆ gg_dcc7_get_relay_addr()

int gg_dcc7_get_relay_addr ( struct gg_dcc7 * dcc)
static

Rozpoczyna proces pobierania adresu

Parametry
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_connect()

int gg_dcc7_connect ( struct gg_dcc7 * dcc)
static

Nawiązuje połączenie bezpośrednie

Parametry
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_listen()

int gg_dcc7_listen ( struct gg_dcc7 * dcc,
uint32_t addr,
uint16_t port )
static

Tworzy gniazdo nasłuchujące dla połączenia bezpośredniego

Parametry
Połączenia bezpośrednie między klientamiStruktura połączenia
addrPreferowany adres (jeśli równy 0, nasłuchujemy na wszystkich interfejsach)
portPreferowany port (jeśli równy 0, nasłuchujemy na losowym)
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_listen_and_send_info()

int gg_dcc7_listen_and_send_info ( struct gg_dcc7 * dcc)
static

Tworzy gniazdo nasłuchujące i wysyła jego parametry

Parametry
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_reverse_connect()

int gg_dcc7_reverse_connect ( struct gg_dcc7 * dcc)
static

Odwraca połączenie po nieudanym connect()

Parametry
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_request_id()

int gg_dcc7_request_id ( struct gg_session * sess,
uint32_t type )
static

Wysyła do serwera żądanie nadania identyfikatora sesji

Parametry
sessStruktura sesji
typeRodzaj połączenia (GG_DCC7_TYPE_FILE lub GG_DCC7_TYPE_VOICE)
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_handle_id()

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.

Parametry
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDługość pakietu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_handle_accept()

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.

Parametry
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDługość pakietu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_handle_info()

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.

Parametry
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDługość pakietu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_handle_reject()

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.

Parametry
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDługość pakietu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_handle_new()

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.

Parametry
sessStruktura sesji
eStruktura zdarzenia
payloadTreść pakietu
lenDługość pakietu
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu

◆ gg_dcc7_postauth_fixup()

int gg_dcc7_postauth_fixup ( struct gg_dcc7 * dcc)
static

Ustawia odpowiednie stany wewnętrzne w zależności od rodzaju połączenia.

Parametry
Połączenia bezpośrednie między klientamiStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu.