diff options
author | Christian Grothoff <christian@grothoff.org> | 2015-02-20 23:01:47 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2015-02-20 23:01:47 +0000 |
commit | 5521294b45bc37a5adeb85ee78272a35ce90b26b (patch) | |
tree | 78338c014d327b34c9715569095ea34493bb7329 /src/transport | |
parent | cacd1bd4aa5b91638bbf6217fbbdcc4aa5d14df6 (diff) | |
download | gnunet-5521294b45bc37a5adeb85ee78272a35ce90b26b.tar.gz gnunet-5521294b45bc37a5adeb85ee78272a35ce90b26b.zip |
trying to fix #3687/3683/3684 by avoiding server's client reference counting (GNUNET_SERVER_client_keep) which should not be needed in the first place
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/plugin_transport_tcp.c | 120 |
1 files changed, 61 insertions, 59 deletions
diff --git a/src/transport/plugin_transport_tcp.c b/src/transport/plugin_transport_tcp.c index f39b1edf6..1e73eda0b 100644 --- a/src/transport/plugin_transport_tcp.c +++ b/src/transport/plugin_transport_tcp.c | |||
@@ -754,7 +754,7 @@ tcp_plugin_string_to_address (void *cls, | |||
754 | address[0] = '\0'; | 754 | address[0] = '\0'; |
755 | address++; | 755 | address++; |
756 | 756 | ||
757 | if (GNUNET_OK != | 757 | if (GNUNET_OK != |
758 | GNUNET_STRINGS_to_address_ip (address, | 758 | GNUNET_STRINGS_to_address_ip (address, |
759 | strlen (address), | 759 | strlen (address), |
760 | &socket_address)) | 760 | &socket_address)) |
@@ -811,7 +811,8 @@ static struct Session * | |||
811 | lookup_session_by_client (struct Plugin *plugin, | 811 | lookup_session_by_client (struct Plugin *plugin, |
812 | struct GNUNET_SERVER_Client *client) | 812 | struct GNUNET_SERVER_Client *client) |
813 | { | 813 | { |
814 | return GNUNET_SERVER_client_get_user_context (client, struct Session); | 814 | return GNUNET_SERVER_client_get_user_context (client, |
815 | struct Session); | ||
815 | } | 816 | } |
816 | 817 | ||
817 | 818 | ||
@@ -851,7 +852,7 @@ tcp_plugin_disconnect_session (void *cls, | |||
851 | session)) | 852 | session)) |
852 | { | 853 | { |
853 | GNUNET_STATISTICS_update (session->plugin->env->stats, | 854 | GNUNET_STATISTICS_update (session->plugin->env->stats, |
854 | gettext_noop ("# TCP sessions active"), | 855 | gettext_noop ("# TCP sessions active"), |
855 | -1, | 856 | -1, |
856 | GNUNET_NO); | 857 | GNUNET_NO); |
857 | } | 858 | } |
@@ -929,12 +930,11 @@ tcp_plugin_disconnect_session (void *cls, | |||
929 | if (NULL != session->client) | 930 | if (NULL != session->client) |
930 | { | 931 | { |
931 | GNUNET_SERVER_client_disconnect (session->client); | 932 | GNUNET_SERVER_client_disconnect (session->client); |
932 | GNUNET_SERVER_client_drop (session->client); | ||
933 | session->client = NULL; | 933 | session->client = NULL; |
934 | } | 934 | } |
935 | GNUNET_HELLO_address_free (session->address); | 935 | GNUNET_HELLO_address_free (session->address); |
936 | GNUNET_assert(NULL == session->transmit_handle); | 936 | GNUNET_assert (NULL == session->transmit_handle); |
937 | GNUNET_free(session); | 937 | GNUNET_free (session); |
938 | return GNUNET_OK; | 938 | return GNUNET_OK; |
939 | } | 939 | } |
940 | 940 | ||
@@ -987,7 +987,7 @@ session_timeout (void *cls, | |||
987 | GNUNET_STRINGS_relative_time_to_string (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, | 987 | GNUNET_STRINGS_relative_time_to_string (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, |
988 | GNUNET_YES)); | 988 | GNUNET_YES)); |
989 | /* call session destroy function */ | 989 | /* call session destroy function */ |
990 | tcp_plugin_disconnect_session (s->plugin, | 990 | tcp_plugin_disconnect_session (s->plugin, |
991 | s); | 991 | s); |
992 | } | 992 | } |
993 | 993 | ||
@@ -1010,6 +1010,7 @@ reschedule_session_timeout (struct Session *s) | |||
1010 | * | 1010 | * |
1011 | * @param plugin the plugin | 1011 | * @param plugin the plugin |
1012 | * @param address the address to create the session for | 1012 | * @param address the address to create the session for |
1013 | * @param scope network scope the address is from | ||
1013 | * @param client client to use, reference counter must have already been increased | 1014 | * @param client client to use, reference counter must have already been increased |
1014 | * @param is_nat this a NAT session, we should wait for a client to | 1015 | * @param is_nat this a NAT session, we should wait for a client to |
1015 | * connect to us from an address, then assign that to | 1016 | * connect to us from an address, then assign that to |
@@ -1019,6 +1020,7 @@ reschedule_session_timeout (struct Session *s) | |||
1019 | static struct Session * | 1020 | static struct Session * |
1020 | create_session (struct Plugin *plugin, | 1021 | create_session (struct Plugin *plugin, |
1021 | const struct GNUNET_HELLO_Address *address, | 1022 | const struct GNUNET_HELLO_Address *address, |
1023 | enum GNUNET_ATS_Network_Type scope, | ||
1022 | struct GNUNET_SERVER_Client *client, | 1024 | struct GNUNET_SERVER_Client *client, |
1023 | int is_nat) | 1025 | int is_nat) |
1024 | { | 1026 | { |
@@ -1040,7 +1042,12 @@ create_session (struct Plugin *plugin, | |||
1040 | session->last_activity = GNUNET_TIME_absolute_get (); | 1042 | session->last_activity = GNUNET_TIME_absolute_get (); |
1041 | session->plugin = plugin; | 1043 | session->plugin = plugin; |
1042 | session->is_nat = is_nat; | 1044 | session->is_nat = is_nat; |
1043 | session->client = client; | 1045 | if (NULL != client) |
1046 | { | ||
1047 | session->client = client; | ||
1048 | GNUNET_SERVER_client_set_user_context (client, | ||
1049 | session); | ||
1050 | } | ||
1044 | session->address = GNUNET_HELLO_address_copy (address); | 1051 | session->address = GNUNET_HELLO_address_copy (address); |
1045 | session->target = address->peer; | 1052 | session->target = address->peer; |
1046 | session->expecting_welcome = GNUNET_YES; | 1053 | session->expecting_welcome = GNUNET_YES; |
@@ -1111,7 +1118,7 @@ process_pending_messages (struct Session *session); | |||
1111 | * @return number of bytes written to @a buf | 1118 | * @return number of bytes written to @a buf |
1112 | */ | 1119 | */ |
1113 | static size_t | 1120 | static size_t |
1114 | do_transmit (void *cls, | 1121 | do_transmit (void *cls, |
1115 | size_t size, | 1122 | size_t size, |
1116 | void *buf) | 1123 | void *buf) |
1117 | { | 1124 | { |
@@ -1503,7 +1510,7 @@ delayed_done (void *cls, | |||
1503 | 1510 | ||
1504 | session->receive_delay_task = NULL; | 1511 | session->receive_delay_task = NULL; |
1505 | reschedule_session_timeout (session); | 1512 | reschedule_session_timeout (session); |
1506 | GNUNET_SERVER_receive_done (session->client, | 1513 | GNUNET_SERVER_receive_done (session->client, |
1507 | GNUNET_OK); | 1514 | GNUNET_OK); |
1508 | } | 1515 | } |
1509 | 1516 | ||
@@ -1595,7 +1602,7 @@ tcp_plugin_get_session (void *cls, | |||
1595 | si_ctx.result = NULL; | 1602 | si_ctx.result = NULL; |
1596 | GNUNET_CONTAINER_multipeermap_get_multiple (plugin->sessionmap, | 1603 | GNUNET_CONTAINER_multipeermap_get_multiple (plugin->sessionmap, |
1597 | &address->peer, | 1604 | &address->peer, |
1598 | &session_lookup_it, | 1605 | &session_lookup_it, |
1599 | &si_ctx); | 1606 | &si_ctx); |
1600 | if (NULL != si_ctx.result) | 1607 | if (NULL != si_ctx.result) |
1601 | { | 1608 | { |
@@ -1660,7 +1667,7 @@ tcp_plugin_get_session (void *cls, | |||
1660 | sbs); | 1667 | sbs); |
1661 | GNUNET_break (net_type != GNUNET_ATS_NET_UNSPECIFIED); | 1668 | GNUNET_break (net_type != GNUNET_ATS_NET_UNSPECIFIED); |
1662 | 1669 | ||
1663 | if ( (is_natd == GNUNET_YES) && | 1670 | if ( (is_natd == GNUNET_YES) && |
1664 | (addrlen == sizeof(struct IPv6TcpAddress)) ) | 1671 | (addrlen == sizeof(struct IPv6TcpAddress)) ) |
1665 | { | 1672 | { |
1666 | /* NAT client only works with IPv4 addresses */ | 1673 | /* NAT client only works with IPv4 addresses */ |
@@ -1674,7 +1681,7 @@ tcp_plugin_get_session (void *cls, | |||
1674 | } | 1681 | } |
1675 | 1682 | ||
1676 | if ( (is_natd == GNUNET_YES) && | 1683 | if ( (is_natd == GNUNET_YES) && |
1677 | (GNUNET_YES == | 1684 | (GNUNET_YES == |
1678 | GNUNET_CONTAINER_multipeermap_contains (plugin->nat_wait_conns, | 1685 | GNUNET_CONTAINER_multipeermap_contains (plugin->nat_wait_conns, |
1679 | &address->peer))) | 1686 | &address->peer))) |
1680 | { | 1687 | { |
@@ -1692,17 +1699,17 @@ tcp_plugin_get_session (void *cls, | |||
1692 | "Found valid IPv4 NAT address (creating session)!\n"); | 1699 | "Found valid IPv4 NAT address (creating session)!\n"); |
1693 | session = create_session (plugin, | 1700 | session = create_session (plugin, |
1694 | address, | 1701 | address, |
1702 | net_type, | ||
1695 | NULL, | 1703 | NULL, |
1696 | GNUNET_YES); | 1704 | GNUNET_YES); |
1697 | session->scope = net_type; | ||
1698 | session->nat_connection_timeout = GNUNET_SCHEDULER_add_delayed (NAT_TIMEOUT, | 1705 | session->nat_connection_timeout = GNUNET_SCHEDULER_add_delayed (NAT_TIMEOUT, |
1699 | &nat_connect_timeout, | 1706 | &nat_connect_timeout, |
1700 | session); | 1707 | session); |
1701 | GNUNET_assert(GNUNET_OK == | 1708 | GNUNET_assert (GNUNET_OK == |
1702 | GNUNET_CONTAINER_multipeermap_put (plugin->nat_wait_conns, | 1709 | GNUNET_CONTAINER_multipeermap_put (plugin->nat_wait_conns, |
1703 | &session->target, | 1710 | &session->target, |
1704 | session, | 1711 | session, |
1705 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); | 1712 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); |
1706 | 1713 | ||
1707 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 1714 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
1708 | "Created NAT WAIT connection to `%4s' at `%s'\n", | 1715 | "Created NAT WAIT connection to `%4s' at `%s'\n", |
@@ -1783,15 +1790,14 @@ tcp_plugin_get_session (void *cls, | |||
1783 | 1790 | ||
1784 | session = create_session (plugin, | 1791 | session = create_session (plugin, |
1785 | address, | 1792 | address, |
1786 | GNUNET_SERVER_connect_socket (plugin->server, sa), | 1793 | net_type, |
1794 | GNUNET_SERVER_connect_socket (plugin->server, | ||
1795 | sa), | ||
1787 | GNUNET_NO); | 1796 | GNUNET_NO); |
1788 | session->scope = net_type; | 1797 | (void) GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, |
1789 | GNUNET_SERVER_client_set_user_context (session->client, | 1798 | &session->target, |
1790 | session); | 1799 | session, |
1791 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, | 1800 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
1792 | &session->target, | ||
1793 | session, | ||
1794 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | ||
1795 | /* Send TCP Welcome */ | 1801 | /* Send TCP Welcome */ |
1796 | process_pending_messages (session); | 1802 | process_pending_messages (session); |
1797 | 1803 | ||
@@ -1808,7 +1814,7 @@ tcp_plugin_get_session (void *cls, | |||
1808 | * @param key the peer which the session belongs to (unused) | 1814 | * @param key the peer which the session belongs to (unused) |
1809 | * @param value the `struct Session` | 1815 | * @param value the `struct Session` |
1810 | * @return #GNUNET_YES (continue to iterate) | 1816 | * @return #GNUNET_YES (continue to iterate) |
1811 | */ | 1817 | */ |
1812 | static int | 1818 | static int |
1813 | session_disconnect_it (void *cls, | 1819 | session_disconnect_it (void *cls, |
1814 | const struct GNUNET_PeerIdentity *key, | 1820 | const struct GNUNET_PeerIdentity *key, |
@@ -2018,10 +2024,10 @@ tcp_plugin_address_pretty_printer (void *cls, | |||
2018 | * @return #GNUNET_OK if port is either open_port or adv_port | 2024 | * @return #GNUNET_OK if port is either open_port or adv_port |
2019 | */ | 2025 | */ |
2020 | static int | 2026 | static int |
2021 | check_port (struct Plugin *plugin, | 2027 | check_port (struct Plugin *plugin, |
2022 | uint16_t in_port) | 2028 | uint16_t in_port) |
2023 | { | 2029 | { |
2024 | if ( (in_port == plugin->adv_port) || | 2030 | if ( (in_port == plugin->adv_port) || |
2025 | (in_port == plugin->open_port) ) | 2031 | (in_port == plugin->open_port) ) |
2026 | return GNUNET_OK; | 2032 | return GNUNET_OK; |
2027 | return GNUNET_SYSERR; | 2033 | return GNUNET_SYSERR; |
@@ -2044,7 +2050,7 @@ check_port (struct Plugin *plugin, | |||
2044 | * and transport, #GNUNET_SYSERR if not | 2050 | * and transport, #GNUNET_SYSERR if not |
2045 | */ | 2051 | */ |
2046 | static int | 2052 | static int |
2047 | tcp_plugin_check_address (void *cls, | 2053 | tcp_plugin_check_address (void *cls, |
2048 | const void *addr, | 2054 | const void *addr, |
2049 | size_t addrlen) | 2055 | size_t addrlen) |
2050 | { | 2056 | { |
@@ -2093,10 +2099,10 @@ tcp_plugin_check_address (void *cls, | |||
2093 | GNUNET_break (0); | 2099 | GNUNET_break (0); |
2094 | return GNUNET_SYSERR; | 2100 | return GNUNET_SYSERR; |
2095 | } | 2101 | } |
2096 | if (GNUNET_OK != check_port (plugin, | 2102 | if (GNUNET_OK != check_port (plugin, |
2097 | ntohs (v6->t6_port))) | 2103 | ntohs (v6->t6_port))) |
2098 | return GNUNET_SYSERR; | 2104 | return GNUNET_SYSERR; |
2099 | if (GNUNET_OK != | 2105 | if (GNUNET_OK != |
2100 | GNUNET_NAT_test_address (plugin->nat, | 2106 | GNUNET_NAT_test_address (plugin->nat, |
2101 | &v6->ipv6_addr, | 2107 | &v6->ipv6_addr, |
2102 | sizeof(struct in6_addr))) | 2108 | sizeof(struct in6_addr))) |
@@ -2172,13 +2178,13 @@ handle_tcp_nat_probe (void *cls, | |||
2172 | session->nat_connection_timeout = NULL; | 2178 | session->nat_connection_timeout = NULL; |
2173 | } | 2179 | } |
2174 | 2180 | ||
2175 | if (GNUNET_OK != | 2181 | if (GNUNET_OK != |
2176 | GNUNET_SERVER_client_get_address (client, | 2182 | GNUNET_SERVER_client_get_address (client, |
2177 | &vaddr, | 2183 | &vaddr, |
2178 | &alen)) | 2184 | &alen)) |
2179 | { | 2185 | { |
2180 | GNUNET_break(0); | 2186 | GNUNET_break(0); |
2181 | GNUNET_SERVER_receive_done (client, | 2187 | GNUNET_SERVER_receive_done (client, |
2182 | GNUNET_SYSERR); | 2188 | GNUNET_SYSERR); |
2183 | tcp_plugin_disconnect_session (plugin, | 2189 | tcp_plugin_disconnect_session (plugin, |
2184 | session); | 2190 | session); |
@@ -2186,13 +2192,13 @@ handle_tcp_nat_probe (void *cls, | |||
2186 | } | 2192 | } |
2187 | GNUNET_assert (GNUNET_YES == | 2193 | GNUNET_assert (GNUNET_YES == |
2188 | GNUNET_CONTAINER_multipeermap_remove (plugin->nat_wait_conns, | 2194 | GNUNET_CONTAINER_multipeermap_remove (plugin->nat_wait_conns, |
2189 | &tcp_nat_probe->clientIdentity, | 2195 | &tcp_nat_probe->clientIdentity, |
2190 | session)); | 2196 | session)); |
2191 | GNUNET_SERVER_client_set_user_context (client, | 2197 | GNUNET_SERVER_client_set_user_context (client, |
2192 | session); | 2198 | session); |
2193 | (void) GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, | 2199 | (void) GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, |
2194 | &session->target, | 2200 | &session->target, |
2195 | session, | 2201 | session, |
2196 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 2202 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
2197 | session->last_activity = GNUNET_TIME_absolute_get (); | 2203 | session->last_activity = GNUNET_TIME_absolute_get (); |
2198 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 2204 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
@@ -2236,14 +2242,13 @@ handle_tcp_nat_probe (void *cls, | |||
2236 | } | 2242 | } |
2237 | GNUNET_free (vaddr); | 2243 | GNUNET_free (vaddr); |
2238 | GNUNET_break (NULL == session->client); | 2244 | GNUNET_break (NULL == session->client); |
2239 | GNUNET_SERVER_client_keep (client); | ||
2240 | session->client = client; | 2245 | session->client = client; |
2241 | GNUNET_STATISTICS_update (plugin->env->stats, | 2246 | GNUNET_STATISTICS_update (plugin->env->stats, |
2242 | gettext_noop ("# TCP sessions active"), | 2247 | gettext_noop ("# TCP sessions active"), |
2243 | 1, | 2248 | 1, |
2244 | GNUNET_NO); | 2249 | GNUNET_NO); |
2245 | process_pending_messages (session); | 2250 | process_pending_messages (session); |
2246 | GNUNET_SERVER_receive_done (client, | 2251 | GNUNET_SERVER_receive_done (client, |
2247 | GNUNET_OK); | 2252 | GNUNET_OK); |
2248 | } | 2253 | } |
2249 | 2254 | ||
@@ -2316,7 +2321,6 @@ handle_tcp_welcome (void *cls, | |||
2316 | } | 2321 | } |
2317 | else | 2322 | else |
2318 | { | 2323 | { |
2319 | GNUNET_SERVER_client_keep (client); | ||
2320 | if (GNUNET_OK == | 2324 | if (GNUNET_OK == |
2321 | GNUNET_SERVER_client_get_address (client, &vaddr, &alen)) | 2325 | GNUNET_SERVER_client_get_address (client, &vaddr, &alen)) |
2322 | { | 2326 | { |
@@ -2354,13 +2358,12 @@ handle_tcp_welcome (void *cls, | |||
2354 | } | 2358 | } |
2355 | session = create_session (plugin, | 2359 | session = create_session (plugin, |
2356 | address, | 2360 | address, |
2361 | plugin->env->get_address_type (plugin->env->cls, | ||
2362 | vaddr, | ||
2363 | alen), | ||
2357 | client, | 2364 | client, |
2358 | GNUNET_NO); | 2365 | GNUNET_NO); |
2359 | GNUNET_HELLO_address_free (address); | 2366 | GNUNET_HELLO_address_free (address); |
2360 | session->scope | ||
2361 | = plugin->env->get_address_type (plugin->env->cls, | ||
2362 | vaddr, | ||
2363 | alen); | ||
2364 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 2367 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
2365 | "Creating new%s session %p for peer `%s' client %p\n", | 2368 | "Creating new%s session %p for peer `%s' client %p\n", |
2366 | GNUNET_HELLO_address_check_option (session->address, | 2369 | GNUNET_HELLO_address_check_option (session->address, |
@@ -2372,11 +2375,10 @@ handle_tcp_welcome (void *cls, | |||
2372 | session->address->address_length), | 2375 | session->address->address_length), |
2373 | client); | 2376 | client); |
2374 | GNUNET_free (vaddr); | 2377 | GNUNET_free (vaddr); |
2375 | GNUNET_SERVER_client_set_user_context (session->client, session); | 2378 | (void) GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, |
2376 | GNUNET_CONTAINER_multipeermap_put (plugin->sessionmap, | 2379 | &session->target, |
2377 | &session->target, | 2380 | session, |
2378 | session, | 2381 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
2379 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | ||
2380 | /* Notify transport and ATS about new session */ | 2382 | /* Notify transport and ATS about new session */ |
2381 | plugin->env->session_start (plugin->env->cls, | 2383 | plugin->env->session_start (plugin->env->cls, |
2382 | session->address, | 2384 | session->address, |
@@ -2407,7 +2409,7 @@ handle_tcp_welcome (void *cls, | |||
2407 | 2409 | ||
2408 | process_pending_messages (session); | 2410 | process_pending_messages (session); |
2409 | GNUNET_SERVER_client_set_timeout (client, | 2411 | GNUNET_SERVER_client_set_timeout (client, |
2410 | GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT); | 2412 | GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT); |
2411 | GNUNET_SERVER_receive_done (client, GNUNET_OK); | 2413 | GNUNET_SERVER_receive_done (client, GNUNET_OK); |
2412 | } | 2414 | } |
2413 | 2415 | ||
@@ -2585,7 +2587,7 @@ disconnect_notify (void *cls, | |||
2585 | gettext_noop ("# network-level TCP disconnect events"), | 2587 | gettext_noop ("# network-level TCP disconnect events"), |
2586 | 1, | 2588 | 1, |
2587 | GNUNET_NO); | 2589 | GNUNET_NO); |
2588 | tcp_plugin_disconnect_session (plugin, | 2590 | tcp_plugin_disconnect_session (plugin, |
2589 | session); | 2591 | session); |
2590 | } | 2592 | } |
2591 | 2593 | ||
@@ -2618,8 +2620,8 @@ notify_send_probe (void *cls, | |||
2618 | return 0; | 2620 | return 0; |
2619 | } | 2621 | } |
2620 | GNUNET_assert(size >= sizeof(tcp_probe_ctx->message)); | 2622 | GNUNET_assert(size >= sizeof(tcp_probe_ctx->message)); |
2621 | memcpy (buf, | 2623 | memcpy (buf, |
2622 | &tcp_probe_ctx->message, | 2624 | &tcp_probe_ctx->message, |
2623 | sizeof(tcp_probe_ctx->message)); | 2625 | sizeof(tcp_probe_ctx->message)); |
2624 | GNUNET_SERVER_connect_socket (tcp_probe_ctx->plugin->server, | 2626 | GNUNET_SERVER_connect_socket (tcp_probe_ctx->plugin->server, |
2625 | tcp_probe_ctx->sock); | 2627 | tcp_probe_ctx->sock); |
@@ -2651,7 +2653,7 @@ try_connection_reversal (void *cls, | |||
2651 | * We have received an ICMP response, ostensibly from a peer | 2653 | * We have received an ICMP response, ostensibly from a peer |
2652 | * that wants to connect to us! Send a message to establish a connection. | 2654 | * that wants to connect to us! Send a message to establish a connection. |
2653 | */ | 2655 | */ |
2654 | sock = GNUNET_CONNECTION_create_from_sockaddr (AF_INET, | 2656 | sock = GNUNET_CONNECTION_create_from_sockaddr (AF_INET, |
2655 | addr, | 2657 | addr, |
2656 | addrlen); | 2658 | addrlen); |
2657 | if (NULL == sock) | 2659 | if (NULL == sock) |
@@ -2976,9 +2978,9 @@ libgnunet_plugin_transport_tcp_init (void *cls) | |||
2976 | } | 2978 | } |
2977 | plugin->server | 2979 | plugin->server |
2978 | = GNUNET_SERVER_create_with_sockets (NULL, | 2980 | = GNUNET_SERVER_create_with_sockets (NULL, |
2979 | plugin, | 2981 | plugin, |
2980 | NULL, | 2982 | NULL, |
2981 | idle_timeout, | 2983 | idle_timeout, |
2982 | GNUNET_YES); | 2984 | GNUNET_YES); |
2983 | } | 2985 | } |
2984 | plugin->handlers = GNUNET_malloc (sizeof (my_handlers)); | 2986 | plugin->handlers = GNUNET_malloc (sizeof (my_handlers)); |
@@ -3067,7 +3069,7 @@ libgnunet_plugin_transport_tcp_done (void *cls) | |||
3067 | cur); | 3069 | cur); |
3068 | GNUNET_RESOLVER_request_cancel (cur->resolver_handle); | 3070 | GNUNET_RESOLVER_request_cancel (cur->resolver_handle); |
3069 | cur->asc (cur->asc_cls, | 3071 | cur->asc (cur->asc_cls, |
3070 | NULL, | 3072 | NULL, |
3071 | GNUNET_OK); | 3073 | GNUNET_OK); |
3072 | GNUNET_free (cur); | 3074 | GNUNET_free (cur); |
3073 | } | 3075 | } |