gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r29824 - gnunet/src/conversation


From: gnunet
Subject: [GNUnet-SVN] r29824 - gnunet/src/conversation
Date: Thu, 3 Oct 2013 20:19:50 +0200

Author: grothoff
Date: 2013-10-03 20:19:50 +0200 (Thu, 03 Oct 2013)
New Revision: 29824

Modified:
   gnunet/src/conversation/microphone.c
   gnunet/src/conversation/speaker.c
Log:
-removing header to avoid double-encapsulation overhead when going from helper 
to API

Modified: gnunet/src/conversation/microphone.c
===================================================================
--- gnunet/src/conversation/microphone.c        2013-10-03 18:06:51 UTC (rev 
29823)
+++ gnunet/src/conversation/microphone.c        2013-10-03 18:19:50 UTC (rev 
29824)
@@ -74,17 +74,17 @@
                         const struct GNUNET_MessageHeader *msg)
 {
   struct Microphone *mic = cls;
+  const struct AudioMessage *am;
 
   if (ntohs (msg->type) != GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO)
   {
     GNUNET_break (0);
     return GNUNET_SYSERR;
   }
-  // FIXME: unbox here, instead of sending with overhead!
-  // (see speaker.c::play)
+  am = (const struct AudioMessage *) msg;
   mic->rdc (mic->rdc_cls,
-           ntohs (msg->size),
-           (const char *) msg);
+           ntohs (msg->size) - sizeof (struct AudioMessage),
+           &am[1]);
   return GNUNET_OK;
 }
 

Modified: gnunet/src/conversation/speaker.c
===================================================================
--- gnunet/src/conversation/speaker.c   2013-10-03 18:06:51 UTC (rev 29823)
+++ gnunet/src/conversation/speaker.c   2013-10-03 18:19:50 UTC (rev 29824)
@@ -130,20 +130,18 @@
       const void *data)
 {
   struct Speaker *spe = cls;
-  const struct AudioMessage *am;
+  char buf[sizeof (struct AudioMessage) + data_size];
+  struct AudioMessage *am;
 
   if (NULL == spe->playback_helper)
   {
     GNUNET_break (0);
     return;
   }
-  // FIXME: box here, instead of expecting boxed data!
-  if (sizeof (struct AudioMessage) > data_size)
-  {
-    GNUNET_break (0);
-    return;
-  }
-  am = (const struct AudioMessage *) data;
+  am = (struct AudioMessage *) buf;
+  am->header.size = htons (sizeof (struct AudioMessage) + data_size);
+  am->header.type = htons (GNUNET_MESSAGE_TYPE_CONVERSATION_AUDIO);
+  memcpy (&am[1], data, data_size);
   (void) GNUNET_HELPER_send (spe->playback_helper,
                             &am->header, 
                             GNUNET_NO, 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]