gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r8516 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r8516 - gnunet/src/util
Date: Tue, 9 Jun 2009 20:54:14 -0600

Author: grothoff
Date: 2009-06-09 20:54:14 -0600 (Tue, 09 Jun 2009)
New Revision: 8516

Modified:
   gnunet/src/util/client.c
Log:
code cleanup

Modified: gnunet/src/util/client.c
===================================================================
--- gnunet/src/util/client.c    2009-06-10 02:47:55 UTC (rev 8515)
+++ gnunet/src/util/client.c    2009-06-10 02:54:14 UTC (rev 8516)
@@ -276,33 +276,25 @@
 receive_task (void *scls, const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   struct GNUNET_CLIENT_Connection *sock = scls;
-  const struct GNUNET_MessageHeader *cmsg;
-  struct GNUNET_MessageHeader *msg;
   GNUNET_CLIENT_MessageHandler handler = sock->receiver_handler;
+  const struct GNUNET_MessageHeader *cmsg = (const struct GNUNET_MessageHeader 
*) sock->received_buf;
   void *cls = sock->receiver_handler_cls;
-  uint16_t msize;
+  uint16_t msize = ntohs (cmsg->size);
+  char mbuf[msize];
+  struct GNUNET_MessageHeader *msg = (struct GNUNET_MessageHeader*) mbuf;
 
   GNUNET_assert (GNUNET_YES == sock->msg_complete);
   sock->receiver_task = GNUNET_SCHEDULER_NO_PREREQUISITE_TASK;
-  cmsg = (const struct GNUNET_MessageHeader *) sock->received_buf;
-  msize = ntohs (cmsg->size);
   GNUNET_assert (sock->received_pos >= msize);
-  if (handler != NULL)
-    {
-      msg = GNUNET_malloc (msize);
-      memcpy (msg, cmsg, msize);
-      memmove (sock->received_buf,
-              &sock->received_buf[msize], sock->received_pos - msize);
-    }
+  memcpy (msg, cmsg, msize);
+  memmove (sock->received_buf,
+          &sock->received_buf[msize], sock->received_pos - msize);
   sock->received_pos -= msize;
   sock->msg_complete = GNUNET_NO;
-  sock->receiver_handler = NULL;
+  sock->receiver_handler = NULL;  
   check_complete (sock);
   if (handler != NULL)
-    {
-      handler (cls, msg);
-      GNUNET_free (msg);
-    }
+    handler (cls, msg);
 }
 
 





reply via email to

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