aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/transport/Makefile.am3
-rw-r--r--src/transport/plugin_transport_http_server.c27
-rw-r--r--src/transport/template_cfg_peer1.conf2
-rw-r--r--src/transport/template_cfg_peer2.conf2
-rw-r--r--src/transport/test_transport_api_http_reverse_peer1.conf12
5 files changed, 28 insertions, 18 deletions
diff --git a/src/transport/Makefile.am b/src/transport/Makefile.am
index dc21e8ea0..a590f8077 100644
--- a/src/transport/Makefile.am
+++ b/src/transport/Makefile.am
@@ -168,6 +168,9 @@ gnunet_service_transport_LDADD = \
168 $(top_builddir)/src/util/libgnunetutil.la \ 168 $(top_builddir)/src/util/libgnunetutil.la \
169 $(GN_GLPK) \ 169 $(GN_GLPK) \
170 $(GN_LIBINTL) 170 $(GN_LIBINTL)
171gnunet_service_transport_CFLAGS = \
172 $(CFLAGS)
173# -DANALYZE
171 174
172plugin_LTLIBRARIES = \ 175plugin_LTLIBRARIES = \
173 libgnunet_plugin_transport_tcp.la \ 176 libgnunet_plugin_transport_tcp.la \
diff --git a/src/transport/plugin_transport_http_server.c b/src/transport/plugin_transport_http_server.c
index 5e77f71a7..4b36cfff6 100644
--- a/src/transport/plugin_transport_http_server.c
+++ b/src/transport/plugin_transport_http_server.c
@@ -646,9 +646,6 @@ server_delete_session (struct Session *s)
646 struct HTTP_Server_Plugin *plugin = s->plugin; 646 struct HTTP_Server_Plugin *plugin = s->plugin;
647 server_stop_session_timeout(s); 647 server_stop_session_timeout(s);
648 648
649 if ((GNUNET_YES == s->session_passed) && (GNUNET_NO == s->session_ended))
650 plugin->env->session_end (plugin->env->cls, &s->target, s);
651
652 GNUNET_CONTAINER_DLL_remove (plugin->head, plugin->tail, s); 649 GNUNET_CONTAINER_DLL_remove (plugin->head, plugin->tail, s);
653 struct HTTP_Message *msg = s->msg_head; 650 struct HTTP_Message *msg = s->msg_head;
654 struct HTTP_Message *tmp = NULL; 651 struct HTTP_Message *tmp = NULL;
@@ -1439,21 +1436,23 @@ server_disconnect_cb (void *cls, struct MHD_Connection *connection,
1439 GNUNET_free (sc); 1436 GNUNET_free (sc);
1440 plugin->cur_connections--; 1437 plugin->cur_connections--;
1441 1438
1439 if (((s->server_send == NULL) || (s->server_recv == NULL)) &&
1440 ((GNUNET_YES == s->session_passed) && (GNUNET_NO == s->session_ended)))
1441 {
1442 /* Notify transport immediately that this session is invalid */
1443 s->session_ended = GNUNET_YES;
1444 plugin->env->session_end (plugin->env->cls, &s->target, s);
1445 }
1446
1442 if ((s->server_send == NULL) && (s->server_recv == NULL)) 1447 if ((s->server_send == NULL) && (s->server_recv == NULL))
1443 { 1448 {
1444 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, 1449 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
1445 "Peer `%s' on address `%s' disconnected\n", 1450 "Peer `%s' on address `%s' disconnected\n",
1446 GNUNET_i2s (&s->target), 1451 GNUNET_i2s (&s->target),
1447 http_common_plugin_address_to_string (NULL, s->addr, s->addrlen)); 1452 http_common_plugin_address_to_string (NULL, s->addr, s->addrlen));
1448
1449 server_delete_session (s); 1453 server_delete_session (s);
1450 } 1454 }
1451 else if ((GNUNET_YES == s->session_passed) && (GNUNET_NO == s->session_ended)) 1455
1452 {
1453 /* Notify transport immediately that this session is invalid */
1454 s->session_ended = GNUNET_YES;
1455 plugin->env->session_end (plugin->env->cls, &s->target, s);
1456 }
1457} 1456}
1458 1457
1459 1458
@@ -2746,6 +2745,14 @@ LIBGNUNET_PLUGIN_TRANSPORT_DONE (void *cls)
2746 next = pos->next; 2745 next = pos->next;
2747 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, 2746 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
2748 "Removing left over session %p\n", pos); 2747 "Removing left over session %p\n", pos);
2748
2749 if ((GNUNET_YES == pos->session_passed) && (GNUNET_NO == pos->session_ended))
2750 {
2751 /* Notify transport immediately that this session is invalid */
2752 pos->session_ended = GNUNET_YES;
2753 plugin->env->session_end (plugin->env->cls, &pos->target, pos);
2754 }
2755
2749 server_delete_session (pos); 2756 server_delete_session (pos);
2750 } 2757 }
2751 2758
diff --git a/src/transport/template_cfg_peer1.conf b/src/transport/template_cfg_peer1.conf
index ab0c5b391..0fbc8e8db 100644
--- a/src/transport/template_cfg_peer1.conf
+++ b/src/transport/template_cfg_peer1.conf
@@ -38,7 +38,7 @@ PORT = 12002
38UNIXPATH = /tmp/gnunet-p1-service-peerinfo.sock 38UNIXPATH = /tmp/gnunet-p1-service-peerinfo.sock
39 39
40[transport] 40[transport]
41#PREFIX = valgrind --leak-check=full 41PREFIX = valgrind --leak-check=full
42PORT = 12001 42PORT = 12001
43#DEBUG = YES 43#DEBUG = YES
44UNIXPATH = /tmp/gnunet-p1-service-transport.sock 44UNIXPATH = /tmp/gnunet-p1-service-transport.sock
diff --git a/src/transport/template_cfg_peer2.conf b/src/transport/template_cfg_peer2.conf
index a10dfc488..76f5196d5 100644
--- a/src/transport/template_cfg_peer2.conf
+++ b/src/transport/template_cfg_peer2.conf
@@ -39,7 +39,7 @@ UNIXPATH = /tmp/gnunet-p2-service-peerinfo.sock
39TRUST = $SERVICEHOME/data/credit/ 39TRUST = $SERVICEHOME/data/credit/
40 40
41[transport] 41[transport]
42#PREFIX = valgrind --leak-check=full 42PREFIX = valgrind --leak-check=full
43PORT = 12010 43PORT = 12010
44UNIXPATH = /tmp/gnunet-p2-service-transport.sock 44UNIXPATH = /tmp/gnunet-p2-service-transport.sock
45 45
diff --git a/src/transport/test_transport_api_http_reverse_peer1.conf b/src/transport/test_transport_api_http_reverse_peer1.conf
index 3d4648938..3093a2482 100644
--- a/src/transport/test_transport_api_http_reverse_peer1.conf
+++ b/src/transport/test_transport_api_http_reverse_peer1.conf
@@ -7,28 +7,28 @@ DEFAULTCONFIG = test_transport_api_http_reverse_peer1.conf
7[transport-http_client] 7[transport-http_client]
8 8
9[arm] 9[arm]
10PORT = 12085 10PORT = 12095
11DEFAULTSERVICES = transport 11DEFAULTSERVICES = transport
12UNIXPATH = /tmp/gnunet-p1-service-arm.sock 12UNIXPATH = /tmp/gnunet-p1-service-arm.sock
13 13
14[statistics] 14[statistics]
15PORT = 12084 15PORT = 12094
16UNIXPATH = /tmp/gnunet-p1-service-statistics.sock 16UNIXPATH = /tmp/gnunet-p1-service-statistics.sock
17 17
18[resolver] 18[resolver]
19PORT = 12083 19PORT = 12093
20UNIXPATH = /tmp/gnunet-p1-service-resolver.sock 20UNIXPATH = /tmp/gnunet-p1-service-resolver.sock
21 21
22[peerinfo] 22[peerinfo]
23PORT = 12082 23PORT = 12092
24UNIXPATH = /tmp/gnunet-p1-service-peerinfo.sock 24UNIXPATH = /tmp/gnunet-p1-service-peerinfo.sock
25 25
26[transport] 26[transport]
27#DEBUG = YES 27#DEBUG = YES
28PORT = 12081 28PORT = 12091
29PLUGINS = http_client 29PLUGINS = http_client
30#BINARY = .libs/gnunet-service-transport 30#BINARY = .libs/gnunet-service-transport
31UNIXPATH = /tmp/gnunet-p1-service-transport.sock 31UNIXPATH = /tmp/gnunet-p1-service-transport.sock
32#PREFIX = valgrind --leak-check=full 32PREFIX = valgrind --leak-check=full
33#PREFIX = xterm -geometry 100x85 -T peer1 -e gdb --args 33#PREFIX = xterm -geometry 100x85 -T peer1 -e gdb --args
34 34