aboutsummaryrefslogtreecommitdiff
path: root/src/conversation
diff options
context:
space:
mode:
Diffstat (limited to 'src/conversation')
-rw-r--r--src/conversation/conversation.conf.in2
-rw-r--r--src/conversation/conversation.h18
-rw-r--r--src/conversation/conversation_api.c18
-rw-r--r--src/conversation/conversation_api_call.c18
-rw-r--r--src/conversation/gnunet-conversation-test.c47
-rw-r--r--src/conversation/gnunet-conversation.c27
-rw-r--r--src/conversation/gnunet-helper-audio-playback-gst.c18
-rw-r--r--src/conversation/gnunet-helper-audio-playback.c57
-rw-r--r--src/conversation/gnunet-helper-audio-record-gst.c18
-rw-r--r--src/conversation/gnunet-helper-audio-record.c66
-rw-r--r--src/conversation/gnunet-service-conversation.c110
-rw-r--r--src/conversation/gnunet_gst.c18
-rw-r--r--src/conversation/gnunet_gst.h18
-rw-r--r--src/conversation/gnunet_gst_def.h18
-rw-r--r--src/conversation/gnunet_gst_test.c18
-rw-r--r--src/conversation/microphone.c18
-rw-r--r--src/conversation/plugin_gnsrecord_conversation.c23
-rw-r--r--src/conversation/speaker.c18
-rw-r--r--src/conversation/test_conversation.conf2
-rw-r--r--src/conversation/test_conversation_api.c18
-rw-r--r--src/conversation/test_conversation_api_reject.c18
-rw-r--r--src/conversation/test_conversation_api_twocalls.c18
22 files changed, 324 insertions, 262 deletions
diff --git a/src/conversation/conversation.conf.in b/src/conversation/conversation.conf.in
index e966ed6d9..b28fb6e1f 100644
--- a/src/conversation/conversation.conf.in
+++ b/src/conversation/conversation.conf.in
@@ -1,5 +1,5 @@
1[conversation] 1[conversation]
2AUTOSTART = @AUTOSTART@ 2START_ON_DEMAND = @START_ON_DEMAND@
3BINARY = gnunet-service-conversation 3BINARY = gnunet-service-conversation
4UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-conversation.sock 4UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-service-conversation.sock
5HOSTNAME = localhost 5HOSTNAME = localhost
diff --git a/src/conversation/conversation.h b/src/conversation/conversation.h
index 1ca816f0e..0a71fd723 100644
--- a/src/conversation/conversation.h
+++ b/src/conversation/conversation.h
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013-2016 GNUnet e.V. 3 Copyright (C) 2013-2016 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20 18
21/** 19/**
diff --git a/src/conversation/conversation_api.c b/src/conversation/conversation_api.c
index 00ee3d3ea..b7f1af0cf 100644
--- a/src/conversation/conversation_api.c
+++ b/src/conversation/conversation_api.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet 2 This file is part of GNUnet
3 Copyright (C) 2013, 2014 GNUnet e.V. 3 Copyright (C) 2013, 2014 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19 */ 17 */
20 18
21/** 19/**
diff --git a/src/conversation/conversation_api_call.c b/src/conversation/conversation_api_call.c
index 816920f0f..dee4a6095 100644
--- a/src/conversation/conversation_api_call.c
+++ b/src/conversation/conversation_api_call.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet 2 This file is part of GNUnet
3 Copyright (C) 2013, 2016 GNUnet e.V. 3 Copyright (C) 2013, 2016 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19 */ 17 */
20 18
21/** 19/**
diff --git a/src/conversation/gnunet-conversation-test.c b/src/conversation/gnunet-conversation-test.c
index 804df4c88..2c9ed715b 100644
--- a/src/conversation/gnunet-conversation-test.c
+++ b/src/conversation/gnunet-conversation-test.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20 18
21/** 19/**
@@ -102,6 +100,7 @@ do_shutdown (void *cls)
102{ 100{
103 struct Recording *rec; 101 struct Recording *rec;
104 102
103 (void) cls;
105 if (NULL != switch_task) 104 if (NULL != switch_task)
106 GNUNET_SCHEDULER_cancel (switch_task); 105 GNUNET_SCHEDULER_cancel (switch_task);
107 if (NULL != microphone) 106 if (NULL != microphone)
@@ -128,8 +127,7 @@ do_shutdown (void *cls)
128static void 127static void
129switch_to_speaker (void *cls) 128switch_to_speaker (void *cls)
130{ 129{
131 struct Recording *rec; 130 (void) cls;
132
133 switch_task = NULL; 131 switch_task = NULL;
134 microphone->disable_microphone (microphone->cls); 132 microphone->disable_microphone (microphone->cls);
135 if (GNUNET_OK != 133 if (GNUNET_OK !=
@@ -143,7 +141,7 @@ switch_to_speaker (void *cls)
143 } 141 }
144 fprintf (stderr, 142 fprintf (stderr,
145 _("\nWe are now playing your recording back. If you can hear it, your audio settings are working...")); 143 _("\nWe are now playing your recording back. If you can hear it, your audio settings are working..."));
146 for (rec=rec_head; NULL != rec; rec = rec->next) 144 for (struct Recording *rec=rec_head; NULL != rec; rec = rec->next)
147 { 145 {
148 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 146 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
149 "Replaying %u bytes\n", 147 "Replaying %u bytes\n",
@@ -173,6 +171,7 @@ record (void *cls,
173{ 171{
174 struct Recording *rec; 172 struct Recording *rec;
175 173
174 (void) cls;
176 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 175 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
177 "Recorded %u bytes\n", 176 "Recorded %u bytes\n",
178 (unsigned int) data_size); 177 (unsigned int) data_size);
@@ -194,9 +193,14 @@ record (void *cls,
194 * @param cfg configuration 193 * @param cfg configuration
195 */ 194 */
196static void 195static void
197run (void *cls, char *const *args, const char *cfgfile, 196run (void *cls,
197 char *const *args,
198 const char *cfgfile,
198 const struct GNUNET_CONFIGURATION_Handle *cfg) 199 const struct GNUNET_CONFIGURATION_Handle *cfg)
199{ 200{
201 (void) cls;
202 (void) args;
203 (void) cfgfile;
200 microphone = GNUNET_MICROPHONE_create_from_hardware (cfg); 204 microphone = GNUNET_MICROPHONE_create_from_hardware (cfg);
201 GNUNET_assert (NULL != microphone); 205 GNUNET_assert (NULL != microphone);
202 speaker = GNUNET_SPEAKER_create_from_hardware (cfg); 206 speaker = GNUNET_SPEAKER_create_from_hardware (cfg);
@@ -230,17 +234,24 @@ run (void *cls, char *const *args, const char *cfgfile,
230 * @return 0 ok, 1 on error 234 * @return 0 ok, 1 on error
231 */ 235 */
232int 236int
233main (int argc, char *const *argv) 237main (int argc,
238 char *const *argv)
234{ 239{
235 static const struct GNUNET_GETOPT_CommandLineOption options[] = { 240 static const struct GNUNET_GETOPT_CommandLineOption options[] = {
236 GNUNET_GETOPT_OPTION_END 241 GNUNET_GETOPT_OPTION_END
237 }; 242 };
238 if (GNUNET_OK != GNUNET_STRINGS_get_utf8_args (argc, argv, &argc, &argv)) 243
244 if (GNUNET_OK !=
245 GNUNET_STRINGS_get_utf8_args (argc, argv,
246 &argc, &argv))
239 return 2; 247 return 2;
240 248
241 ret = (GNUNET_OK == 249 ret = (GNUNET_OK ==
242 GNUNET_PROGRAM_run (argc, argv, "gnunet-conversation-test", 250 GNUNET_PROGRAM_run (argc, argv,
243 gettext_noop ("help text"), options, &run, 251 "gnunet-conversation-test",
252 gettext_noop ("help text"),
253 options,
254 &run,
244 NULL)) ? ret : 1; 255 NULL)) ? ret : 1;
245 GNUNET_free ((void*) argv); 256 GNUNET_free ((void*) argv);
246 return ret; 257 return ret;
diff --git a/src/conversation/gnunet-conversation.c b/src/conversation/gnunet-conversation.c
index 70ccedbee..bb4946720 100644
--- a/src/conversation/gnunet-conversation.c
+++ b/src/conversation/gnunet-conversation.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet-conversation.c 19 * @file conversation/gnunet-conversation.c
@@ -266,6 +264,13 @@ phone_event_handler (void *cls,
266 switch (code) 264 switch (code)
267 { 265 {
268 case GNUNET_CONVERSATION_EC_PHONE_RING: 266 case GNUNET_CONVERSATION_EC_PHONE_RING:
267 /*
268 * FIXME: we should be playing our ringtones from contrib/sounds now!
269 *
270 ring_my_bell();
271 *
272 * see https://gstreamer.freedesktop.org/documentation/application-development/highlevel/playback-components.html on how to play a wav using the gst framework being used here
273 */
269 FPRINTF (stdout, 274 FPRINTF (stdout,
270 _("Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"), 275 _("Incoming call from `%s'. Please /accept %u or /cancel %u the call.\n"),
271 GNUNET_GNSRECORD_pkey_to_zkey (caller_id), 276 GNUNET_GNSRECORD_pkey_to_zkey (caller_id),
@@ -719,7 +724,7 @@ do_status (const char *args)
719 break; 724 break;
720 case CS_RINGING: 725 case CS_RINGING:
721 FPRINTF (stdout, 726 FPRINTF (stdout,
722 _("We are calling `%s', his phone should be ringing.\n"), 727 _("We are calling `%s', their phone should be ringing.\n"),
723 peer_name); 728 peer_name);
724 break; 729 break;
725 case CS_CONNECTED: 730 case CS_CONNECTED:
diff --git a/src/conversation/gnunet-helper-audio-playback-gst.c b/src/conversation/gnunet-helper-audio-playback-gst.c
index 002fed6c7..b3656417e 100644
--- a/src/conversation/gnunet-helper-audio-playback-gst.c
+++ b/src/conversation/gnunet-helper-audio-playback-gst.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet-helper-audio-playback-gst.c 19 * @file conversation/gnunet-helper-audio-playback-gst.c
diff --git a/src/conversation/gnunet-helper-audio-playback.c b/src/conversation/gnunet-helper-audio-playback.c
index 18f63ad18..093b08ec3 100644
--- a/src/conversation/gnunet-helper-audio-playback.c
+++ b/src/conversation/gnunet-helper-audio-playback.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet-helper-audio-playback.c 19 * @file conversation/gnunet-helper-audio-playback.c
@@ -149,17 +147,22 @@ process_header (ogg_packet *op)
149 OpusDecoder *dec; 147 OpusDecoder *dec;
150 struct OpusHeadPacket header; 148 struct OpusHeadPacket header;
151 149
152 if (op->bytes < sizeof (header)) 150 if ( ((unsigned int) op->bytes) < sizeof (header))
153 return NULL; 151 return NULL;
154 GNUNET_memcpy (&header, op->packet, sizeof (header)); 152 GNUNET_memcpy (&header,
153 op->packet,
154 sizeof (header));
155 header.preskip = GNUNET_le16toh (header.preskip); 155 header.preskip = GNUNET_le16toh (header.preskip);
156 header.sampling_rate = GNUNET_le32toh (header.sampling_rate); 156 header.sampling_rate = GNUNET_le32toh (header.sampling_rate);
157 header.gain = GNUNET_le16toh (header.gain); 157 header.gain = GNUNET_le16toh (header.gain);
158 158
159 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 159 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
160 "Header: v%u, %u-ch, skip %u, %uHz, %u gain\n", 160 "Header: v%u, %u-ch, skip %u, %uHz, %u gain\n",
161 header.version, header.channels, header.preskip, header.sampling_rate, header.gain); 161 header.version,
162 162 header.channels,
163 header.preskip,
164 header.sampling_rate,
165 header.gain);
163 channels = header.channels; 166 channels = header.channels;
164 preskip = header.preskip; 167 preskip = header.preskip;
165 168
@@ -338,7 +341,8 @@ audio_write (int64_t maxout)
338static void 341static void
339quit (int ret) 342quit (int ret)
340{ 343{
341 mainloop_api->quit (mainloop_api, ret); 344 mainloop_api->quit (mainloop_api,
345 ret);
342 exit (ret); 346 exit (ret);
343} 347}
344 348
@@ -544,6 +548,7 @@ ogg_demux_and_decode ()
544 } 548 }
545} 549}
546 550
551
547/** 552/**
548 * Message callback 553 * Message callback
549 * 554 *
@@ -560,6 +565,7 @@ stdin_receiver (void *cls,
560 char *data; 565 char *data;
561 size_t payload_len; 566 size_t payload_len;
562 567
568 (void) cls;
563 switch (ntohs (msg->type)) 569 switch (ntohs (msg->type))
564 { 570 {
565 case GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO: 571 case GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO:
@@ -590,6 +596,9 @@ stream_write_callback (pa_stream *s,
590 void *userdata) 596 void *userdata)
591{ 597{
592 /* unblock 'main' */ 598 /* unblock 'main' */
599 (void) userdata;
600 (void) length;
601 (void) s;
593 if (-1 != ready_pipe[1]) 602 if (-1 != ready_pipe[1])
594 { 603 {
595 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 604 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -608,6 +617,10 @@ exit_signal_callback (pa_mainloop_api *m,
608 int sig, 617 int sig,
609 void *userdata) 618 void *userdata)
610{ 619{
620 (void) m;
621 (void) e;
622 (void) sig;
623 (void) userdata;
611 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 624 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
612 _("gnunet-helper-audio-playback - Got signal, exiting\n")); 625 _("gnunet-helper-audio-playback - Got signal, exiting\n"));
613 quit (1); 626 quit (1);
@@ -623,6 +636,7 @@ context_state_callback (pa_context *c,
623{ 636{
624 int p; 637 int p;
625 638
639 (void) userdata;
626 GNUNET_assert (NULL != c); 640 GNUNET_assert (NULL != c);
627 switch (pa_context_get_state (c)) 641 switch (pa_context_get_state (c))
628 { 642 {
@@ -735,7 +749,11 @@ ogg_init ()
735static void 749static void
736drain_callback (pa_stream*s, int success, void *userdata) 750drain_callback (pa_stream*s, int success, void *userdata)
737{ 751{
738 pa_threaded_mainloop_signal (m, 0); 752 (void) s;
753 (void) success;
754 (void) userdata;
755 pa_threaded_mainloop_signal (m,
756 0);
739} 757}
740 758
741 759
@@ -750,7 +768,6 @@ int
750main (int argc, char *argv[]) 768main (int argc, char *argv[])
751{ 769{
752 static unsigned long long toff; 770 static unsigned long long toff;
753
754 char readbuf[MAXLINE]; 771 char readbuf[MAXLINE];
755 struct GNUNET_MessageStreamTokenizer *stdin_mst; 772 struct GNUNET_MessageStreamTokenizer *stdin_mst;
756 char c; 773 char c;
@@ -759,6 +776,8 @@ main (int argc, char *argv[])
759 int read_pure_ogg = getenv ("GNUNET_READ_PURE_OGG") ? 1 : 0; 776 int read_pure_ogg = getenv ("GNUNET_READ_PURE_OGG") ? 1 : 0;
760#endif 777#endif
761 778
779 (void) argc;
780 (void) argv;
762 GNUNET_assert (GNUNET_OK == 781 GNUNET_assert (GNUNET_OK ==
763 GNUNET_log_setup ("gnunet-helper-audio-playback", 782 GNUNET_log_setup ("gnunet-helper-audio-playback",
764 "WARNING", 783 "WARNING",
@@ -783,7 +802,9 @@ main (int argc, char *argv[])
783#endif 802#endif
784 while (1) 803 while (1)
785 { 804 {
786 ret = read (0, readbuf, sizeof (readbuf)); 805 ret = read (STDIN_FILENO,
806 readbuf,
807 sizeof (readbuf));
787 toff += ret; 808 toff += ret;
788 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 809 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
789 "Received %d bytes of audio data (total: %llu)\n", 810 "Received %d bytes of audio data (total: %llu)\n",
diff --git a/src/conversation/gnunet-helper-audio-record-gst.c b/src/conversation/gnunet-helper-audio-record-gst.c
index b9aed4ea7..fbba7da39 100644
--- a/src/conversation/gnunet-helper-audio-record-gst.c
+++ b/src/conversation/gnunet-helper-audio-record-gst.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet-helper-audio-record-gst.c 19 * @file conversation/gnunet-helper-audio-record-gst.c
diff --git a/src/conversation/gnunet-helper-audio-record.c b/src/conversation/gnunet-helper-audio-record.c
index 82bb6d5b3..89800faa2 100644
--- a/src/conversation/gnunet-helper-audio-record.c
+++ b/src/conversation/gnunet-helper-audio-record.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet-helper-audio-record.c 19 * @file conversation/gnunet-helper-audio-record.c
@@ -269,30 +267,36 @@ static int dump_pure_ogg;
269static void 267static void
270quit (int ret) 268quit (int ret)
271{ 269{
272 mainloop_api->quit (mainloop_api, ret); 270 mainloop_api->quit (mainloop_api,
271 ret);
273 exit (ret); 272 exit (ret);
274} 273}
275 274
276 275
277static void 276static void
278write_data (const char *ptr, size_t msg_size) 277write_data (const char *ptr,
278 size_t msg_size)
279{ 279{
280 ssize_t ret; 280 ssize_t ret;
281 size_t off; 281 size_t off;
282 off = 0; 282 off = 0;
283 while (off < msg_size) 283 while (off < msg_size)
284 { 284 {
285 ret = write (1, &ptr[off], msg_size - off); 285 ret = write (STDOUT_FILENO,
286 &ptr[off],
287 msg_size - off);
286 if (0 >= ret) 288 if (0 >= ret)
287 { 289 {
288 if (-1 == ret) 290 if (-1 == ret)
289 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR, "write"); 291 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
292 "write");
290 quit (2); 293 quit (2);
291 } 294 }
292 off += ret; 295 off += ret;
293 } 296 }
294} 297}
295 298
299
296static void 300static void
297write_page (ogg_page *og) 301write_page (ogg_page *og)
298{ 302{
@@ -310,12 +314,15 @@ write_page (ogg_page *og)
310 toff); 314 toff);
311#ifdef DEBUG_RECORD_PURE_OGG 315#ifdef DEBUG_RECORD_PURE_OGG
312 if (dump_pure_ogg) 316 if (dump_pure_ogg)
313 write_data ((const char *) &audio_message[1], og->header_len + og->body_len); 317 write_data ((const char *) &audio_message[1],
318 og->header_len + og->body_len);
314 else 319 else
315#endif 320#endif
316 write_data ((const char *) audio_message, msg_size); 321 write_data ((const char *) audio_message,
322 msg_size);
317} 323}
318 324
325
319/** 326/**
320 * Creates OPUS packets from PCM data 327 * Creates OPUS packets from PCM data
321 */ 328 */
@@ -345,7 +352,7 @@ packetizer ()
345 opus_strerror (len)); 352 opus_strerror (len));
346 quit (5); 353 quit (5);
347 } 354 }
348 if (len > UINT16_MAX - sizeof (struct AudioMessage)) 355 if (((uint32_t)len) > UINT16_MAX - sizeof (struct AudioMessage))
349 { 356 {
350 GNUNET_break (0); 357 GNUNET_break (0);
351 continue; 358 continue;
@@ -365,7 +372,9 @@ packetizer ()
365 372
366 while (ogg_stream_flush_fill (&os, &og, PAGE_WATERLINE)) 373 while (ogg_stream_flush_fill (&os, &og, PAGE_WATERLINE))
367 { 374 {
368 if (og.header_len + og.body_len > UINT16_MAX - sizeof (struct AudioMessage)) 375 if ( ((unsigned long long) og.header_len) +
376 ((unsigned long long) og.body_len) >
377 UINT16_MAX - sizeof (struct AudioMessage))
369 { 378 {
370 GNUNET_assert (0); 379 GNUNET_assert (0);
371 continue; 380 continue;
@@ -404,6 +413,7 @@ stream_read_callback (pa_stream * s,
404{ 413{
405 const void *data; 414 const void *data;
406 415
416 (void) userdata;
407 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 417 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
408 "Got %u/%d bytes of PCM data\n", 418 "Got %u/%d bytes of PCM data\n",
409 (unsigned int) length, 419 (unsigned int) length,
@@ -454,6 +464,10 @@ exit_signal_callback (pa_mainloop_api * m,
454 int sig, 464 int sig,
455 void *userdata) 465 void *userdata)
456{ 466{
467 (void) m;
468 (void) e;
469 (void) sig;
470 (void) userdata;
457 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 471 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
458 _("Got signal, exiting.\n")); 472 _("Got signal, exiting.\n"));
459 quit (1); 473 quit (1);
@@ -464,10 +478,11 @@ exit_signal_callback (pa_mainloop_api * m,
464 * Pulseaudio stream state callback 478 * Pulseaudio stream state callback
465 */ 479 */
466static void 480static void
467stream_state_callback (pa_stream * s, void *userdata) 481stream_state_callback (pa_stream * s,
482 void *userdata)
468{ 483{
484 (void) userdata;
469 GNUNET_assert (NULL != s); 485 GNUNET_assert (NULL != s);
470
471 switch (pa_stream_get_state (s)) 486 switch (pa_stream_get_state (s))
472 { 487 {
473 case PA_STREAM_CREATING: 488 case PA_STREAM_CREATING:
@@ -527,6 +542,7 @@ static void
527context_state_callback (pa_context * c, 542context_state_callback (pa_context * c,
528 void *userdata) 543 void *userdata)
529{ 544{
545 (void) userdata;
530 GNUNET_assert (c); 546 GNUNET_assert (c);
531 547
532 switch (pa_context_get_state (c)) 548 switch (pa_context_get_state (c))
@@ -659,6 +675,7 @@ opus_init ()
659 OPUS_SET_SIGNAL (CONV_OPUS_SIGNAL)); 675 OPUS_SET_SIGNAL (CONV_OPUS_SIGNAL));
660} 676}
661 677
678
662static void 679static void
663ogg_init () 680ogg_init ()
664{ 681{
@@ -667,8 +684,8 @@ ogg_init ()
667 struct OpusCommentsPacket *commentspacket; 684 struct OpusCommentsPacket *commentspacket;
668 size_t commentspacket_len; 685 size_t commentspacket_len;
669 686
670 serialno = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_STRONG, 0x7FFFFFFF); 687 serialno = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_STRONG,
671 688 0x7FFFFFFF);
672 /*Initialize Ogg stream struct*/ 689 /*Initialize Ogg stream struct*/
673 if (-1 == ogg_stream_init (&os, serialno)) 690 if (-1 == ogg_stream_init (&os, serialno))
674 { 691 {
@@ -755,8 +772,11 @@ ogg_init ()
755 * @return 0 ok, 1 on error 772 * @return 0 ok, 1 on error
756 */ 773 */
757int 774int
758main (int argc, char *argv[]) 775main (int argc,
776 char *argv[])
759{ 777{
778 (void) argc;
779 (void) argv;
760 GNUNET_assert (GNUNET_OK == 780 GNUNET_assert (GNUNET_OK ==
761 GNUNET_log_setup ("gnunet-helper-audio-record", 781 GNUNET_log_setup ("gnunet-helper-audio-record",
762 "WARNING", 782 "WARNING",
diff --git a/src/conversation/gnunet-service-conversation.c b/src/conversation/gnunet-service-conversation.c
index 7d319e51e..059bb158b 100644
--- a/src/conversation/gnunet-service-conversation.c
+++ b/src/conversation/gnunet-service-conversation.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013, 2016, 2017 GNUnet e.V. 3 Copyright (C) 2013, 2016, 2017 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet-service-conversation.c 19 * @file conversation/gnunet-service-conversation.c
@@ -305,6 +303,47 @@ handle_client_pickup_message (void *cls,
305 303
306 304
307/** 305/**
306 * Channel went down, notify client and free data
307 * structure.
308 *
309 * @param ch channel that went down
310 */
311static void
312clean_up_channel (struct Channel *ch)
313{
314 struct Line *line = ch->line;
315 struct GNUNET_MQ_Envelope *env;
316 struct ClientPhoneHangupMessage *hup;
317
318 switch (ch->status)
319 {
320 case CS_CALLEE_INIT:
321 case CS_CALLEE_SHUTDOWN:
322 case CS_CALLER_SHUTDOWN:
323 break;
324 case CS_CALLEE_RINGING:
325 case CS_CALLEE_CONNECTED:
326 case CS_CALLER_CALLING:
327 case CS_CALLER_CONNECTED:
328 if (NULL != line)
329 {
330 env = GNUNET_MQ_msg (hup,
331 GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_HANG_UP);
332 hup->cid = ch->cid;
333 GNUNET_MQ_send (line->mq,
334 env);
335 }
336 break;
337 }
338 if (NULL != line)
339 GNUNET_CONTAINER_DLL_remove (line->channel_head,
340 line->channel_tail,
341 ch);
342 GNUNET_free (ch);
343}
344
345
346/**
308 * Destroy a channel. 347 * Destroy a channel.
309 * 348 *
310 * @param ch channel to destroy. 349 * @param ch channel to destroy.
@@ -315,7 +354,11 @@ destroy_line_cadet_channels (struct Channel *ch)
315 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 354 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
316 "Destroying cadet channels\n"); 355 "Destroying cadet channels\n");
317 if (NULL != ch->channel) 356 if (NULL != ch->channel)
357 {
318 GNUNET_CADET_channel_destroy (ch->channel); 358 GNUNET_CADET_channel_destroy (ch->channel);
359 ch->channel = NULL;
360 }
361 clean_up_channel (ch);
319} 362}
320 363
321 364
@@ -605,6 +648,8 @@ static int
605check_client_audio_message (void *cls, 648check_client_audio_message (void *cls,
606 const struct ClientAudioMessage *msg) 649 const struct ClientAudioMessage *msg)
607{ 650{
651 (void) cls;
652 (void) msg;
608 return GNUNET_OK; 653 return GNUNET_OK;
609} 654}
610 655
@@ -771,6 +816,7 @@ handle_cadet_hangup_message (void *cls,
771 enum ChannelStatus status; 816 enum ChannelStatus status;
772 uint32_t cid; 817 uint32_t cid;
773 818
819 (void) message;
774 GNUNET_CADET_receive_done (ch->channel); 820 GNUNET_CADET_receive_done (ch->channel);
775 cid = ch->cid; 821 cid = ch->cid;
776 status = ch->status; 822 status = ch->status;
@@ -816,6 +862,7 @@ handle_cadet_pickup_message (void *cls,
816 struct GNUNET_MQ_Envelope *env; 862 struct GNUNET_MQ_Envelope *env;
817 struct ClientPhonePickedupMessage *pick; 863 struct ClientPhonePickedupMessage *pick;
818 864
865 (void) message;
819 GNUNET_CADET_receive_done (ch->channel); 866 GNUNET_CADET_receive_done (ch->channel);
820 switch (ch->status) 867 switch (ch->status)
821 { 868 {
@@ -865,6 +912,7 @@ handle_cadet_suspend_message (void *cls,
865 struct GNUNET_MQ_Envelope *env; 912 struct GNUNET_MQ_Envelope *env;
866 struct ClientPhoneSuspendMessage *suspend; 913 struct ClientPhoneSuspendMessage *suspend;
867 914
915 (void) message;
868 GNUNET_CADET_receive_done (ch->channel); 916 GNUNET_CADET_receive_done (ch->channel);
869 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 917 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
870 "Suspending channel CID: %u\n", 918 "Suspending channel CID: %u\n",
@@ -914,6 +962,7 @@ handle_cadet_resume_message (void *cls,
914 struct GNUNET_MQ_Envelope *env; 962 struct GNUNET_MQ_Envelope *env;
915 struct ClientPhoneResumeMessage *resume; 963 struct ClientPhoneResumeMessage *resume;
916 964
965 (void) msg;
917 line = ch->line; 966 line = ch->line;
918 GNUNET_CADET_receive_done (ch->channel); 967 GNUNET_CADET_receive_done (ch->channel);
919 if (GNUNET_YES != ch->suspended_remote) 968 if (GNUNET_YES != ch->suspended_remote)
@@ -964,6 +1013,8 @@ static int
964check_cadet_audio_message (void *cls, 1013check_cadet_audio_message (void *cls,
965 const struct CadetAudioMessage *msg) 1014 const struct CadetAudioMessage *msg)
966{ 1015{
1016 (void) cls;
1017 (void) msg;
967 return GNUNET_OK; /* any payload is fine */ 1018 return GNUNET_OK; /* any payload is fine */
968} 1019}
969 1020
@@ -1021,40 +1072,13 @@ inbound_end (void *cls,
1021 const struct GNUNET_CADET_Channel *channel) 1072 const struct GNUNET_CADET_Channel *channel)
1022{ 1073{
1023 struct Channel *ch = cls; 1074 struct Channel *ch = cls;
1024 struct Line *line = ch->line;
1025 struct GNUNET_MQ_Envelope *env;
1026 struct ClientPhoneHangupMessage *hup;
1027 1075
1028 GNUNET_assert (channel == ch->channel); 1076 GNUNET_assert (channel == ch->channel);
1029 ch->channel = NULL; 1077 ch->channel = NULL;
1030 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1078 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1031 "Channel destroyed by CADET in state %d\n", 1079 "Channel destroyed by CADET in state %d\n",
1032 ch->status); 1080 ch->status);
1033 switch (ch->status) 1081 clean_up_channel (ch);
1034 {
1035 case CS_CALLEE_INIT:
1036 case CS_CALLEE_SHUTDOWN:
1037 case CS_CALLER_SHUTDOWN:
1038 break;
1039 case CS_CALLEE_RINGING:
1040 case CS_CALLEE_CONNECTED:
1041 case CS_CALLER_CALLING:
1042 case CS_CALLER_CONNECTED:
1043 if (NULL != line)
1044 {
1045 env = GNUNET_MQ_msg (hup,
1046 GNUNET_MESSAGE_TYPE_CONVERSATION_CS_PHONE_HANG_UP);
1047 hup->cid = ch->cid;
1048 GNUNET_MQ_send (line->mq,
1049 env);
1050 }
1051 break;
1052 }
1053 if (NULL != line)
1054 GNUNET_CONTAINER_DLL_remove (line->channel_head,
1055 line->channel_tail,
1056 ch);
1057 GNUNET_free (ch);
1058} 1082}
1059 1083
1060 1084
@@ -1152,6 +1176,7 @@ inbound_channel (void *cls,
1152 struct Line *line = cls; 1176 struct Line *line = cls;
1153 struct Channel *ch; 1177 struct Channel *ch;
1154 1178
1179 (void) initiator;
1155 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1180 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1156 "Received incoming cadet channel on line %p\n", 1181 "Received incoming cadet channel on line %p\n",
1157 line); 1182 line);
@@ -1183,6 +1208,7 @@ client_connect_cb (void *cls,
1183{ 1208{
1184 struct Line *line; 1209 struct Line *line;
1185 1210
1211 (void) cls;
1186 line = GNUNET_new (struct Line); 1212 line = GNUNET_new (struct Line);
1187 line->client = client; 1213 line->client = client;
1188 line->mq = mq; 1214 line->mq = mq;
@@ -1203,9 +1229,10 @@ client_disconnect_cb (void *cls,
1203 void *app_ctx) 1229 void *app_ctx)
1204{ 1230{
1205 struct Line *line = app_ctx; 1231 struct Line *line = app_ctx;
1206 struct Channel *ch;
1207 struct Channel *chn; 1232 struct Channel *chn;
1208 1233
1234 (void) cls;
1235 (void) client;
1209 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 1236 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
1210 "Client disconnected, closing line\n"); 1237 "Client disconnected, closing line\n");
1211 if (NULL != line->port) 1238 if (NULL != line->port)
@@ -1213,7 +1240,7 @@ client_disconnect_cb (void *cls,
1213 GNUNET_CADET_close_port (line->port); 1240 GNUNET_CADET_close_port (line->port);
1214 line->port = NULL; 1241 line->port = NULL;
1215 } 1242 }
1216 for (ch = line->channel_head; NULL != ch; ch = chn) 1243 for (struct Channel *ch = line->channel_head; NULL != ch; ch = chn)
1217 { 1244 {
1218 chn = ch->next; 1245 chn = ch->next;
1219 ch->line = NULL; 1246 ch->line = NULL;
@@ -1290,6 +1317,7 @@ handle_client_register_message (void *cls,
1290static void 1317static void
1291do_shutdown (void *cls) 1318do_shutdown (void *cls)
1292{ 1319{
1320 (void) cls;
1293 if (NULL != cadet) 1321 if (NULL != cadet)
1294 { 1322 {
1295 GNUNET_CADET_disconnect (cadet); 1323 GNUNET_CADET_disconnect (cadet);
@@ -1310,6 +1338,8 @@ run (void *cls,
1310 const struct GNUNET_CONFIGURATION_Handle *c, 1338 const struct GNUNET_CONFIGURATION_Handle *c,
1311 struct GNUNET_SERVICE_Handle *service) 1339 struct GNUNET_SERVICE_Handle *service)
1312{ 1340{
1341 (void) cls;
1342 (void) service;
1313 cfg = c; 1343 cfg = c;
1314 GNUNET_assert (GNUNET_OK == 1344 GNUNET_assert (GNUNET_OK ==
1315 GNUNET_CRYPTO_get_peer_identity (cfg, 1345 GNUNET_CRYPTO_get_peer_identity (cfg,
diff --git a/src/conversation/gnunet_gst.c b/src/conversation/gnunet_gst.c
index 828b35077..279c5522b 100644
--- a/src/conversation/gnunet_gst.c
+++ b/src/conversation/gnunet_gst.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2016 GNUnet e.V. 3 Copyright (C) 2016 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet_gst.c 19 * @file conversation/gnunet_gst.c
diff --git a/src/conversation/gnunet_gst.h b/src/conversation/gnunet_gst.h
index 266a0d892..69ac0933c 100644
--- a/src/conversation/gnunet_gst.h
+++ b/src/conversation/gnunet_gst.h
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2016 GNUnet e.V. 3 Copyright (C) 2016 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet_gst.c 19 * @file conversation/gnunet_gst.c
diff --git a/src/conversation/gnunet_gst_def.h b/src/conversation/gnunet_gst_def.h
index 980ed2f48..225bb2dc5 100644
--- a/src/conversation/gnunet_gst_def.h
+++ b/src/conversation/gnunet_gst_def.h
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2016 GNUnet e.V. 3 Copyright (C) 2016 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet_gst_def.h 19 * @file conversation/gnunet_gst_def.h
diff --git a/src/conversation/gnunet_gst_test.c b/src/conversation/gnunet_gst_test.c
index 03f6a4d95..46073ebe3 100644
--- a/src/conversation/gnunet_gst_test.c
+++ b/src/conversation/gnunet_gst_test.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2016 GNUnet e.V. 3 Copyright (C) 2016 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/gnunet_gst_test.c 19 * @file conversation/gnunet_gst_test.c
diff --git a/src/conversation/microphone.c b/src/conversation/microphone.c
index 11468fc59..7df436217 100644
--- a/src/conversation/microphone.c
+++ b/src/conversation/microphone.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet 2 This file is part of GNUnet
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19 */ 17 */
20 18
21/** 19/**
diff --git a/src/conversation/plugin_gnsrecord_conversation.c b/src/conversation/plugin_gnsrecord_conversation.c
index 91cae7261..1825c6d4b 100644
--- a/src/conversation/plugin_gnsrecord_conversation.c
+++ b/src/conversation/plugin_gnsrecord_conversation.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet 2 This file is part of GNUnet
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20 18
21/** 19/**
@@ -51,6 +49,7 @@ conversation_value_to_string (void *cls,
51{ 49{
52 char *s; 50 char *s;
53 51
52 (void) cls;
54 switch (type) 53 switch (type)
55 { 54 {
56 case GNUNET_GNSRECORD_TYPE_PHONE: 55 case GNUNET_GNSRECORD_TYPE_PHONE:
@@ -108,6 +107,7 @@ conversation_string_to_value (void *cls,
108 void **data, 107 void **data,
109 size_t *data_size) 108 size_t *data_size)
110{ 109{
110 (void) cls;
111 if (NULL == s) 111 if (NULL == s)
112 { 112 {
113 GNUNET_break (0); 113 GNUNET_break (0);
@@ -186,6 +186,7 @@ conversation_typename_to_number (void *cls,
186{ 186{
187 unsigned int i; 187 unsigned int i;
188 188
189 (void) cls;
189 i=0; 190 i=0;
190 while ( (name_map[i].name != NULL) && 191 while ( (name_map[i].name != NULL) &&
191 (0 != strcasecmp (gns_typename, name_map[i].name)) ) 192 (0 != strcasecmp (gns_typename, name_map[i].name)) )
@@ -207,6 +208,7 @@ conversation_number_to_typename (void *cls,
207{ 208{
208 unsigned int i; 209 unsigned int i;
209 210
211 (void) cls;
210 i=0; 212 i=0;
211 while ( (name_map[i].name != NULL) && 213 while ( (name_map[i].name != NULL) &&
212 (type != name_map[i].number) ) 214 (type != name_map[i].number) )
@@ -226,6 +228,7 @@ libgnunet_plugin_gnsrecord_conversation_init (void *cls)
226{ 228{
227 struct GNUNET_GNSRECORD_PluginFunctions *api; 229 struct GNUNET_GNSRECORD_PluginFunctions *api;
228 230
231 (void) cls;
229 api = GNUNET_new (struct GNUNET_GNSRECORD_PluginFunctions); 232 api = GNUNET_new (struct GNUNET_GNSRECORD_PluginFunctions);
230 api->value_to_string = &conversation_value_to_string; 233 api->value_to_string = &conversation_value_to_string;
231 api->string_to_value = &conversation_string_to_value; 234 api->string_to_value = &conversation_string_to_value;
diff --git a/src/conversation/speaker.c b/src/conversation/speaker.c
index deff9e319..7f336d632 100644
--- a/src/conversation/speaker.c
+++ b/src/conversation/speaker.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet 2 This file is part of GNUnet
3 Copyright (C) 2013 GNUnet e.V. 3 Copyright (C) 2013 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19 */ 17 */
20 18
21/** 19/**
diff --git a/src/conversation/test_conversation.conf b/src/conversation/test_conversation.conf
index 87c4b8f07..e77b41003 100644
--- a/src/conversation/test_conversation.conf
+++ b/src/conversation/test_conversation.conf
@@ -1,4 +1,4 @@
1@INLINE@ ../../contrib/no_forcestart.conf 1@INLINE@ ../../contrib/conf/gnunet/no_forcestart.conf
2 2
3[conversation] 3[conversation]
4LINE=1 4LINE=1
diff --git a/src/conversation/test_conversation_api.c b/src/conversation/test_conversation_api.c
index 180f6619f..f96a6e79f 100644
--- a/src/conversation/test_conversation_api.c
+++ b/src/conversation/test_conversation_api.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013, 2014, 2018 GNUnet e.V. 3 Copyright (C) 2013, 2014, 2018 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/test_conversation_api.c 19 * @file conversation/test_conversation_api.c
diff --git a/src/conversation/test_conversation_api_reject.c b/src/conversation/test_conversation_api_reject.c
index 284889e49..301574c2f 100644
--- a/src/conversation/test_conversation_api_reject.c
+++ b/src/conversation/test_conversation_api_reject.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013, 2014, 2018 GNUnet e.V. 3 Copyright (C) 2013, 2014, 2018 GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/test_conversation_api_reject.c 19 * @file conversation/test_conversation_api_reject.c
diff --git a/src/conversation/test_conversation_api_twocalls.c b/src/conversation/test_conversation_api_twocalls.c
index ac3a87fad..499eaba88 100644
--- a/src/conversation/test_conversation_api_twocalls.c
+++ b/src/conversation/test_conversation_api_twocalls.c
@@ -2,20 +2,18 @@
2 This file is part of GNUnet. 2 This file is part of GNUnet.
3 Copyright (C) 2013, 2018x GNUnet e.V. 3 Copyright (C) 2013, 2018x GNUnet e.V.
4 4
5 GNUnet is free software; you can redistribute it and/or modify 5 GNUnet is free software: you can redistribute it and/or modify it
6 it under the terms of the GNU General Public License as published 6 under the terms of the GNU Affero General Public License as published
7 by the Free Software Foundation; either version 3, or (at your 7 by the Free Software Foundation, either version 3 of the License,
8 option) any later version. 8 or (at your option) any later version.
9 9
10 GNUnet is distributed in the hope that it will be useful, but 10 GNUnet is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of 11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details. 13 Affero General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU Affero General Public License
16 along with GNUnet; see the file COPYING. If not, write to the 16 along with this program. If not, see <http://www.gnu.org/licenses/>.
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19*/ 17*/
20/** 18/**
21 * @file conversation/test_conversation_api_twocalls.c 19 * @file conversation/test_conversation_api_twocalls.c