--- a/libpurple/protocols/gg/lib/libgadu.c Thu May 31 06:20:22 2012 +0000 +++ b/libpurple/protocols/gg/lib/libgadu.c Thu May 31 17:16:24 2012 +0000 @@ -1,4 +1,4 @@ -/* $Id: libgadu.c 1102 2011-05-05 21:17:57Z wojtekka $ */ +/* $Id: libgadu.c 1245 2012-01-10 22:48:31Z wojtekka $ */ /* * (C) Copyright 2001-2010 Wojtek Kaniewski <wojtekka@irc.pl> @@ -37,9 +37,9 @@ #include "libgadu.h" #include "protocol.h" #include "resolver.h" -#include "libgadu-internal.h" +#include "internal.h" #include "encoding.h" -#include "libgadu-debug.h" +#include "debug.h" #include "session.h" #include "message.h" #include "deflate.h" @@ -60,7 +60,7 @@ # include <openssl/rand.h> #endif -#define GG_LIBGADU_VERSION "1.11.0" +#define GG_LIBGADU_VERSION "1.11.1" /** * Port gniazda nasłuchującego dla połączeń bezpośrednich. @@ -132,7 +132,7 @@ #ifdef __GNUC__ __attribute__ ((unused)) #endif -= "$Id: libgadu.c 1102 2011-05-05 21:17:57Z wojtekka $"; += "$Id: libgadu.c 1245 2012-01-10 22:48:31Z wojtekka $"; #endif #endif /* DOXYGEN */ @@ -149,7 +149,7 @@ return GG_LIBGADU_VERSION; } -#ifdef GG_CONFIG_HAVE_UINT64_T +#ifdef HAVE_UINT64_T /** * \internal Zamienia kolejność bajtów w 64-bitowym słowie. * @@ -178,7 +178,7 @@ ((x & (uint64_t) 0xff00000000000000ULL) >> 56)); #endif } -#endif /* GG_CONFIG_HAVE_UINT64_T */ +#endif /* HAVE_UINT64_T */ /** * \internal Zamienia kolejność bajtów w 32-bitowym słowie. @@ -443,11 +443,11 @@ res = written; } } else { - res = 0; - if (sess->send_buf == NULL) { res = gg_write_common(sess, buf, length); + if (res == -1 && errno == EAGAIN) + res = 0; if (res == -1) return -1; } @@ -1112,18 +1112,6 @@ sess->fd = -1; } -#ifdef GG_CONFIG_HAVE_GNUTLS - if (sess->ssl != NULL) { - gg_session_gnutls_t *tmp; - - tmp = (gg_session_gnutls_t*) sess->ssl; - gnutls_deinit(tmp->session); - gnutls_certificate_free_credentials(tmp->xcred); - gnutls_global_deinit(); - free(sess->ssl); - } -#endif - if (sess->send_buf) { free(sess->send_buf); sess->send_buf = NULL; @@ -1155,6 +1143,18 @@ free(sess->recv_buf); free(sess->header_buf); +#ifdef GG_CONFIG_HAVE_GNUTLS + if (sess->ssl != NULL) { + gg_session_gnutls_t *tmp; + + tmp = (gg_session_gnutls_t*) sess->ssl; + gnutls_deinit(tmp->session); + gnutls_certificate_free_credentials(tmp->xcred); + gnutls_global_deinit(); + free(sess->ssl); + } +#endif + #ifdef GG_CONFIG_HAVE_OPENSSL if (sess->ssl) SSL_free(sess->ssl);