--- a/libpurple/protocols/gg/lib/events.c Thu Apr 03 13:45:32 2014 +0200 +++ b/libpurple/protocols/gg/lib/events.c Thu Apr 03 16:02:37 2014 +0200 @@ -588,6 +588,7 @@ int count = -1; int res; unsigned int i; + struct in_addr *addrs; res = gg_resolver_recv(sess->fd, buf, sizeof(buf)); @@ -622,8 +623,10 @@ /* Sprawdź, czy mamy listę zakończoną INADDR_NONE */ + addrs = (struct in_addr *)(void *)sess->recv_buf; + for (i = 0; i < sess->recv_done / sizeof(struct in_addr); i++) { - if (((struct in_addr*) sess->recv_buf)[i].s_addr == INADDR_NONE) { + if (addrs[i].s_addr == INADDR_NONE) { count = i; break; } @@ -661,7 +664,7 @@ if (i > 0) len += 2; - len += strlen(inet_ntoa(((struct in_addr*) sess->recv_buf)[i])); + len += strlen(inet_ntoa(addrs[i])); } list = malloc(len + 1); @@ -675,7 +678,7 @@ if (i > 0) strcat(list, ", "); - strcat(list, inet_ntoa(((struct in_addr*) sess->recv_buf)[i])); + strcat(list, inet_ntoa(addrs[i])); } gg_debug_session(sess, GG_DEBUG_DUMP, "// gg_watch_fd() resolved: %s\n", list); @@ -687,7 +690,7 @@ gg_close(sess); sess->state = next_state; - sess->resolver_result = (struct in_addr*) sess->recv_buf; + sess->resolver_result = addrs; sess->resolver_count = count; sess->resolver_index = 0; sess->recv_buf = NULL; @@ -1239,7 +1242,9 @@ struct gg_event *e, enum gg_state_t next_state, enum gg_state_t alt_state, enum gg_state_t alt2_state) { +#if defined(GG_CONFIG_HAVE_GNUTLS) || defined(GG_CONFIG_HAVE_OPENSSL) int valid_hostname = 0; +#endif #ifdef GG_CONFIG_HAVE_GNUTLS unsigned int status; @@ -1436,6 +1441,7 @@ #endif +#if defined(GG_CONFIG_HAVE_GNUTLS) || defined(GG_CONFIG_HAVE_OPENSSL) if (!valid_hostname) { gg_debug_session(sess, GG_DEBUG_MISC, "// WARNING! unable to verify hostname\n"); @@ -1450,6 +1456,7 @@ sess->timeout = GG_DEFAULT_TIMEOUT; return GG_ACTION_WAIT; +#endif } static gg_action_t gg_handle_reading_proxy_gg(struct gg_session *sess,