GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Channel %u not found\n",
msg->cid);
+ GNUNET_SERVER_receive_done (client, GNUNET_YES);
return;
}
switch (ch->status)
case CS_CALLEE_SHUTDOWN:
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Ignoring client's PICKUP message, line is in SHUTDOWN\n");
- GNUNET_SERVER_receive_done (client, GNUNET_OK);
break;
case CS_CALLER_CALLING:
case CS_CALLER_CONNECTED:
break;
case CS_CALLEE_SHUTDOWN:
/* maybe the other peer closed asynchronously... */
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
case CS_CALLER_CALLING:
ch->status = CS_CALLER_SHUTDOWN;
break;
case CS_CALLER_SHUTDOWN:
/* maybe the other peer closed asynchronously... */
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Channel %u not found\n",
msg->cid);
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
if (GNUNET_YES == ch->suspended_local)
break;
case CS_CALLEE_SHUTDOWN:
/* maybe the other peer closed asynchronously... */
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
case CS_CALLER_CALLING:
GNUNET_break (0);
break;
case CS_CALLER_SHUTDOWN:
/* maybe the other peer closed asynchronously... */
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Channel %u not found\n",
msg->cid);
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
if (GNUNET_YES != ch->suspended_local)
break;
case CS_CALLEE_SHUTDOWN:
/* maybe the other peer closed asynchronously... */
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
case CS_CALLER_CALLING:
GNUNET_break (0);
break;
case CS_CALLER_SHUTDOWN:
/* maybe the other peer closed asynchronously... */
+ GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
return;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
mam->header.size = htons (sizeof (struct MeshAudioMessage) + ch->audio_size);
mam->header.type = htons (GNUNET_MESSAGE_TYPE_CONVERSATION_MESH_AUDIO);
mam->remote_line = htonl (ch->remote_line);
+ mam->source_line = htonl (ch->line->local_line);
memcpy (&mam[1], ch->audio_data, ch->audio_size);
GNUNET_free (ch->audio_data);
ch->audio_data = NULL;
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Channel %u not found\n",
msg->cid);
+ GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
(0 == memcmp (&ch->target,
&sender,
sizeof (struct GNUNET_PeerIdentity))) &&
- (NULL == ch->channel_unreliable) )
+ (NULL == ch->channel_unreliable) &&
+ (ch->remote_line == ntohl (msg->source_line)) )
break;
}
break;