[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r17240 - in gnunet/src: include util
From: |
gnunet |
Subject: |
[GNUnet-SVN] r17240 - in gnunet/src: include util |
Date: |
Thu, 6 Oct 2011 10:58:04 +0200 |
Author: grothoff
Date: 2011-10-06 10:58:04 +0200 (Thu, 06 Oct 2011)
New Revision: 17240
Modified:
gnunet/src/include/gnunet_server_lib.h
gnunet/src/util/server_tc.c
Log:
vminko: new API to delete a TransmitContext (slightly modified patch from #1822)
Modified: gnunet/src/include/gnunet_server_lib.h
===================================================================
--- gnunet/src/include/gnunet_server_lib.h 2011-10-06 08:48:47 UTC (rev
17239)
+++ gnunet/src/include/gnunet_server_lib.h 2011-10-06 08:58:04 UTC (rev
17240)
@@ -463,10 +463,9 @@
/**
- * Execute a transmission context. If there is
- * an error in the transmission, the receive_done
- * method will be called with an error code (GNUNET_SYSERR),
- * otherwise with GNUNET_OK.
+ * Execute a transmission context. If there is an error in the
+ * transmission, the receive_done method will be called with an error
+ * code (GNUNET_SYSERR), otherwise with GNUNET_OK.
*
* @param tc transmission context to use
* @param timeout when to time out and abort the transmission
@@ -476,7 +475,24 @@
struct GNUNET_TIME_Relative timeout);
+/**
+ * Destroy a transmission context. This function must not be called
+ * after 'GNUNET_SERVER_transmit_context_run'.
+ *
+ * @param tc transmission context to destroy
+ * @param success code to give to 'GNUNET_SERVER_receive_done' for
+ * the client: GNUNET_OK to keep the connection open and
+ * continue to receive
+ * GNUNET_NO to close the connection (normal behavior)
+ * GNUNET_SYSERR to close the connection (signal
+ * serious error)
+ */
+void
+GNUNET_SERVER_transmit_context_destroy (struct GNUNET_SERVER_TransmitContext
+ *tc,
+ int success);
+
/**
* The notification context is the key datastructure for a conveniance
* API used for transmission of notifications to the client until the
Modified: gnunet/src/util/server_tc.c
===================================================================
--- gnunet/src/util/server_tc.c 2011-10-06 08:48:47 UTC (rev 17239)
+++ gnunet/src/util/server_tc.c 2011-10-06 08:58:04 UTC (rev 17240)
@@ -82,10 +82,7 @@
if (buf == NULL)
{
- GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR);
- GNUNET_SERVER_client_drop (tc->client);
- GNUNET_free_non_null (tc->buf);
- GNUNET_free (tc);
+ GNUNET_SERVER_transmit_context_destroy (tc, GNUNET_SYSERR);
return 0;
}
if (tc->total - tc->off > size)
@@ -96,6 +93,7 @@
tc->off += msize;
if (tc->total == tc->off)
{
+
GNUNET_SERVER_receive_done (tc->client, GNUNET_OK);
GNUNET_SERVER_client_drop (tc->client);
GNUNET_free_non_null (tc->buf);
@@ -112,10 +110,7 @@
tc))
{
GNUNET_break (0);
- GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR);
- GNUNET_SERVER_client_drop (tc->client);
- GNUNET_free_non_null (tc->buf);
- GNUNET_free (tc);
+ GNUNET_SERVER_transmit_context_destroy (tc, GNUNET_SYSERR);
}
}
return msize;
@@ -219,11 +214,33 @@
&transmit_response, tc))
{
GNUNET_break (0);
- GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR);
- GNUNET_SERVER_client_drop (tc->client);
- GNUNET_free_non_null (tc->buf);
- GNUNET_free (tc);
+ GNUNET_SERVER_transmit_context_destroy (tc, GNUNET_SYSERR);
}
}
+
+/**
+ * Destroy a transmission context. This function must not be called
+ * after 'GNUNET_SERVER_transmit_context_run'.
+ *
+ * @param tc transmission context to destroy
+ * @param success code to give to 'GNUNET_SERVER_receive_done' for
+ * the client: GNUNET_OK to keep the connection open and
+ * continue to receive
+ * GNUNET_NO to close the connection (normal behavior)
+ * GNUNET_SYSERR to close the connection (signal
+ * serious error)
+ */
+void
+GNUNET_SERVER_transmit_context_destroy (struct GNUNET_SERVER_TransmitContext
+ *tc,
+ int success)
+{
+ GNUNET_SERVER_receive_done (tc->client, success);
+ GNUNET_SERVER_client_drop (tc->client);
+ GNUNET_free_non_null (tc->buf);
+ GNUNET_free (tc);
+}
+
+
/* end of server_tc.c */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r17240 - in gnunet/src: include util,
gnunet <=