diff options
Diffstat (limited to 'src/util/server_tc.c')
-rw-r--r-- | src/util/server_tc.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/util/server_tc.c b/src/util/server_tc.c index 7514b0cd3..b7158dadb 100644 --- a/src/util/server_tc.c +++ b/src/util/server_tc.c | |||
@@ -82,6 +82,7 @@ transmit_response (void *cls, size_t size, void *buf) | |||
82 | if (buf == NULL) | 82 | if (buf == NULL) |
83 | { | 83 | { |
84 | GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR); | 84 | GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR); |
85 | GNUNET_SERVER_client_drop (tc->client); | ||
85 | GNUNET_free_non_null (tc->buf); | 86 | GNUNET_free_non_null (tc->buf); |
86 | GNUNET_free (tc); | 87 | GNUNET_free (tc); |
87 | return 0; | 88 | return 0; |
@@ -95,6 +96,7 @@ transmit_response (void *cls, size_t size, void *buf) | |||
95 | if (tc->total == tc->off) | 96 | if (tc->total == tc->off) |
96 | { | 97 | { |
97 | GNUNET_SERVER_receive_done (tc->client, GNUNET_OK); | 98 | GNUNET_SERVER_receive_done (tc->client, GNUNET_OK); |
99 | GNUNET_SERVER_client_drop (tc->client); | ||
98 | GNUNET_free_non_null (tc->buf); | 100 | GNUNET_free_non_null (tc->buf); |
99 | GNUNET_free (tc); | 101 | GNUNET_free (tc); |
100 | } | 102 | } |
@@ -111,6 +113,7 @@ transmit_response (void *cls, size_t size, void *buf) | |||
111 | { | 113 | { |
112 | GNUNET_break (0); | 114 | GNUNET_break (0); |
113 | GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR); | 115 | GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR); |
116 | GNUNET_SERVER_client_drop (tc->client); | ||
114 | GNUNET_free_non_null (tc->buf); | 117 | GNUNET_free_non_null (tc->buf); |
115 | GNUNET_free (tc); | 118 | GNUNET_free (tc); |
116 | } | 119 | } |
@@ -133,6 +136,7 @@ GNUNET_SERVER_transmit_context_create (struct GNUNET_SERVER_Client *client) | |||
133 | 136 | ||
134 | GNUNET_assert (client != NULL); | 137 | GNUNET_assert (client != NULL); |
135 | tc = GNUNET_malloc (sizeof (struct GNUNET_SERVER_TransmitContext)); | 138 | tc = GNUNET_malloc (sizeof (struct GNUNET_SERVER_TransmitContext)); |
139 | GNUNET_SERVER_client_keep (client); | ||
136 | tc->client = client; | 140 | tc->client = client; |
137 | return tc; | 141 | return tc; |
138 | } | 142 | } |
@@ -213,6 +217,7 @@ GNUNET_SERVER_transmit_context_run (struct GNUNET_SERVER_TransmitContext *tc, | |||
213 | { | 217 | { |
214 | GNUNET_break (0); | 218 | GNUNET_break (0); |
215 | GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR); | 219 | GNUNET_SERVER_receive_done (tc->client, GNUNET_SYSERR); |
220 | GNUNET_SERVER_client_drop (tc->client); | ||
216 | GNUNET_free_non_null (tc->buf); | 221 | GNUNET_free_non_null (tc->buf); |
217 | GNUNET_free (tc); | 222 | GNUNET_free (tc); |
218 | } | 223 | } |