libpurple/protocols/gg/lib/events.c

changeset 35686
cae91a875b23
parent 35630
8e5d0d726b09
parent 35685
703d7d7bdf60
child 36293
6af7f9a6859f
--- 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,

mercurial