summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorirungentoo <irungentoo@gmail.com>2014-12-01 18:06:45 -0500
committerirungentoo <irungentoo@gmail.com>2014-12-01 18:06:45 -0500
commit8e2b8d468af468c91fb753fd5aee944f84d6c89c (patch)
tree5a6ae9905b7484dd658f57134c273fa71e2ad843
parent15b73db70c93f827334fcccb6bb0ac979ef67630 (diff)
Group chats should be less likely to break.
-rw-r--r--toxcore/group.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/toxcore/group.c b/toxcore/group.c
index da068e9b..e03ed141 100644
--- a/toxcore/group.c
+++ b/toxcore/group.c
@@ -1750,8 +1750,12 @@ static void handle_message_packet_group(Group_Chats *g_c, int groupnumber, const
1750 1750
1751 int index = get_peer_index(g, peer_number); 1751 int index = get_peer_index(g, peer_number);
1752 1752
1753 if (index == -1) 1753 if (index == -1) {
1754 /* We don't know the peer this packet came from so we query the list of peers from that peer.
1755 (They would not have relayed it if they didn't know the peer.) */
1756 send_peer_query(g_c, g->close[close_index].number, g->close[close_index].group_number);
1754 return; 1757 return;
1758 }
1755 1759
1756 uint32_t message_number; 1760 uint32_t message_number;
1757 memcpy(&message_number, data + sizeof(uint16_t), sizeof(message_number)); 1761 memcpy(&message_number, data + sizeof(uint16_t), sizeof(message_number));
@@ -2089,7 +2093,7 @@ void *group_peer_get_object(const Group_Chats *g_c, int groupnumber, int peernum
2089} 2093}
2090 2094
2091/* Interval in seconds to send ping messages */ 2095/* Interval in seconds to send ping messages */
2092#define GROUP_PING_INTERVAL 30 2096#define GROUP_PING_INTERVAL 20
2093 2097
2094static int ping_groupchat(Group_Chats *g_c, int groupnumber) 2098static int ping_groupchat(Group_Chats *g_c, int groupnumber)
2095{ 2099{
@@ -2116,7 +2120,7 @@ static int groupchat_clear_timedout(Group_Chats *g_c, int groupnumber)
2116 uint32_t i; 2120 uint32_t i;
2117 2121
2118 for (i = 0; i < g->numpeers; ++i) { 2122 for (i = 0; i < g->numpeers; ++i) {
2119 if (g->peer_number != g->group[i].peer_number && is_timeout(g->group[i].last_recv, GROUP_PING_INTERVAL * 2)) { 2123 if (g->peer_number != g->group[i].peer_number && is_timeout(g->group[i].last_recv, GROUP_PING_INTERVAL * 3)) {
2120 delpeer(g_c, groupnumber, i); 2124 delpeer(g_c, groupnumber, i);
2121 } 2125 }
2122 2126