libgadu  1.12.2
 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje Grupay Strony
Definicje | Funkcje
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...)   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_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. Więcej...
 
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. 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_eventgg_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...
 

Opis szczegółowy

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

Dokumentacja definicji

#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)

Dokumentacja funkcji

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

Dodaje połączenie bezpośrednie do sesji.

Parametry
sessStruktura sesji
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
static int gg_dcc7_session_remove ( struct gg_session sess,
struct gg_dcc7 dcc 
)
static

Usuwa połączenie bezpośrednie z sesji.

Parametry
sessStruktura sesji
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
static 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
static int gg_dcc7_get_relay_addr ( struct gg_dcc7 dcc)
static

Rozpoczyna proces pobierania adresu

Parametry
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
static int gg_dcc7_connect ( struct gg_dcc7 dcc)
static

Nawiązuje połączenie bezpośrednie

Parametry
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
static 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
dccStruktura 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
static int gg_dcc7_listen_and_send_info ( struct gg_dcc7 dcc)
static

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

Parametry
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
static int gg_dcc7_reverse_connect ( struct gg_dcc7 dcc)
static

Odwraca połączenie po nieudanym connect()

Parametry
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu
static 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
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
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
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
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
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
static int gg_dcc7_postauth_fixup ( struct gg_dcc7 dcc)
static

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

Parametry
dccStruktura połączenia
Zwraca
0 jeśli się powiodło, -1 w przypadku błędu.