dcc7.c File Reference

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


Defines

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

Functions

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.


Detailed Description

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


Define Documentation

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


Function Documentation

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

For internal use only.

Dodaje połączenie bezpośrednie do sesji.

Parameters:
sess Struktura sesji
dcc Struktura połączenia
Returns:
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]

For internal use only.

Usuwa połączenie bezpośrednie z sesji.

Parameters:
sess Struktura sesji
dcc Struktura połączenia
Returns:
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, read]

For internal use only.

Zwraca strukturę połączenia o danym identyfikatorze.

Parameters:
sess Struktura sesji
id Identyfikator połączenia
uin Numer nadawcy lub odbiorcy
Returns:
Struktura połączenia lub NULL jeśli nie znaleziono

static int gg_dcc7_get_relay_addr ( struct gg_dcc7 dcc  )  [static]

For internal use only.

Rozpoczyna proces pobierania adresu

Parameters:
dcc Struktura połączenia
Returns:
0 jeśli się powiodło, -1 w przypadku błędu

static int gg_dcc7_connect ( struct gg_dcc7 dcc  )  [static]

For internal use only.

Nawiązuje połączenie bezpośrednie

Parameters:
dcc Struktura połączenia
Returns:
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]

For internal use only.

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

Parameters:
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)
Returns:
0 jeśli się powiodło, -1 w przypadku błędu

static int gg_dcc7_listen_and_send_info ( struct gg_dcc7 dcc  )  [static]

For internal use only.

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

Parameters:
dcc Struktura połączenia
Returns:
0 jeśli się powiodło, -1 w przypadku błędu

static int gg_dcc7_reverse_connect ( struct gg_dcc7 dcc  )  [static]

For internal use only.

Odwraca połączenie po nieudanym connect()

Parameters:
dcc Struktura połączenia
Returns:
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]

For internal use only.

Wysyła do serwera żądanie nadania identyfikatora sesji

Parameters:
sess Struktura sesji
type Rodzaj połączenia (GG_DCC7_TYPE_FILE lub GG_DCC7_TYPE_VOICE)
Returns:
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 
)

For internal use only.

Obsługuje pakiet identyfikatora połączenia bezpośredniego.

Parameters:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Returns:
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 
)

For internal use only.

Obsługuje pakiet akceptacji połączenia bezpośredniego.

Parameters:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Returns:
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 
)

For internal use only.

Obsługuje pakiet informacji o połączeniu bezpośrednim.

Parameters:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Returns:
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 
)

For internal use only.

Obsługuje pakiet odrzucenia połączenia bezpośredniego.

Parameters:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Returns:
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 
)

For internal use only.

Obsługuje pakiet nowego połączenia bezpośredniego.

Parameters:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Długość pakietu
Returns:
0 jeśli się powiodło, -1 w przypadku błędu

static int gg_dcc7_postauth_fixup ( struct gg_dcc7 dcc  )  [static]

For internal use only.

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

Parameters:
dcc Struktura połączenia
Returns:
0 jeśli się powiodło, -1 w przypadku błędu.


Generated on Sat Feb 4 03:01:15 2012 for libgadu by  doxygen 1.5.6