[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r29877 - gnunet/src/conversation
From: |
gnunet |
Subject: |
[GNUnet-SVN] r29877 - gnunet/src/conversation |
Date: |
Sat, 5 Oct 2013 21:09:11 +0200 |
Author: grothoff
Date: 2013-10-05 21:09:11 +0200 (Sat, 05 Oct 2013)
New Revision: 29877
Modified:
gnunet/src/conversation/gnunet-service-conversation.c
Log:
-fix mesh tunnel destruction
Modified: gnunet/src/conversation/gnunet-service-conversation.c
===================================================================
--- gnunet/src/conversation/gnunet-service-conversation.c 2013-10-05
18:54:43 UTC (rev 29876)
+++ gnunet/src/conversation/gnunet-service-conversation.c 2013-10-05
19:09:11 UTC (rev 29877)
@@ -585,6 +585,11 @@
switch (line->status)
{
case LS_CALLEE_LISTEN:
+ /* could be OK if the line just was closed by the other side */
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Audio data dropped, channel is down\n");
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
+ break;
case LS_CALLEE_RINGING:
case LS_CALLER_CALLING:
GNUNET_break (0);
@@ -596,14 +601,14 @@
break;
case LS_CALLEE_SHUTDOWN:
case LS_CALLER_SHUTDOWN:
- GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG | GNUNET_ERROR_TYPE_BULK,
"Mesh audio channel in shutdown; audio data dropped\n");
GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
if (NULL == line->tunnel_unreliable)
{
- GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO | GNUNET_ERROR_TYPE_BULK,
_("Mesh audio channel not ready; audio data dropped\n"));
GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
@@ -612,10 +617,12 @@
{
/* NOTE: we may want to not do this and instead combine the data */
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
- "Dropping previous audio data segment with %u bytes\n",
- line->audio_size);
+ "Bandwidth insufficient; dropping previous audio data segment
with %u bytes\n",
+ (unsigned int) line->audio_size);
GNUNET_MESH_notify_transmit_ready_cancel (line->unreliable_mth);
+ line->unreliable_mth = NULL;
GNUNET_free (line->audio_data);
+ line->audio_data = NULL;
}
line->audio_size = size;
line->audio_data = GNUNET_malloc (line->audio_size);
@@ -1067,12 +1074,18 @@
return;
if (line->tunnel_unreliable == tunnel)
{
+ if (NULL != line->unreliable_mth)
+ {
+ GNUNET_MESH_notify_transmit_ready_cancel (line->unreliable_mth);
+ line->unreliable_mth = NULL;
+ }
line->tunnel_unreliable = NULL;
return;
}
if (line->tunnel_reliable != tunnel)
return;
line->tunnel_reliable = NULL;
+
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Mesh tunnel destroyed by mesh\n");
hup.header.size = sizeof (hup);
@@ -1081,7 +1094,7 @@
{
case LS_CALLEE_LISTEN:
GNUNET_break (0);
- return;
+ break;
case LS_CALLEE_RINGING:
case LS_CALLEE_CONNECTED:
GNUNET_SERVER_notification_context_unicast (nc,
@@ -1092,7 +1105,6 @@
break;
case LS_CALLEE_SHUTDOWN:
line->status = LS_CALLEE_LISTEN;
- destroy_line_mesh_tunnels (line);
break;
case LS_CALLER_CALLING:
case LS_CALLER_CONNECTED:
@@ -1100,12 +1112,11 @@
line->client,
&hup.header,
GNUNET_NO);
- destroy_line_mesh_tunnels (line);
break;
case LS_CALLER_SHUTDOWN:
- destroy_line_mesh_tunnels (line);
break;
}
+ destroy_line_mesh_tunnels (line);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r29877 - gnunet/src/conversation,
gnunet <=