-do not export set_incoming_quota past file, it is not used beyond the scope
[oweals/gnunet.git] / src / transport / plugin_transport_http_server.c
index 9f2908bda391cf38b2a1e5aaf9c4572d34da49ff..db483098ac2d7d1f03a8d13c005d10173ae9e8e4 100644 (file)
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -1381,6 +1381,7 @@ server_lookup_connection (struct HTTP_Server_Plugin *plugin,
        method,
        url);
   stc.tag = 0;
+  options = 0; /* make gcc happy */
   if (GNUNET_SYSERR ==
       server_parse_url (plugin, url, &target, &stc.tag, &options))
   {
@@ -1761,10 +1762,9 @@ server_access_cb (void *cls,
     else
     {
       /* existing session already has matching connection, refuse */
-      response = MHD_create_response_from_data (strlen (HTTP_ERROR_RESPONSE),
-                                                HTTP_ERROR_RESPONSE,
-                                                MHD_NO,
-                                                MHD_NO);
+      response = MHD_create_response_from_buffer (strlen (HTTP_ERROR_RESPONSE),
+                                                  HTTP_ERROR_RESPONSE,
+                                                  MHD_RESPMEM_PERSISTENT);
       MHD_add_response_header (response,
                               MHD_HTTP_HEADER_CONTENT_TYPE,
                               "text/html");
@@ -1779,8 +1779,9 @@ server_access_cb (void *cls,
   {
     /* Session was already disconnected;
        sent HTTP/1.1: 200 OK as response */
-    response = MHD_create_response_from_data (strlen ("Thank you!"),
-        "Thank you!", MHD_NO, MHD_NO);
+    response = MHD_create_response_from_buffer (strlen ("Thank you!"),
+                                                "Thank you!",
+                                                MHD_RESPMEM_PERSISTENT);
     add_cors_headers(response);
     MHD_queue_response (mhd_connection, MHD_HTTP_OK, response);
     MHD_destroy_response (response);
@@ -1823,8 +1824,9 @@ server_access_cb (void *cls,
                                                  s->address->address_length));
       sc->connected = GNUNET_NO;
       /* Sent HTTP/1.1: 200 OK as PUT Response\ */
-      response = MHD_create_response_from_data (strlen ("Thank you!"),
-          "Thank you!", MHD_NO, MHD_NO);
+      response = MHD_create_response_from_buffer (strlen ("Thank you!"),
+                                                  "Thank you!",
+                                                  MHD_RESPMEM_PERSISTENT);
       add_cors_headers(response);
       MHD_queue_response (mhd_connection, MHD_HTTP_OK, response);
       MHD_destroy_response (response);
@@ -2759,7 +2761,7 @@ server_start_report_addresses (struct HTTP_Server_Plugin *plugin)
                            plugin->port,
                            (unsigned int) res,
                            (const struct sockaddr **) addrs, addrlens,
-                           &server_nat_port_map_callback, NULL, plugin);
+                           &server_nat_port_map_callback, NULL, plugin, NULL);
   while (res > 0)
   {
     res--;
@@ -3249,7 +3251,7 @@ http_server_plugin_address_to_string (void *cls,
 /**
  * Function obtain the network type for a session
  *
- * @param cls closure ('struct HTTP_Server_Plugin*')
+ * @param cls closure (`struct HTTP_Server_Plugin *`)
  * @param session the session
  * @return the network type in HBO or #GNUNET_SYSERR
  */
@@ -3261,6 +3263,24 @@ http_server_plugin_get_network (void *cls,
 }
 
 
+/**
+ * Function obtain the network type for an address.
+ *
+ * @param cls closure (`struct Plugin *`)
+ * @param address the address
+ * @return the network type
+ */
+static enum GNUNET_ATS_Network_Type
+http_server_plugin_get_network_for_address (void *cls,
+                                            const struct GNUNET_HELLO_Address *address)
+{
+  struct HTTP_Server_Plugin *plugin = cls;
+
+  return http_common_get_network_for_address (plugin->env,
+                                              address);
+}
+
+
 /**
  * Function that will be called whenever the transport service wants to
  * notify the plugin that the inbound quota changed and that the plugin
@@ -3391,6 +3411,7 @@ LIBGNUNET_PLUGIN_TRANSPORT_INIT (void *cls)
   api->string_to_address = &http_common_plugin_string_to_address;
   api->address_pretty_printer = &http_common_plugin_address_pretty_printer;
   api->get_network = &http_server_plugin_get_network;
+  api->get_network_for_address = &http_server_plugin_get_network_for_address;
   api->update_session_timeout = &http_server_plugin_update_session_timeout;
   api->update_inbound_delay = &http_server_plugin_update_inbound_delay;
   api->setup_monitor = &http_server_plugin_setup_monitor;