aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_unix.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/plugin_transport_unix.c')
-rw-r--r--src/transport/plugin_transport_unix.c109
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 */
384static const char * 384static const char *
385unix_address_to_string (void *cls, 385unix_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 */
444static int 444static int
445unix_session_disconnect (void *cls, 445unix_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 */
664static unsigned int 664static unsigned int
665unix_query_keepalive_factor (void *cls) 665unix_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 */
810static enum GNUNET_ATS_Network_Type 810static enum GNUNET_ATS_Network_Type
811unix_get_network (void *cls, 811unix_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 */
1454static int 1454static int
1455unix_check_address (void *cls, 1455unix_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 */
1540static int 1540static int
1541unix_string_to_address (void *cls, 1541unix_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 */
1678static void 1678static void
1679unix_peer_disconnect (void *cls, 1679unix_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 */
1727static void 1726static void
1728unix_setup_monitor (void *cls, 1727unix_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 {