diff options
author | Christian Grothoff <christian@grothoff.org> | 2013-12-13 17:20:51 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2013-12-13 17:20:51 +0000 |
commit | 542fbe05c948ec86c07ea4683e6a387ad8a03f72 (patch) | |
tree | 4146333d07b9fc4c0efa5396a2651d13542434d3 /src/transport/plugin_transport_tcp.c | |
parent | ed77a102556e6f1f9d51a04aeed1db22a9ce5cf6 (diff) | |
download | gnunet-542fbe05c948ec86c07ea4683e6a387ad8a03f72.tar.gz gnunet-542fbe05c948ec86c07ea4683e6a387ad8a03f72.zip |
-removing useless session counting logic, doxygen, code cleanup
Diffstat (limited to 'src/transport/plugin_transport_tcp.c')
-rw-r--r-- | src/transport/plugin_transport_tcp.c | 98 |
1 files changed, 30 insertions, 68 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index 26fb8f862..83fea8ca5 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c | |||
@@ -454,50 +454,6 @@ static const char * | |||
454 | tcp_address_to_string (void *cls, const void *addr, size_t addrlen); | 454 | tcp_address_to_string (void *cls, const void *addr, size_t addrlen); |
455 | 455 | ||
456 | 456 | ||
457 | static unsigned int sessions; | ||
458 | |||
459 | |||
460 | static void | ||
461 | inc_sessions (struct Plugin *plugin, struct Session *session, int line) | ||
462 | { | ||
463 | sessions++; | ||
464 | unsigned int size = GNUNET_CONTAINER_multipeermap_size (plugin->sessionmap); | ||
465 | if (sessions != size) | ||
466 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
467 | "Inconsistent sessions %u <-> session map size: %u\n", | ||
468 | sessions, size); | ||
469 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
470 | "%4i Session increased to %u (session map size: %u): `%s' `%s'\n", | ||
471 | line, | ||
472 | sessions, | ||
473 | size, | ||
474 | GNUNET_i2s (&session->target), | ||
475 | tcp_address_to_string (NULL, session->addr, session->addrlen)); | ||
476 | } | ||
477 | |||
478 | |||
479 | static void | ||
480 | dec_sessions (struct Plugin *plugin, | ||
481 | struct Session *session, int line) | ||
482 | { | ||
483 | GNUNET_assert (sessions > 0); | ||
484 | unsigned int size = GNUNET_CONTAINER_multipeermap_size(plugin->sessionmap); | ||
485 | sessions--; | ||
486 | if (sessions != size) | ||
487 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
488 | "Inconsistent sessions %u <-> session map size: %u\n", | ||
489 | sessions, size); | ||
490 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
491 | "%4i Session decreased to %u (session map size: %u): `%s' `%s'\n", | ||
492 | line, | ||
493 | sessions, | ||
494 | size, | ||
495 | GNUNET_i2s (&session->target), | ||
496 | tcp_address_to_string (NULL, session->addr, session->addrlen)); | ||
497 | } | ||
498 | /* DEBUG CODE */ | ||
499 | |||
500 | |||
501 | /** | 457 | /** |
502 | * Function to check if an inbound connection is acceptable. | 458 | * Function to check if an inbound connection is acceptable. |
503 | * Mostly used to limit the total number of open connections | 459 | * Mostly used to limit the total number of open connections |
@@ -791,7 +747,8 @@ lookup_session_by_client (struct Plugin *plugin, | |||
791 | 747 | ||
792 | sc_ctx.client = client; | 748 | sc_ctx.client = client; |
793 | sc_ctx.ret = NULL; | 749 | sc_ctx.ret = NULL; |
794 | GNUNET_CONTAINER_multipeermap_iterate (plugin->sessionmap, &session_lookup_by_client_it, &sc_ctx); | 750 | GNUNET_CONTAINER_multipeermap_iterate (plugin->sessionmap, |
751 | &session_lookup_by_client_it, &sc_ctx); | ||
795 | return sc_ctx.ret; | 752 | return sc_ctx.ret; |
796 | } | 753 | } |
797 | 754 | ||
@@ -1046,7 +1003,6 @@ tcp_disconnect_session (void *cls, | |||
1046 | GNUNET_STATISTICS_update (session->plugin->env->stats, | 1003 | GNUNET_STATISTICS_update (session->plugin->env->stats, |
1047 | gettext_noop ("# TCP sessions active"), -1, | 1004 | gettext_noop ("# TCP sessions active"), -1, |
1048 | GNUNET_NO); | 1005 | GNUNET_NO); |
1049 | dec_sessions (plugin, session, __LINE__); | ||
1050 | } | 1006 | } |
1051 | else | 1007 | else |
1052 | { | 1008 | { |
@@ -1055,6 +1011,9 @@ tcp_disconnect_session (void *cls, | |||
1055 | &session->target, | 1011 | &session->target, |
1056 | session)); | 1012 | session)); |
1057 | } | 1013 | } |
1014 | GNUNET_SERVER_client_set_user_context (session->client, | ||
1015 | (void *) NULL); | ||
1016 | |||
1058 | /* clean up state */ | 1017 | /* clean up state */ |
1059 | if (NULL != session->transmit_handle) | 1018 | if (NULL != session->transmit_handle) |
1060 | { | 1019 | { |
@@ -1246,9 +1205,10 @@ tcp_plugin_send (void *cls, | |||
1246 | "Asked to transmit %u bytes to `%s', added message to list.\n", | 1205 | "Asked to transmit %u bytes to `%s', added message to list.\n", |
1247 | msgbuf_size, GNUNET_i2s (&session->target)); | 1206 | msgbuf_size, GNUNET_i2s (&session->target)); |
1248 | 1207 | ||
1249 | if (GNUNET_YES == GNUNET_CONTAINER_multipeermap_contains_value (plugin->sessionmap, | 1208 | if (GNUNET_YES == |
1250 | &session->target, | 1209 | GNUNET_CONTAINER_multipeermap_contains_value (plugin->sessionmap, |
1251 | session)) | 1210 | &session->target, |
1211 | session)) | ||
1252 | { | 1212 | { |
1253 | GNUNET_assert (session->client != NULL); | 1213 | GNUNET_assert (session->client != NULL); |
1254 | reschedule_session_timeout (session); | 1214 | reschedule_session_timeout (session); |
@@ -1552,11 +1512,12 @@ tcp_plugin_get_session (void *cls, | |||
1552 | } | 1512 | } |
1553 | plugin->cur_connections++; | 1513 | plugin->cur_connections++; |
1554 | if (plugin->cur_connections == plugin->max_connections) | 1514 | if (plugin->cur_connections == plugin->max_connections) |
1555 | GNUNET_SERVER_suspend (plugin->server); /* Maximum number of connections rechead */ | 1515 | GNUNET_SERVER_suspend (plugin->server); /* Maximum number of connections rechead */ |
1556 | 1516 | ||
1557 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 1517 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
1558 | "Asked to transmit to `%4s', creating fresh session using address `%s'.\n", | 1518 | "Asked to transmit to `%4s', creating fresh session using address `%s'.\n", |
1559 | GNUNET_i2s (&address->peer), GNUNET_a2s (sb, sbs)); | 1519 | GNUNET_i2s (&address->peer), |
1520 | GNUNET_a2s (sb, sbs)); | ||
1560 | 1521 | ||
1561 | session = create_session (plugin, | 1522 | session = create_session (plugin, |
1562 | &address->peer, | 1523 | &address->peer, |
@@ -1567,10 +1528,11 @@ tcp_plugin_get_session (void *cls, | |||
1567 | session->addrlen = addrlen; | 1528 | session->addrlen = addrlen; |
1568 | session->ats_address_network_type = (enum GNUNET_ATS_Network_Type) ntohl (ats.value); | 1529 | session->ats_address_network_type = (enum GNUNET_ATS_Network_Type) ntohl (ats.value); |
1569 | GNUNET_break (session->ats_address_network_type != GNUNET_ATS_NET_UNSPECIFIED); | 1530 | GNUNET_break (session->ats_address_network_type != GNUNET_ATS_NET_UNSPECIFIED); |
1531 | GNUNET_SERVER_client_set_user_context (session->client, session); | ||
1570 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, | 1532 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, |
1571 | &session->target, | 1533 | &session->target, |
1572 | session, GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 1534 | session, |
1573 | inc_sessions (plugin, session, __LINE__); | 1535 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
1574 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 1536 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
1575 | "Creating new session for `%s' address `%s' session %p\n", | 1537 | "Creating new session for `%s' address `%s' session %p\n", |
1576 | GNUNET_i2s (&address->peer), | 1538 | GNUNET_i2s (&address->peer), |
@@ -1964,7 +1926,8 @@ tcp_plugin_check_address (void *cls, const void *addr, size_t addrlen) | |||
1964 | * @param message the actual message | 1926 | * @param message the actual message |
1965 | */ | 1927 | */ |
1966 | static void | 1928 | static void |
1967 | handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | 1929 | handle_tcp_nat_probe (void *cls, |
1930 | struct GNUNET_SERVER_Client *client, | ||
1968 | const struct GNUNET_MessageHeader *message) | 1931 | const struct GNUNET_MessageHeader *message) |
1969 | { | 1932 | { |
1970 | struct Plugin *plugin = cls; | 1933 | struct Plugin *plugin = cls; |
@@ -1977,8 +1940,8 @@ handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | |||
1977 | const struct sockaddr_in *s4; | 1940 | const struct sockaddr_in *s4; |
1978 | const struct sockaddr_in6 *s6; | 1941 | const struct sockaddr_in6 *s6; |
1979 | 1942 | ||
1980 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Received NAT probe\n"); | 1943 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
1981 | 1944 | "Received NAT probe\n"); | |
1982 | /* We have received a TCP NAT probe, meaning we (hopefully) initiated | 1945 | /* We have received a TCP NAT probe, meaning we (hopefully) initiated |
1983 | * a connection to this peer by running gnunet-nat-client. This peer | 1946 | * a connection to this peer by running gnunet-nat-client. This peer |
1984 | * received the punch message and now wants us to use the new connection | 1947 | * received the punch message and now wants us to use the new connection |
@@ -2003,9 +1966,8 @@ handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | |||
2003 | } | 1966 | } |
2004 | 1967 | ||
2005 | session = | 1968 | session = |
2006 | GNUNET_CONTAINER_multipeermap_get (plugin->nat_wait_conns, | 1969 | GNUNET_CONTAINER_multipeermap_get (plugin->nat_wait_conns, |
2007 | &tcp_nat_probe-> | 1970 | &tcp_nat_probe->clientIdentity); |
2008 | clientIdentity); | ||
2009 | if (session == NULL) | 1971 | if (session == NULL) |
2010 | { | 1972 | { |
2011 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 1973 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
@@ -2033,6 +1995,7 @@ handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | |||
2033 | (plugin->nat_wait_conns, | 1995 | (plugin->nat_wait_conns, |
2034 | &tcp_nat_probe->clientIdentity, | 1996 | &tcp_nat_probe->clientIdentity, |
2035 | session) == GNUNET_YES); | 1997 | session) == GNUNET_YES); |
1998 | GNUNET_SERVER_client_set_user_context (client, session); | ||
2036 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, | 1999 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, |
2037 | &session->target, session, | 2000 | &session->target, session, |
2038 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 2001 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
@@ -2045,7 +2008,7 @@ handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | |||
2045 | { | 2008 | { |
2046 | case AF_INET: | 2009 | case AF_INET: |
2047 | s4 = vaddr; | 2010 | s4 = vaddr; |
2048 | t4 = GNUNET_malloc (sizeof (struct IPv4TcpAddress)); | 2011 | t4 = GNUNET_new (struct IPv4TcpAddress); |
2049 | t4->options = 0; | 2012 | t4->options = 0; |
2050 | t4->t4_port = s4->sin_port; | 2013 | t4->t4_port = s4->sin_port; |
2051 | t4->ipv4_addr = s4->sin_addr.s_addr; | 2014 | t4->ipv4_addr = s4->sin_addr.s_addr; |
@@ -2054,7 +2017,7 @@ handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | |||
2054 | break; | 2017 | break; |
2055 | case AF_INET6: | 2018 | case AF_INET6: |
2056 | s6 = vaddr; | 2019 | s6 = vaddr; |
2057 | t6 = GNUNET_malloc (sizeof (struct IPv6TcpAddress)); | 2020 | t6 = GNUNET_new (struct IPv6TcpAddress); |
2058 | t6->options = 0; | 2021 | t6->options = 0; |
2059 | t6->t6_port = s6->sin6_port; | 2022 | t6->t6_port = s6->sin6_port; |
2060 | memcpy (&t6->ipv6_addr, &s6->sin6_addr, sizeof (struct in6_addr)); | 2023 | memcpy (&t6->ipv6_addr, &s6->sin6_addr, sizeof (struct in6_addr)); |
@@ -2074,7 +2037,6 @@ handle_tcp_nat_probe (void *cls, struct GNUNET_SERVER_Client *client, | |||
2074 | GNUNET_break (NULL == session->client); | 2037 | GNUNET_break (NULL == session->client); |
2075 | GNUNET_SERVER_client_keep (client); | 2038 | GNUNET_SERVER_client_keep (client); |
2076 | session->client = client; | 2039 | session->client = client; |
2077 | inc_sessions (plugin, session, __LINE__); | ||
2078 | GNUNET_STATISTICS_update (plugin->env->stats, | 2040 | GNUNET_STATISTICS_update (plugin->env->stats, |
2079 | gettext_noop ("# TCP sessions active"), 1, | 2041 | gettext_noop ("# TCP sessions active"), 1, |
2080 | GNUNET_NO); | 2042 | GNUNET_NO); |
@@ -2180,11 +2142,11 @@ handle_tcp_welcome (void *cls, struct GNUNET_SERVER_Client *client, | |||
2180 | session, | 2142 | session, |
2181 | GNUNET_a2s (vaddr, alen)); | 2143 | GNUNET_a2s (vaddr, alen)); |
2182 | GNUNET_free (vaddr); | 2144 | GNUNET_free (vaddr); |
2145 | GNUNET_SERVER_client_set_user_context (session->client, session); | ||
2183 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, | 2146 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, |
2184 | &session->target, | 2147 | &session->target, |
2185 | session, | 2148 | session, |
2186 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 2149 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
2187 | inc_sessions (plugin, session, __LINE__); | ||
2188 | } | 2150 | } |
2189 | else | 2151 | else |
2190 | { | 2152 | { |
@@ -2754,8 +2716,8 @@ libgnunet_plugin_transport_tcp_init (void *cls) | |||
2754 | /* Initially set connections to 0 */ | 2716 | /* Initially set connections to 0 */ |
2755 | GNUNET_assert (NULL != plugin->env->stats); | 2717 | GNUNET_assert (NULL != plugin->env->stats); |
2756 | GNUNET_STATISTICS_set (plugin->env->stats, | 2718 | GNUNET_STATISTICS_set (plugin->env->stats, |
2757 | gettext_noop ("# TCP sessions active"), 0, | 2719 | gettext_noop ("# TCP sessions active"), 0, |
2758 | GNUNET_NO); | 2720 | GNUNET_NO); |
2759 | return api; | 2721 | return api; |
2760 | } | 2722 | } |
2761 | 2723 | ||