fix more leaks
[oweals/gnunet.git] / src / transport / plugin_transport_template.c
index dfe6ff6fae9a517e2d836d3a528efc0c2503b1ee..dedc8e85789542868cdb4e213d790f09f6de1051 100644 (file)
  */
 
 #include "platform.h"
+#include "gnunet_util_lib.h"
 #include "gnunet_protocols.h"
-#include "gnunet_connection_lib.h"
-#include "gnunet_server_lib.h"
-#include "gnunet_service_lib.h"
 #include "gnunet_statistics_service.h"
 #include "gnunet_transport_service.h"
 #include "gnunet_transport_plugin.h"
@@ -107,7 +105,7 @@ struct Session
 
 };
 
-#define GNUNET_NETWORK_STRUCT_BEGIN
+GNUNET_NETWORK_STRUCT_BEGIN
 
 struct TemplateAddress
 {
@@ -206,6 +204,22 @@ template_plugin_disconnect (void *cls, const struct GNUNET_PeerIdentity *target)
 }
 
 
+/**
+ * Function obtain the network type for a session
+ *
+ * @param cls closure ('struct Plugin*')
+ * @param session the session
+ * @return the network type in HBO or GNUNET_SYSERR
+ */
+static enum GNUNET_ATS_Network_Type
+template_plugin_get_network (void *cls,
+                            struct Session *session)
+{
+  GNUNET_assert (NULL != session);
+  return GNUNET_ATS_NET_UNSPECIFIED; /* Change to correct network type */
+}
+
+
 /**
  * Convert the transports address to a nice, human-readable
  * format.
@@ -228,6 +242,11 @@ template_plugin_address_pretty_printer (void *cls, const char *type,
                                         GNUNET_TRANSPORT_AddressStringCallback
                                         asc, void *asc_cls)
 {
+       if (0 == addrlen)
+       {
+               asc (asc_cls, TRANSPORT_SESSION_INBOUND_STRING);
+       }
+
   asc (asc_cls, NULL);
 }
 
@@ -270,9 +289,14 @@ static const char *
 template_plugin_address_to_string (void *cls, const void *addr, size_t addrlen)
 {
        /*
-        * Parse string in format template.options.address
+        * Print address in format template.options.address
         */
 
+       if (0 == addrlen)
+       {
+               return TRANSPORT_SESSION_INBOUND_STRING;
+       }
+
   GNUNET_break (0);
   return NULL;
 }
@@ -296,9 +320,10 @@ template_plugin_string_to_address (void *cls, const char *addr, uint16_t addrlen
 {
 
        /*
-        * Print address in format template.options.address
+        * Parse string in format template.options.address
         */
 
+
   GNUNET_break (0);
   return GNUNET_SYSERR;
 }
@@ -354,6 +379,7 @@ libgnunet_plugin_transport_template_init (void *cls)
   api->address_to_string = &template_plugin_address_to_string;
   api->string_to_address = &template_plugin_string_to_address;
   api->get_session = &template_plugin_get_session;
+  api->get_network = &template_plugin_get_network;
   LOG (GNUNET_ERROR_TYPE_INFO, "Template plugin successfully loaded\n");
   return api;
 }