diff options
Diffstat (limited to 'src/transport/plugin_transport_unix.c')
-rw-r--r-- | src/transport/plugin_transport_unix.c | 109 |
1 files changed, 56 insertions, 53 deletions
diff --git a/src/transport/plugin_transport_unix.c b/src/transport/plugin_transport_unix.c index 7dff9587f..6c0c12065 100644 --- a/src/transport/plugin_transport_unix.c +++ b/src/transport/plugin_transport_unix.c | |||
@@ -382,9 +382,9 @@ notify_session_monitor (struct Plugin *plugin, | |||
382 | * @return string representing the same address | 382 | * @return string representing the same address |
383 | */ | 383 | */ |
384 | static const char * | 384 | static const char * |
385 | unix_address_to_string (void *cls, | 385 | unix_plugin_address_to_string (void *cls, |
386 | const void *addr, | 386 | const void *addr, |
387 | size_t addrlen) | 387 | size_t addrlen) |
388 | { | 388 | { |
389 | static char rbuf[1024]; | 389 | static char rbuf[1024]; |
390 | struct UnixAddress *ua = (struct UnixAddress *) addr; | 390 | struct UnixAddress *ua = (struct UnixAddress *) addr; |
@@ -442,8 +442,8 @@ unix_address_to_string (void *cls, | |||
442 | * @return #GNUNET_OK on success | 442 | * @return #GNUNET_OK on success |
443 | */ | 443 | */ |
444 | static int | 444 | static int |
445 | unix_session_disconnect (void *cls, | 445 | unix_plugin_session_disconnect (void *cls, |
446 | struct Session *session) | 446 | struct Session *session) |
447 | { | 447 | { |
448 | struct Plugin *plugin = cls; | 448 | struct Plugin *plugin = cls; |
449 | struct UNIXMessageWrapper *msgw; | 449 | struct UNIXMessageWrapper *msgw; |
@@ -452,9 +452,9 @@ unix_session_disconnect (void *cls, | |||
452 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 452 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
453 | "Disconnecting session for peer `%s' `%s'\n", | 453 | "Disconnecting session for peer `%s' `%s'\n", |
454 | GNUNET_i2s (&session->target), | 454 | GNUNET_i2s (&session->target), |
455 | unix_address_to_string (NULL, | 455 | unix_plugin_address_to_string (NULL, |
456 | session->address->address, | 456 | session->address->address, |
457 | session->address->address_length)); | 457 | session->address->address_length)); |
458 | plugin->env->session_end (plugin->env->cls, | 458 | plugin->env->session_end (plugin->env->cls, |
459 | session->address, | 459 | session->address, |
460 | session); | 460 | session); |
@@ -538,7 +538,7 @@ session_timeout (void *cls, | |||
538 | session, | 538 | session, |
539 | GNUNET_STRINGS_relative_time_to_string (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, | 539 | GNUNET_STRINGS_relative_time_to_string (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, |
540 | GNUNET_YES)); | 540 | GNUNET_YES)); |
541 | unix_session_disconnect (session->plugin, session); | 541 | unix_plugin_session_disconnect (session->plugin, session); |
542 | } | 542 | } |
543 | 543 | ||
544 | 544 | ||
@@ -662,7 +662,7 @@ lookup_session (struct Plugin *plugin, | |||
662 | * @return keepalive factor | 662 | * @return keepalive factor |
663 | */ | 663 | */ |
664 | static unsigned int | 664 | static unsigned int |
665 | unix_query_keepalive_factor (void *cls) | 665 | unix_plugin_query_keepalive_factor (void *cls) |
666 | { | 666 | { |
667 | return 3; | 667 | return 3; |
668 | } | 668 | } |
@@ -808,8 +808,8 @@ resend: | |||
808 | * @return the network type in HBO or #GNUNET_SYSERR | 808 | * @return the network type in HBO or #GNUNET_SYSERR |
809 | */ | 809 | */ |
810 | static enum GNUNET_ATS_Network_Type | 810 | static enum GNUNET_ATS_Network_Type |
811 | unix_get_network (void *cls, | 811 | unix_plugin_get_network (void *cls, |
812 | struct Session *session) | 812 | struct Session *session) |
813 | { | 813 | { |
814 | GNUNET_assert (NULL != session); | 814 | GNUNET_assert (NULL != session); |
815 | return GNUNET_ATS_NET_LOOPBACK; | 815 | return GNUNET_ATS_NET_LOOPBACK; |
@@ -875,9 +875,9 @@ unix_plugin_get_session (void *cls, | |||
875 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 875 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
876 | "Found existing session %p for address `%s'\n", | 876 | "Found existing session %p for address `%s'\n", |
877 | session, | 877 | session, |
878 | unix_address_to_string (NULL, | 878 | unix_plugin_address_to_string (NULL, |
879 | address->address, | 879 | address->address, |
880 | address->address_length)); | 880 | address->address_length)); |
881 | return session; | 881 | return session; |
882 | } | 882 | } |
883 | 883 | ||
@@ -892,9 +892,9 @@ unix_plugin_get_session (void *cls, | |||
892 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 892 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
893 | "Creating a new session %p for address `%s'\n", | 893 | "Creating a new session %p for address `%s'\n", |
894 | session, | 894 | session, |
895 | unix_address_to_string (NULL, | 895 | unix_plugin_address_to_string (NULL, |
896 | address->address, | 896 | address->address, |
897 | address->address_length)); | 897 | address->address_length)); |
898 | (void) GNUNET_CONTAINER_multipeermap_put (plugin->session_map, | 898 | (void) GNUNET_CONTAINER_multipeermap_put (plugin->session_map, |
899 | &address->peer, session, | 899 | &address->peer, session, |
900 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); | 900 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE); |
@@ -959,7 +959,7 @@ unix_demultiplexer (struct Plugin *plugin, | |||
959 | GNUNET_assert (ua_len >= sizeof (struct UnixAddress)); | 959 | GNUNET_assert (ua_len >= sizeof (struct UnixAddress)); |
960 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 960 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
961 | "Received message from %s\n", | 961 | "Received message from %s\n", |
962 | unix_address_to_string (NULL, ua, ua_len)); | 962 | unix_plugin_address_to_string (NULL, ua, ua_len)); |
963 | GNUNET_STATISTICS_update (plugin->env->stats, | 963 | GNUNET_STATISTICS_update (plugin->env->stats, |
964 | "# bytes received via UNIX", | 964 | "# bytes received via UNIX", |
965 | ntohs (currhdr->size), | 965 | ntohs (currhdr->size), |
@@ -1321,9 +1321,9 @@ unix_plugin_send (void *cls, | |||
1321 | LOG (GNUNET_ERROR_TYPE_ERROR, | 1321 | LOG (GNUNET_ERROR_TYPE_ERROR, |
1322 | "Invalid session for peer `%s' `%s'\n", | 1322 | "Invalid session for peer `%s' `%s'\n", |
1323 | GNUNET_i2s (&session->target), | 1323 | GNUNET_i2s (&session->target), |
1324 | unix_address_to_string(NULL, | 1324 | unix_plugin_address_to_string (NULL, |
1325 | session->address->address, | 1325 | session->address->address, |
1326 | session->address->address_length)); | 1326 | session->address->address_length)); |
1327 | GNUNET_break (0); | 1327 | GNUNET_break (0); |
1328 | return GNUNET_SYSERR; | 1328 | return GNUNET_SYSERR; |
1329 | } | 1329 | } |
@@ -1331,9 +1331,9 @@ unix_plugin_send (void *cls, | |||
1331 | "Sending %u bytes with session for peer `%s' `%s'\n", | 1331 | "Sending %u bytes with session for peer `%s' `%s'\n", |
1332 | msgbuf_size, | 1332 | msgbuf_size, |
1333 | GNUNET_i2s (&session->target), | 1333 | GNUNET_i2s (&session->target), |
1334 | unix_address_to_string (NULL, | 1334 | unix_plugin_address_to_string (NULL, |
1335 | session->address->address, | 1335 | session->address->address, |
1336 | session->address->address_length)); | 1336 | session->address->address_length)); |
1337 | ssize = sizeof (struct UNIXMessage) + msgbuf_size; | 1337 | ssize = sizeof (struct UNIXMessage) + msgbuf_size; |
1338 | message = GNUNET_malloc (sizeof (struct UNIXMessage) + msgbuf_size); | 1338 | message = GNUNET_malloc (sizeof (struct UNIXMessage) + msgbuf_size); |
1339 | message->header.size = htons (ssize); | 1339 | message->header.size = htons (ssize); |
@@ -1452,9 +1452,9 @@ unix_transport_server_start (void *cls) | |||
1452 | * | 1452 | * |
1453 | */ | 1453 | */ |
1454 | static int | 1454 | static int |
1455 | unix_check_address (void *cls, | 1455 | unix_plugin_check_address (void *cls, |
1456 | const void *addr, | 1456 | const void *addr, |
1457 | size_t addrlen) | 1457 | size_t addrlen) |
1458 | { | 1458 | { |
1459 | struct Plugin* plugin = cls; | 1459 | struct Plugin* plugin = cls; |
1460 | const struct UnixAddress *ua = addr; | 1460 | const struct UnixAddress *ua = addr; |
@@ -1513,9 +1513,9 @@ unix_plugin_address_pretty_printer (void *cls, const char *type, | |||
1513 | const char *ret; | 1513 | const char *ret; |
1514 | 1514 | ||
1515 | if ( (NULL != addr) && (addrlen > 0)) | 1515 | if ( (NULL != addr) && (addrlen > 0)) |
1516 | ret = unix_address_to_string (NULL, | 1516 | ret = unix_plugin_address_to_string (NULL, |
1517 | addr, | 1517 | addr, |
1518 | addrlen); | 1518 | addrlen); |
1519 | else | 1519 | else |
1520 | ret = NULL; | 1520 | ret = NULL; |
1521 | asc (asc_cls, | 1521 | asc (asc_cls, |
@@ -1538,10 +1538,10 @@ unix_plugin_address_pretty_printer (void *cls, const char *type, | |||
1538 | * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure | 1538 | * @return #GNUNET_OK on success, #GNUNET_SYSERR on failure |
1539 | */ | 1539 | */ |
1540 | static int | 1540 | static int |
1541 | unix_string_to_address (void *cls, | 1541 | unix_plugin_string_to_address (void *cls, |
1542 | const char *addr, | 1542 | const char *addr, |
1543 | uint16_t addrlen, | 1543 | uint16_t addrlen, |
1544 | void **buf, size_t *added) | 1544 | void **buf, size_t *added) |
1545 | { | 1545 | { |
1546 | struct UnixAddress *ua; | 1546 | struct UnixAddress *ua; |
1547 | char *address; | 1547 | char *address; |
@@ -1661,9 +1661,9 @@ get_session_delete_it (void *cls, | |||
1661 | void *value) | 1661 | void *value) |
1662 | { | 1662 | { |
1663 | struct Plugin *plugin = cls; | 1663 | struct Plugin *plugin = cls; |
1664 | struct Session *s = value; | 1664 | struct Session *session = value; |
1665 | 1665 | ||
1666 | unix_session_disconnect (plugin, s); | 1666 | unix_plugin_session_disconnect (plugin, session); |
1667 | return GNUNET_YES; | 1667 | return GNUNET_YES; |
1668 | } | 1668 | } |
1669 | 1669 | ||
@@ -1676,12 +1676,11 @@ get_session_delete_it (void *cls, | |||
1676 | * @return #GNUNET_OK on success, #GNUNET_SYSERR if the operation failed | 1676 | * @return #GNUNET_OK on success, #GNUNET_SYSERR if the operation failed |
1677 | */ | 1677 | */ |
1678 | static void | 1678 | static void |
1679 | unix_peer_disconnect (void *cls, | 1679 | unix_plugin_peer_disconnect (void *cls, |
1680 | const struct GNUNET_PeerIdentity *target) | 1680 | const struct GNUNET_PeerIdentity *target) |
1681 | { | 1681 | { |
1682 | struct Plugin *plugin = cls; | 1682 | struct Plugin *plugin = cls; |
1683 | 1683 | ||
1684 | GNUNET_assert (NULL != plugin); | ||
1685 | GNUNET_CONTAINER_multipeermap_get_multiple (plugin->session_map, | 1684 | GNUNET_CONTAINER_multipeermap_get_multiple (plugin->session_map, |
1686 | target, | 1685 | target, |
1687 | &get_session_delete_it, plugin); | 1686 | &get_session_delete_it, plugin); |
@@ -1725,18 +1724,22 @@ send_session_info_iter (void *cls, | |||
1725 | * @param sic_cls closure for @a sic | 1724 | * @param sic_cls closure for @a sic |
1726 | */ | 1725 | */ |
1727 | static void | 1726 | static void |
1728 | unix_setup_monitor (void *cls, | 1727 | unix_plugin_setup_monitor (void *cls, |
1729 | GNUNET_TRANSPORT_SessionInfoCallback sic, | 1728 | GNUNET_TRANSPORT_SessionInfoCallback sic, |
1730 | void *sic_cls) | 1729 | void *sic_cls) |
1731 | { | 1730 | { |
1732 | struct Plugin *plugin = cls; | 1731 | struct Plugin *plugin = cls; |
1733 | 1732 | ||
1734 | plugin->sic = sic; | 1733 | plugin->sic = sic; |
1735 | plugin->sic_cls = sic_cls; | 1734 | plugin->sic_cls = sic_cls; |
1736 | if (NULL != sic) | 1735 | if (NULL != sic) |
1736 | { | ||
1737 | GNUNET_CONTAINER_multipeermap_iterate (plugin->session_map, | 1737 | GNUNET_CONTAINER_multipeermap_iterate (plugin->session_map, |
1738 | &send_session_info_iter, | 1738 | &send_session_info_iter, |
1739 | plugin); | 1739 | plugin); |
1740 | /* signal end of first iteration */ | ||
1741 | sic (sic_cls, NULL, NULL); | ||
1742 | } | ||
1740 | } | 1743 | } |
1741 | 1744 | ||
1742 | 1745 | ||
@@ -1762,8 +1765,8 @@ libgnunet_plugin_transport_unix_init (void *cls) | |||
1762 | api = GNUNET_new (struct GNUNET_TRANSPORT_PluginFunctions); | 1765 | api = GNUNET_new (struct GNUNET_TRANSPORT_PluginFunctions); |
1763 | api->cls = NULL; | 1766 | api->cls = NULL; |
1764 | api->address_pretty_printer = &unix_plugin_address_pretty_printer; | 1767 | api->address_pretty_printer = &unix_plugin_address_pretty_printer; |
1765 | api->address_to_string = &unix_address_to_string; | 1768 | api->address_to_string = &unix_plugin_address_to_string; |
1766 | api->string_to_address = &unix_string_to_address; | 1769 | api->string_to_address = &unix_plugin_string_to_address; |
1767 | return api; | 1770 | return api; |
1768 | } | 1771 | } |
1769 | 1772 | ||
@@ -1797,16 +1800,16 @@ libgnunet_plugin_transport_unix_init (void *cls) | |||
1797 | api->cls = plugin; | 1800 | api->cls = plugin; |
1798 | api->get_session = &unix_plugin_get_session; | 1801 | api->get_session = &unix_plugin_get_session; |
1799 | api->send = &unix_plugin_send; | 1802 | api->send = &unix_plugin_send; |
1800 | api->disconnect_peer = &unix_peer_disconnect; | 1803 | api->disconnect_peer = &unix_plugin_peer_disconnect; |
1801 | api->disconnect_session = &unix_session_disconnect; | 1804 | api->disconnect_session = &unix_plugin_session_disconnect; |
1802 | api->query_keepalive_factor = &unix_query_keepalive_factor; | 1805 | api->query_keepalive_factor = &unix_plugin_query_keepalive_factor; |
1803 | api->address_pretty_printer = &unix_plugin_address_pretty_printer; | 1806 | api->address_pretty_printer = &unix_plugin_address_pretty_printer; |
1804 | api->address_to_string = &unix_address_to_string; | 1807 | api->address_to_string = &unix_plugin_address_to_string; |
1805 | api->check_address = &unix_check_address; | 1808 | api->check_address = &unix_plugin_check_address; |
1806 | api->string_to_address = &unix_string_to_address; | 1809 | api->string_to_address = &unix_plugin_string_to_address; |
1807 | api->get_network = &unix_get_network; | 1810 | api->get_network = &unix_plugin_get_network; |
1808 | api->update_session_timeout = &unix_plugin_update_session_timeout; | 1811 | api->update_session_timeout = &unix_plugin_update_session_timeout; |
1809 | api->setup_monitor = &unix_setup_monitor; | 1812 | api->setup_monitor = &unix_plugin_setup_monitor; |
1810 | sockets_created = unix_transport_server_start (plugin); | 1813 | sockets_created = unix_transport_server_start (plugin); |
1811 | if ((0 == sockets_created) || (GNUNET_SYSERR == sockets_created)) | 1814 | if ((0 == sockets_created) || (GNUNET_SYSERR == sockets_created)) |
1812 | { | 1815 | { |