@ -2,8 +2,8 @@
/*
/*
* ( C ) Copyright 2001 - 2006 Wojtek Kaniewski < wojtekka @ irc . pl >
* ( C ) Copyright 2001 - 2006 Wojtek Kaniewski < wojtekka @ irc . pl >
* Robert J . Wo ź ny < speedy @ ziew . org >
* Robert J . Wo <EFBFBD> ny < speedy @ ziew . org >
* Arkadiusz Mi ś kiewicz < arekm @ pld - linux . org >
* Arkadiusz Mi <EFBFBD> kiewicz < arekm @ pld - linux . org >
* Adam Wysocki < gophi @ ekg . chmurka . net >
* Adam Wysocki < gophi @ ekg . chmurka . net >
*
*
* This program is free software ; you can redistribute it and / or modify
* This program is free software ; you can redistribute it and / or modify
@ -50,9 +50,9 @@
/*
/*
* gg_event_free ( )
* gg_event_free ( )
*
*
* zwalnia pami ęć zajmowan ą przez informacj ę o zdarzeniu .
* zwalnia pami <EFBFBD> <EFBFBD> zajmowan <EFBFBD> przez informacj <EFBFBD> o zdarzeniu .
*
*
* - e - wska ź nik do informacji o zdarzeniu
* - e - wska <EFBFBD> nik do informacji o zdarzeniu
*/
*/
void gg_event_free ( struct gg_event * e )
void gg_event_free ( struct gg_event * e )
{
{
@ -127,7 +127,7 @@ void gg_event_free(struct gg_event *e)
*
*
* - s - sesja
* - s - sesja
* - q - kolejka
* - q - kolejka
* - freeq - czy zwolni ć kolejk ę
* - freeq - czy zwolni <EFBFBD> kolejk <EFBFBD>
*
*
* 0 / - 1
* 0 / - 1
*/
*/
@ -161,9 +161,9 @@ int gg_image_queue_remove(struct gg_session *s, struct gg_image_queue *q, int fr
}
}
/*
/*
* gg_image_queue_parse ( ) // funkcja wewn ę trzna
* gg_image_queue_parse ( ) // funkcja wewn <EFBFBD> trzna
*
*
* parsuje przychodz ą cy pakiet z obrazkiem .
* parsuje przychodz <EFBFBD> cy pakiet z obrazkiem .
*
*
* - e - opis zdarzenia
* - e - opis zdarzenia
* -
* -
@ -178,7 +178,7 @@ static void gg_image_queue_parse(struct gg_event *e, char *p, unsigned int len,
return ;
return ;
}
}
/* znajd ź dany obrazek w kolejce danej sesji */
/* znajd <EFBFBD> dany obrazek w kolejce danej sesji */
for ( qq = sess - > images , q = NULL ; qq ; qq = qq - > next ) {
for ( qq = sess - > images , q = NULL ; qq ; qq = qq - > next ) {
if ( sender = = qq - > sender & & i - > size = = qq - > size & & i - > crc32 = = qq - > crc32 ) {
if ( sender = = qq - > sender & & i - > size = = qq - > size & & i - > crc32 = = qq - > crc32 ) {
@ -200,7 +200,7 @@ static void gg_image_queue_parse(struct gg_event *e, char *p, unsigned int len,
len - = sizeof ( struct gg_msg_image_reply ) ;
len - = sizeof ( struct gg_msg_image_reply ) ;
p + = sizeof ( struct gg_msg_image_reply ) ;
p + = sizeof ( struct gg_msg_image_reply ) ;
/* sprawd ź, czy mamy tekst zakoń czony \0 */
/* sprawd <EFBFBD> , czy mamy tekst zako<6B> czony \0 */
for ( i = 0 ; i < len ; i + + ) {
for ( i = 0 ; i < len ; i + + ) {
if ( ! p [ i ] ) {
if ( ! p [ i ] ) {
@ -232,7 +232,7 @@ static void gg_image_queue_parse(struct gg_event *e, char *p, unsigned int len,
memcpy ( q - > image + q - > done , p , len ) ;
memcpy ( q - > image + q - > done , p , len ) ;
q - > done + = len ;
q - > done + = len ;
/* je śli skończono odbierać obrazek, wygeneruj zdarzenie */
/* je <EFBFBD> li sko<6B> czono odbiera<72> obrazek, wygeneruj zdarzenie */
if ( q - > done > = q - > size ) {
if ( q - > done > = q - > size ) {
e - > type = GG_EVENT_IMAGE_REPLY ;
e - > type = GG_EVENT_IMAGE_REPLY ;
@ -249,12 +249,12 @@ static void gg_image_queue_parse(struct gg_event *e, char *p, unsigned int len,
}
}
/*
/*
* gg_handle_recv_msg ( ) // funkcja wewn ę trzna
* gg_handle_recv_msg ( ) // funkcja wewn <EFBFBD> trzna
*
*
* obs ługuje pakiet z przychodz ą c ą wiadomo ś ci ą , rozbijaj ą c go na dodatkowe
* obs <EFBFBD> uguje pakiet z przychodz <EFBFBD> c <EFBFBD> wiadomo <EFBFBD> ci <EFBFBD> , rozbijaj <EFBFBD> c go na dodatkowe
* struktury ( konferencje , kolorki ) w razie potrzeby .
* struktury ( konferencje , kolorki ) w razie potrzeby .
*
*
* - h - nag łó wek pakietu
* - h - nag <EFBFBD> <EFBFBD> wek pakietu
* - e - opis zdarzenia
* - e - opis zdarzenia
*
*
* 0 , - 1.
* 0 , - 1.
@ -384,7 +384,7 @@ static int gg_handle_recv_msg(struct gg_header *h, struct gg_event *e, struct gg
if ( p + sizeof ( struct gg_msg_image_reply ) = = packet_end ) {
if ( p + sizeof ( struct gg_msg_image_reply ) = = packet_end ) {
/* pusta odpowied ź - klient po drugiej stronie nie ma żą danego obrazka */
/* pusta odpowied <EFBFBD> - klient po drugiej stronie nie ma <20> <> danego obrazka */
e - > type = GG_EVENT_IMAGE_REPLY ;
e - > type = GG_EVENT_IMAGE_REPLY ;
e - > event . image_reply . sender = gg_fix32 ( r - > sender ) ;
e - > event . image_reply . sender = gg_fix32 ( r - > sender ) ;
@ -438,11 +438,11 @@ fail:
}
}
/*
/*
* gg_watch_fd_connected ( ) // funkcja wewn ę trzna
* gg_watch_fd_connected ( ) // funkcja wewn <EFBFBD> trzna
*
*
* patrzy na gniazdo , odbiera pakiet i wype łnia struktur ę zdarzenia .
* patrzy na gniazdo , odbiera pakiet i wype <EFBFBD> nia struktur <EFBFBD> zdarzenia .
*
*
* - sess - struktura opisuj ąca sesj ę
* - sess - struktura opisuj <EFBFBD> ca sesj <EFBFBD>
* - e - opis zdarzenia
* - e - opis zdarzenia
*
*
* 0 , - 1.
* 0 , - 1.
@ -727,7 +727,7 @@ static int gg_watch_fd_connected(struct gg_session *sess, struct gg_event *e)
if ( h - > length < 1 )
if ( h - > length < 1 )
break ;
break ;
/* je śli odpowiedź na eksport, wywoł aj zdarzenie tylko
/* je <EFBFBD> li odpowied<65> na eksport, wywo<77> aj zdarzenie tylko
* gdy otrzymano wszystkie odpowiedzi */
* gdy otrzymano wszystkie odpowiedzi */
if ( p [ 0 ] = = GG_USERLIST_PUT_REPLY | | p [ 0 ] = = GG_USERLIST_PUT_MORE_REPLY ) {
if ( p [ 0 ] = = GG_USERLIST_PUT_REPLY | | p [ 0 ] = = GG_USERLIST_PUT_MORE_REPLY ) {
if ( - - sess - > userlist_blocks )
if ( - - sess - > userlist_blocks )
@ -780,16 +780,16 @@ fail:
/*
/*
* gg_watch_fd ( )
* gg_watch_fd ( )
*
*
* funkcja , kt ór ą nale ż y wywo ł a ć , gdy co ś si ę stanie z obserwowanym
* funkcja , kt <EFBFBD> r <EFBFBD> nale <EFBFBD> y wywo <EFBFBD> a <EFBFBD> , gdy co <EFBFBD> si <EFBFBD> stanie z obserwowanym
* deskryptorem . zwraca klientowi informacj ę o tym , co si ę dzieje .
* deskryptorem . zwraca klientowi informacj <EFBFBD> o tym , co si <EFBFBD> dzieje .
*
*
* - sess - opis sesji
* - sess - opis sesji
*
*
* wska źnik do struktury gg_event , kt ó r ą trzeba zwolni ć p ó ź niej
* wska <EFBFBD> nik do struktury gg_event , kt <EFBFBD> r <EFBFBD> trzeba zwolni <EFBFBD> p <EFBFBD> <EFBFBD> niej
* za pomoc ą gg_event_free ( ) . jesli rodzaj zdarzenia jest r ó wny
* za pomoc <EFBFBD> gg_event_free ( ) . jesli rodzaj zdarzenia jest r <EFBFBD> wny
* GG_EVENT_NONE , nale ży je zignorowa ć . je ś li zwr ó ci ł o NULL ,
* GG_EVENT_NONE , nale <EFBFBD> y je zignorowa <EFBFBD> . je <EFBFBD> li zwr <EFBFBD> ci <EFBFBD> o NULL ,
* sta ło si ę co ś niedobrego - - albo zabrak ł o pami ę ci albo zerwa ł o
* sta <EFBFBD> o si <EFBFBD> co <EFBFBD> niedobrego - - albo zabrak <EFBFBD> o pami <EFBFBD> ci albo zerwa <EFBFBD> o
* po łą czenie .
* po <EFBFBD> <EFBFBD> czenie .
*/
*/
struct gg_event * gg_watch_fd ( struct gg_session * sess )
struct gg_event * gg_watch_fd ( struct gg_session * sess )
{
{
@ -845,14 +845,14 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
goto fail_resolving ;
goto fail_resolving ;
}
}
/* je śli jesteś my w resolverze i mamy ustawiony port
/* je <EFBFBD> li jeste<74> my w resolverze i mamy ustawiony port
* proxy , znaczy , że resolvowali ś my proxy . zatem
* proxy , znaczy , <EFBFBD> e resolvowali <EFBFBD> my proxy . zatem
* wpiszmy jego adres . */
* wpiszmy jego adres . */
if ( sess - > proxy_port )
if ( sess - > proxy_port )
sess - > proxy_addr = addr . s_addr ;
sess - > proxy_addr = addr . s_addr ;
/* zapiszmy sobie adres huba i adres serwera (do
/* zapiszmy sobie adres huba i adres serwera (do
* bezpo średniego po ł ą czenia , je ś li hub le ż y )
* bezpo <EFBFBD> redniego po <EFBFBD> <EFBFBD> czenia , je <EFBFBD> li hub le <EFBFBD> y )
* z resolvera . */
* z resolvera . */
if ( sess - > proxy_addr & & sess - > proxy_port )
if ( sess - > proxy_addr & & sess - > proxy_port )
port = sess - > proxy_port ;
port = sess - > proxy_port ;
@ -863,17 +863,17 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() resolved, connecting to %s:%d \n " , inet_ntoa ( addr ) , port ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() resolved, connecting to %s:%d \n " , inet_ntoa ( addr ) , port ) ;
/* łączymy się albo z hubem, albo z proxy, zależ nie
/* <EFBFBD> <EFBFBD> czymy si<73> albo z hubem, albo z proxy, zale<6C> nie
* od tego , co resolvowali ś my . */
* od tego , co resolvowali <EFBFBD> my . */
if ( ( sess - > fd = gg_connect ( & addr , port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & addr , port , sess - > async ) ) = = - 1 ) {
/* je ś li w trybie asynchronicznym gg_connect()
/* je <EFBFBD> li w trybie asynchronicznym gg_connect()
* zwr óci b ł ą d , nie ma sensu pr ó bowa ć dalej . */
* zwr <EFBFBD> ci b <EFBFBD> <EFBFBD> d , nie ma sensu pr <EFBFBD> bowa <EFBFBD> dalej . */
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s), critical \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s), critical \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
}
}
/* je śli podano serwer i łączmy się przez proxy,
/* je <EFBFBD> li podano serwer i <20> <> czmy si<73> przez proxy,
* jest to bezpo średnie po ł ą czenie , inaczej jest
* jest to bezpo <EFBFBD> rednie po <EFBFBD> <EFBFBD> czenie , inaczej jest
* do huba . */
* do huba . */
sess - > state = ( sess - > proxy_addr & & sess - > proxy_port & & sess - > server_addr ) ? GG_STATE_CONNECTING_GG : GG_STATE_CONNECTING_HUB ;
sess - > state = ( sess - > proxy_addr & & sess - > proxy_port & & sess - > server_addr ) ? GG_STATE_CONNECTING_GG : GG_STATE_CONNECTING_HUB ;
sess - > check = GG_CHECK_WRITE ;
sess - > check = GG_CHECK_WRITE ;
@ -890,11 +890,11 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() GG_STATE_CONNECTING_HUB \n " ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() GG_STATE_CONNECTING_HUB \n " ) ;
/* je śli asynchroniczne, sprawdzamy, czy nie wystąpił
/* je <EFBFBD> li asynchroniczne, sprawdzamy, czy nie wyst<73> pi<70>
* przypadkiem jaki ś b ł ą d . */
* przypadkiem jaki <EFBFBD> b <EFBFBD> <EFBFBD> d . */
if ( sess - > async & & ( getsockopt ( sess - > fd , SOL_SOCKET , SO_ERROR , & res , & res_size ) | | res ) ) {
if ( sess - > async & & ( getsockopt ( sess - > fd , SOL_SOCKET , SO_ERROR , & res , & res_size ) | | res ) ) {
/* no tak, nie uda ło się połączyć z proxy. nawet
/* no tak, nie uda <EFBFBD> o si<73> po<70> <6F> czy<7A> z proxy. nawet
* nie pr ó bujemy dalej . */
* nie pr <EFBFBD> bujemy dalej . */
if ( sess - > proxy_addr & & sess - > proxy_port ) {
if ( sess - > proxy_addr & & sess - > proxy_port ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , res , strerror ( res ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , res , strerror ( res ) ) ;
goto fail_connecting ;
goto fail_connecting ;
@ -905,9 +905,9 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
if ( ( sess - > fd = gg_connect ( & sess - > hub_addr , GG_DEFAULT_PORT , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & sess - > hub_addr , GG_DEFAULT_PORT , sess - > async ) ) = = - 1 ) {
/* przy asynchronicznych, gg_connect()
/* przy asynchronicznych, gg_connect()
* zwraca - 1 przy b łę dach socket ( ) ,
* zwraca - 1 przy b <EFBFBD> <EFBFBD> dach socket ( ) ,
* ioctl ( ) , braku routingu itd . dlatego
* ioctl ( ) , braku routingu itd . dlatego
* nawet nie pr ó bujemy dalej . */
* nawet nie pr <EFBFBD> bujemy dalej . */
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() direct connection failed (errno=%d, %s), critical \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() direct connection failed (errno=%d, %s), critical \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
}
}
@ -952,7 +952,7 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
free ( client ) ;
free ( client ) ;
/* zwolnij pami ęć po wersji klienta. */
/* zwolnij pami <EFBFBD> <EFBFBD> po wersji klienta. */
if ( sess - > client_version ) {
if ( sess - > client_version ) {
free ( sess - > client_version ) ;
free ( sess - > client_version ) ;
sess - > client_version = NULL ;
sess - > client_version = NULL ;
@ -960,9 +960,9 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
gg_debug ( GG_DEBUG_MISC , " => -----BEGIN-HTTP-QUERY----- \n %s \n => -----END-HTTP-QUERY----- \n " , buf ) ;
gg_debug ( GG_DEBUG_MISC , " => -----BEGIN-HTTP-QUERY----- \n %s \n => -----END-HTTP-QUERY----- \n " , buf ) ;
/* zapytanie jest kr ótkie, więc zawsze zmieści się
/* zapytanie jest kr <EFBFBD> tkie, wi<77> c zawsze zmie<69> ci si<73>
* do bufora gniazda . je śli write ( ) zwr ó ci mniej ,
* do bufora gniazda . je <EFBFBD> li write ( ) zwr <EFBFBD> ci mniej ,
* sta ło si ę co ś z ł ego . */
* sta <EFBFBD> o si <EFBFBD> co <EFBFBD> z <EFBFBD> ego . */
if ( write ( sess - > fd , buf , strlen ( buf ) ) < ( signed ) strlen ( buf ) ) {
if ( write ( sess - > fd , buf , strlen ( buf ) ) < ( signed ) strlen ( buf ) ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() sending query failed \n " ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() sending query failed \n " ) ;
@ -989,22 +989,22 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() GG_STATE_READING_DATA \n " ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() GG_STATE_READING_DATA \n " ) ;
/* czytamy lini ę z gniazda i obcinamy \r\n. */
/* czytamy lini <EFBFBD> z gniazda i obcinamy \r\n. */
gg_read_line ( sess - > fd , buf , sizeof ( buf ) - 1 ) ;
gg_read_line ( sess - > fd , buf , sizeof ( buf ) - 1 ) ;
gg_chomp ( buf ) ;
gg_chomp ( buf ) ;
gg_debug ( GG_DEBUG_TRAFFIC , " // gg_watch_fd() received http header (%s) \n " , buf ) ;
gg_debug ( GG_DEBUG_TRAFFIC , " // gg_watch_fd() received http header (%s) \n " , buf ) ;
/* sprawdzamy, czy wszystko w porz ą dku. */
/* sprawdzamy, czy wszystko w porz <EFBFBD> dku. */
if ( strncmp ( buf , " HTTP/1. " , 7 ) | | strncmp ( buf + 9 , " 200 " , 3 ) ) {
if ( strncmp ( buf , " HTTP/1. " , 7 ) | | strncmp ( buf + 9 , " 200 " , 3 ) ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() that's not what we've expected, trying direct connection \n " ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() that's not what we've expected, trying direct connection \n " ) ;
close ( sess - > fd ) ;
close ( sess - > fd ) ;
/* je śli otrzymaliśmy jakieś dziwne informacje,
/* je <EFBFBD> li otrzymali<6C> my jakie<69> dziwne informacje,
* pr óbujemy si ę ł ą czy ć z pomini ę ciem huba . */
* pr <EFBFBD> bujemy si <EFBFBD> <EFBFBD> <EFBFBD> czy <EFBFBD> z pomini <EFBFBD> ciem huba . */
if ( sess - > proxy_addr & & sess - > proxy_port ) {
if ( sess - > proxy_addr & & sess - > proxy_port ) {
if ( ( sess - > fd = gg_connect ( & sess - > proxy_addr , sess - > proxy_port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & sess - > proxy_addr , sess - > proxy_port , sess - > async ) ) = = - 1 ) {
/* trudno. nie wysz ł o. */
/* trudno. nie wysz <EFBFBD> o. */
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
}
}
@ -1017,13 +1017,13 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
sess - > port = GG_DEFAULT_PORT ;
sess - > port = GG_DEFAULT_PORT ;
/* łączymy się na port 8074 huba. */
/* <EFBFBD> <EFBFBD> czymy si<73> na port 8074 huba. */
if ( ( sess - > fd = gg_connect ( & sess - > hub_addr , sess - > port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & sess - > hub_addr , sess - > port , sess - > async ) ) = = - 1 ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s), trying https \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s), trying https \n " , errno , strerror ( errno ) ) ;
sess - > port = GG_HTTPS_PORT ;
sess - > port = GG_HTTPS_PORT ;
/* łączymy się na port 443. */
/* <EFBFBD> <EFBFBD> czymy si<73> na port 443. */
if ( ( sess - > fd = gg_connect ( & sess - > hub_addr , sess - > port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & sess - > hub_addr , sess - > port , sess - > async ) ) = = - 1 ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
@ -1036,16 +1036,16 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
break ;
break ;
}
}
/* ignorujemy reszt ę nagłó wka. */
/* ignorujemy reszt <EFBFBD> nag<61> <67> wka. */
while ( strcmp ( buf , " \r \n " ) & & strcmp ( buf , " " ) )
while ( strcmp ( buf , " \r \n " ) & & strcmp ( buf , " " ) )
gg_read_line ( sess - > fd , buf , sizeof ( buf ) - 1 ) ;
gg_read_line ( sess - > fd , buf , sizeof ( buf ) - 1 ) ;
/* czytamy pierwsz ą linię danych. */
/* czytamy pierwsz <EFBFBD> lini<6E> danych. */
gg_read_line ( sess - > fd , buf , sizeof ( buf ) - 1 ) ;
gg_read_line ( sess - > fd , buf , sizeof ( buf ) - 1 ) ;
gg_chomp ( buf ) ;
gg_chomp ( buf ) ;
/* je śli pierwsza liczba w linii nie jest ró wna zeru,
/* je <EFBFBD> li pierwsza liczba w linii nie jest r<> wna zeru,
* oznacza to , że mamy wiadomo ś ć systemow ą . */
* oznacza to , <EFBFBD> e mamy wiadomo <EFBFBD> <EFBFBD> systemow <EFBFBD> . */
if ( atoi ( buf ) ) {
if ( atoi ( buf ) ) {
char tmp [ 1024 ] , * foo , * sysmsg_buf = NULL ;
char tmp [ 1024 ] , * foo , * sysmsg_buf = NULL ;
int len = 0 ;
int len = 0 ;
@ -1088,7 +1088,7 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
tmp + + ;
tmp + + ;
* tmp = 0 ;
* tmp = 0 ;
if ( ( tmp = strchr ( host , ' : ' ) ) ) {
if ( ( tmp = ( char * ) strchr ( host , ' : ' ) ) ) {
* tmp = 0 ;
* tmp = 0 ;
port = atoi ( tmp + 1 ) ;
port = atoi ( tmp + 1 ) ;
}
}
@ -1103,9 +1103,9 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
sess - > server_addr = addr . s_addr ;
sess - > server_addr = addr . s_addr ;
if ( ! gg_proxy_http_only & & sess - > proxy_addr & & sess - > proxy_port ) {
if ( ! gg_proxy_http_only & & sess - > proxy_addr & & sess - > proxy_port ) {
/* je śli mamy proxy, łączymy się z nim. */
/* je <EFBFBD> li mamy proxy, <20> <> czymy si<73> z nim. */
if ( ( sess - > fd = gg_connect ( & sess - > proxy_addr , sess - > proxy_port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & sess - > proxy_addr , sess - > proxy_port , sess - > async ) ) = = - 1 ) {
/* nie wysz ł o? trudno. */
/* nie wysz <EFBFBD> o? trudno. */
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
}
}
@ -1118,15 +1118,15 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
sess - > port = port ;
sess - > port = port ;
/* łączymy się z właś ciwym serwerem. */
/* <EFBFBD> <EFBFBD> czymy si<73> z w<> a<EFBFBD> ciwym serwerem. */
if ( ( sess - > fd = gg_connect ( & addr , sess - > port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & addr , sess - > port , sess - > async ) ) = = - 1 ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s), trying https \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s), trying https \n " , errno , strerror ( errno ) ) ;
sess - > port = GG_HTTPS_PORT ;
sess - > port = GG_HTTPS_PORT ;
/* nie wysz ło? pró bujemy portu 443. */
/* nie wysz <EFBFBD> o? pr<70> bujemy portu 443. */
if ( ( sess - > fd = gg_connect ( & addr , GG_HTTPS_PORT , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & addr , GG_HTTPS_PORT , sess - > async ) ) = = - 1 ) {
/* ostatnia deska ratunku zawiod ł a?
/* ostatnia deska ratunku zawiod <EFBFBD> a?
* w takim razie zwijamy manatki . */
* w takim razie zwijamy manatki . */
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
@ -1146,10 +1146,10 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() GG_STATE_CONNECTING_GG \n " ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() GG_STATE_CONNECTING_GG \n " ) ;
/* je śli wystąpił błąd podczas łączenia się ... */
/* je <EFBFBD> li wyst<73> pi<70> b<> <62> d podczas <20> <> czenia si<73> ... */
if ( sess - > async & & ( sess - > timeout = = 0 | | getsockopt ( sess - > fd , SOL_SOCKET , SO_ERROR , & res , & res_size ) | | res ) ) {
if ( sess - > async & & ( sess - > timeout = = 0 | | getsockopt ( sess - > fd , SOL_SOCKET , SO_ERROR , & res , & res_size ) | | res ) ) {
/* je śli nie udało się połą czenie z proxy,
/* je <EFBFBD> li nie uda<64> o si<73> po<70> <6F> czenie z proxy,
* nie mamy czego pr óbowa ć wi ę cej . */
* nie mamy czego pr <EFBFBD> bowa <EFBFBD> wi <EFBFBD> cej . */
if ( sess - > proxy_addr & & sess - > proxy_port ) {
if ( sess - > proxy_addr & & sess - > proxy_port ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , res , strerror ( res ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection to proxy failed (errno=%d, %s) \n " , res , strerror ( res ) ) ;
goto fail_connecting ;
goto fail_connecting ;
@ -1164,10 +1164,10 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
# endif
# endif
# ifdef __GG_LIBGADU_HAVE_OPENSSL
# ifdef __GG_LIBGADU_HAVE_OPENSSL
/* je śli logujemy się po TLS, nie pró bujemy
/* je <EFBFBD> li logujemy si<73> po TLS, nie pr<70> bujemy
* si ę ł ą czy ć ju ż z niczym innym w przypadku
* si <EFBFBD> <EFBFBD> <EFBFBD> czy <EFBFBD> ju <EFBFBD> z niczym innym w przypadku
* b łę du . nie do ś ć , ż e nie ma sensu , to i
* b <EFBFBD> <EFBFBD> du . nie do <EFBFBD> <EFBFBD> , <EFBFBD> e nie ma sensu , to i
* trzeba by si ę bawi ć w tworzenie na nowo
* trzeba by si <EFBFBD> bawi <EFBFBD> w tworzenie na nowo
* SSL i SSL_CTX . */
* SSL i SSL_CTX . */
if ( sess - > ssl ) {
if ( sess - > ssl ) {
@ -1180,7 +1180,7 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
sess - > port = GG_HTTPS_PORT ;
sess - > port = GG_HTTPS_PORT ;
/* pr ó bujemy na port 443. */
/* pr <EFBFBD> bujemy na port 443. */
if ( ( sess - > fd = gg_connect ( & sess - > server_addr , sess - > port , sess - > async ) ) = = - 1 ) {
if ( ( sess - > fd = gg_connect ( & sess - > server_addr , sess - > port , sess - > async ) ) = = - 1 ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() connection failed (errno=%d, %s) \n " , errno , strerror ( errno ) ) ;
goto fail_connecting ;
goto fail_connecting ;
@ -1192,7 +1192,7 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
if ( gg_proxy_http_only )
if ( gg_proxy_http_only )
sess - > proxy_port = 0 ;
sess - > proxy_port = 0 ;
/* je śli mamy proxy, wyś lijmy zapytanie. */
/* je <EFBFBD> li mamy proxy, wy<77> lijmy zapytanie. */
if ( sess - > proxy_addr & & sess - > proxy_port ) {
if ( sess - > proxy_addr & & sess - > proxy_port ) {
char buf [ 100 ] , * auth = gg_proxy_auth ( ) ;
char buf [ 100 ] , * auth = gg_proxy_auth ( ) ;
struct in_addr addr ;
struct in_addr addr ;
@ -1206,9 +1206,9 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() proxy request: \n // %s " , buf ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() proxy request: \n // %s " , buf ) ;
/* wysy łamy zapytanie. jest ono na tyle kró tkie,
/* wysy <EFBFBD> amy zapytanie. jest ono na tyle kr<6B> tkie,
* że musi si ę zmie ś ci ć w buforze gniazda . je ś li
* <EFBFBD> e musi si <EFBFBD> zmie <EFBFBD> ci <EFBFBD> w buforze gniazda . je <EFBFBD> li
* write ( ) zawiedzie , sta ło si ę co ś z ł ego . */
* write ( ) zawiedzie , sta <EFBFBD> o si <EFBFBD> co <EFBFBD> z <EFBFBD> ego . */
if ( write ( sess - > fd , buf , strlen ( buf ) ) < ( signed ) strlen ( buf ) ) {
if ( write ( sess - > fd , buf , strlen ( buf ) ) < ( signed ) strlen ( buf ) ) {
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() can't send proxy request \n " ) ;
gg_debug ( GG_DEBUG_MISC , " // gg_watch_fd() can't send proxy request \n " ) ;
if ( auth )
if ( auth )
@ -1344,8 +1344,8 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
memset ( & l , 0 , sizeof ( l ) ) ;
memset ( & l , 0 , sizeof ( l ) ) ;
l . dunno2 = 0xbe ;
l . dunno2 = 0xbe ;
/* XXX bardzo, bardzo, bardzo g łupi pomysł na pozbycie
/* XXX bardzo, bardzo, bardzo g <EFBFBD> upi pomys<79> na pozbycie
* si ę tekstu wrzucanego przez proxy . */
* si <EFBFBD> tekstu wrzucanego przez proxy . */
if ( sess - > proxy_addr & & sess - > proxy_port ) {
if ( sess - > proxy_addr & & sess - > proxy_port ) {
char buf [ 100 ] ;
char buf [ 100 ] ;
@ -1362,7 +1362,7 @@ struct gg_event *gg_watch_fd(struct gg_session *sess)
}
}
/* XXX niech czeka jeszcze raz w tej samej
/* XXX niech czeka jeszcze raz w tej samej
* fazie . g łupio , ale dzia ł a . */
* fazie . g <EFBFBD> upio , ale dzia <EFBFBD> a . */
sess - > proxy_port = 0 ;
sess - > proxy_port = 0 ;
break ;
break ;