aboutsummaryrefslogtreecommitdiff
path: root/src/util/service.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/service.c')
-rw-r--r--src/util/service.c31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/util/service.c b/src/util/service.c
index fcdf45a51..b4eb33caa 100644
--- a/src/util/service.c
+++ b/src/util/service.c
@@ -1932,6 +1932,11 @@ do_send (void *cls)
1932 size_t left; 1932 size_t left;
1933 const char *buf; 1933 const char *buf;
1934 1934
1935 LOG (GNUNET_ERROR_TYPE_DEBUG,
1936 "service: sending message with type %u",
1937 ntohs(client->msg->type));
1938
1939
1935 client->send_task = NULL; 1940 client->send_task = NULL;
1936 buf = (const char *) client->msg; 1941 buf = (const char *) client->msg;
1937 left = ntohs (client->msg->size) - client->msg_pos; 1942 left = ntohs (client->msg->size) - client->msg_pos;
@@ -1941,6 +1946,8 @@ do_send (void *cls)
1941 GNUNET_assert (ret <= (ssize_t) left); 1946 GNUNET_assert (ret <= (ssize_t) left);
1942 if (0 == ret) 1947 if (0 == ret)
1943 { 1948 {
1949 LOG (GNUNET_ERROR_TYPE_DEBUG,
1950 "no data send");
1944 GNUNET_MQ_inject_error (client->mq, 1951 GNUNET_MQ_inject_error (client->mq,
1945 GNUNET_MQ_ERROR_WRITE); 1952 GNUNET_MQ_ERROR_WRITE);
1946 return; 1953 return;
@@ -1958,6 +1965,9 @@ do_send (void *cls)
1958 if (EPIPE != errno) 1965 if (EPIPE != errno)
1959 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, 1966 GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
1960 "send"); 1967 "send");
1968 LOG (GNUNET_ERROR_TYPE_DEBUG,
1969 "socket send returned with error code %i",
1970 errno);
1961 GNUNET_MQ_inject_error (client->mq, 1971 GNUNET_MQ_inject_error (client->mq,
1962 GNUNET_MQ_ERROR_WRITE); 1972 GNUNET_MQ_ERROR_WRITE);
1963 return; 1973 return;
@@ -2402,7 +2412,7 @@ resume_client_receive (void *cls)
2402 GNUNET_YES); 2412 GNUNET_YES);
2403 if (GNUNET_SYSERR == ret) 2413 if (GNUNET_SYSERR == ret)
2404 { 2414 {
2405 if (NULL != c->drop_task) 2415 if (NULL == c->drop_task)
2406 GNUNET_SERVICE_client_drop (c); 2416 GNUNET_SERVICE_client_drop (c);
2407 return; 2417 return;
2408 } 2418 }
@@ -2431,6 +2441,7 @@ resume_client_receive (void *cls)
2431void 2441void
2432GNUNET_SERVICE_client_continue (struct GNUNET_SERVICE_Client *c) 2442GNUNET_SERVICE_client_continue (struct GNUNET_SERVICE_Client *c)
2433{ 2443{
2444 GNUNET_assert (NULL == c->drop_task);
2434 GNUNET_assert (GNUNET_YES == c->needs_continue); 2445 GNUNET_assert (GNUNET_YES == c->needs_continue);
2435 GNUNET_assert (NULL == c->recv_task); 2446 GNUNET_assert (NULL == c->recv_task);
2436 c->needs_continue = GNUNET_NO; 2447 c->needs_continue = GNUNET_NO;
@@ -2513,6 +2524,24 @@ GNUNET_SERVICE_client_drop (struct GNUNET_SERVICE_Client *c)
2513{ 2524{
2514 struct GNUNET_SERVICE_Handle *sh = c->sh; 2525 struct GNUNET_SERVICE_Handle *sh = c->sh;
2515 2526
2527 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
2528 "Client dropped: %p (MQ: %p)\n",
2529 c,
2530 c->mq);
2531
2532#if EXECINFO
2533 void *backtrace_array[MAX_TRACE_DEPTH];
2534 int num_backtrace_strings = backtrace (backtrace_array, MAX_TRACE_DEPTH);
2535 char **backtrace_strings =
2536 backtrace_symbols (backtrace_array,
2537 t->num_backtrace_strings);
2538 for (unsigned int i = 0; i < num_backtrace_strings; i++)
2539 LOG (GNUNET_ERROR_TYPE_DEBUG,
2540 "client drop trace %u: %s\n",
2541 i,
2542 backtrace_strings[i]);
2543#endif
2544
2516 if (NULL != c->drop_task) 2545 if (NULL != c->drop_task)
2517 { 2546 {
2518 /* asked to drop twice! */ 2547 /* asked to drop twice! */