Dokumentacja pliku dcc7.c


Opis szczegółowy

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


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_dcc7gg_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_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, 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_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.


Dokumentacja definicji

#define gg_debug_dcc ( dcc,
fmt...   )     gg_debug_session((dcc) ? (dcc)->sess : NULL, fmt)


Dokumentacja funkcji

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.

Parametry:
sess Struktura sesji
dcc Struktura 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]

Tylko do użytku wewnętrznego.

Usuwa połączenie bezpośrednie z sesji.

Parametry:
sess Struktura sesji
dcc Struktura 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, read]

Tylko do użytku wewnętrznego.

Zwraca strukturę połączenia o danym identyfikatorze.

Parametry:
sess Struktura sesji
id Identyfikator połączenia
uin Numer nadawcy lub odbiorcy
Zwraca:
Struktura połączenia lub 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

Parametry:
sess Struktura sesji
dcc Struktura połączenia
Zwraca:
0 jeśli się powiodło, -1 w przypadku błędu

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

Parametry:
dcc Struktura połączenia
port Preferowany port (jeśli równy 0 lub -1, próbuje się domyślnego)
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]

Tylko do użytku wewnętrznego.

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

Parametry:
dcc Struktura 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]

Tylko do użytku wewnętrznego.

Odwraca połączenie po nieudanym connect()

Parametry:
dcc Struktura 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]

Tylko do użytku wewnętrznego.

Wysyła do serwera żądanie nadania identyfikatora sesji

Parametry:
sess Struktura sesji
type Rodzaj 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,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

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

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Dł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,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

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

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Dł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,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

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

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Dł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,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

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

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Dł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,
void *  payload,
int  len 
)

Tylko do użytku wewnętrznego.

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

Parametry:
sess Struktura sesji
e Struktura zdarzenia
payload Treść pakietu
len Dł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]

Tylko do użytku wewnętrznego.

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

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


Wygenerowano Sun Dec 5 02:50:33 2010 dla libgadu programem  doxygen 1.5.6