disable NSS for root
[oweals/gnunet.git] / src / ats / gnunet-service-ats_plugins.c
index 11f9c752caf10c852c726715492331239f07f71e..d8d6be11d670166b3844fe02d509195a3ca0ab4b 100644 (file)
@@ -1,21 +1,21 @@
 /*
- This file is part of GNUnet.
- Copyright (C) 2011-2014 Christian Grothoff (and other contributing authors)
-
- GNUnet is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
- by the Free Software Foundation; either version 3, or (at your
- option) any later version.
-
- GNUnet is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- General Public License for more details.
-
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.
  This file is part of GNUnet.
+   Copyright (C) 2011-2014 GNUnet e.V.
+
+   GNUnet is free software: you can redistribute it and/or modify it
  under the terms of the GNU Affero General Public License as published
+   by the Free Software Foundation, either version 3 of the License,
  or (at your option) any later version.
+
  GNUnet is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Affero General Public License for more details.
+
  You should have received a copy of the GNU Affero General Public License
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+     SPDX-License-Identifier: AGPL3.0-or-later
  */
 
 /**
@@ -93,31 +93,37 @@ GAS_plugin_notify_property_changed (struct ATS_Address *address)
  */
 static void
 solver_info_cb (void *cls,
-               enum GAS_Solver_Operation op,
-               enum GAS_Solver_Status status,
-               enum GAS_Solver_Additional_Information add)
+                enum GAS_Solver_Operation op,
+                enum GAS_Solver_Status status,
+                enum GAS_Solver_Additional_Information add)
 {
   const char *add_info;
 
-  switch (add) {
-    case GAS_INFO_NONE:
-      add_info = "GAS_INFO_NONE";
-      break;
-    case GAS_INFO_FULL:
-      add_info = "GAS_INFO_MLP_FULL";
-      break;
-    case GAS_INFO_UPDATED:
-      add_info = "GAS_INFO_MLP_UPDATED";
-      break;
-    case GAS_INFO_PROP_ALL:
-      add_info = "GAS_INFO_PROP_ALL";
-      break;
-    case GAS_INFO_PROP_SINGLE:
-      add_info = "GAS_INFO_PROP_SINGLE";
-      break;
-    default:
-      add_info = "INVALID";
-      break;
+  switch (add)
+  {
+  case GAS_INFO_NONE:
+    add_info = "GAS_INFO_NONE";
+    break;
+
+  case GAS_INFO_FULL:
+    add_info = "GAS_INFO_MLP_FULL";
+    break;
+
+  case GAS_INFO_UPDATED:
+    add_info = "GAS_INFO_MLP_UPDATED";
+    break;
+
+  case GAS_INFO_PROP_ALL:
+    add_info = "GAS_INFO_PROP_ALL";
+    break;
+
+  case GAS_INFO_PROP_SINGLE:
+    add_info = "GAS_INFO_PROP_SINGLE";
+    break;
+
+  default:
+    add_info = "INVALID";
+    break;
   }
   switch (op)
   {
@@ -128,61 +134,70 @@ solver_info_cb (void *cls,
                 (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL",
                 add_info);
     return;
+
   case GAS_OP_SOLVE_STOP:
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Solver notifies `%s' with result `%s'\n",
                 "GAS_OP_SOLVE_STOP",
-                (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL",
-                add_info);
+                (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_SETUP_START:
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Solver notifies `%s' with result `%s'\n",
                 "GAS_OP_SOLVE_SETUP_START",
                 (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_SETUP_STOP:
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Solver notifies `%s' with result `%s'\n",
                 "GAS_OP_SOLVE_SETUP_STOP",
                 (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_MLP_LP_START:
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Solver notifies `%s' with result `%s'\n",
                 "GAS_OP_SOLVE_LP_START",
                 (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_MLP_LP_STOP:
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Solver notifies `%s' with result `%s'\n",
                 "GAS_OP_SOLVE_LP_STOP",
                 (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_MLP_MLP_START:
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Solver notifies `%s' with result `%s'\n",
                 "GAS_OP_SOLVE_MLP_START",
                 (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_MLP_MLP_STOP:
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
-               "Solver notifies `%s' with result `%s'\n",
-               "GAS_OP_SOLVE_MLP_STOP",
-               (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Solver notifies `%s' with result `%s'\n",
+                "GAS_OP_SOLVE_MLP_STOP",
+                (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_UPDATE_NOTIFICATION_START:
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
-               "Solver notifies `%s' with result `%s'\n",
-               "GAS_OP_SOLVE_UPDATE_NOTIFICATION_START",
-               (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Solver notifies `%s' with result `%s'\n",
+                "GAS_OP_SOLVE_UPDATE_NOTIFICATION_START",
+                (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   case GAS_OP_SOLVE_UPDATE_NOTIFICATION_STOP:
-    GNUNET_log(GNUNET_ERROR_TYPE_DEBUG,
-               "Solver notifies `%s' with result `%s'\n",
-               "GAS_OP_SOLVE_UPDATE_NOTIFICATION_STOP",
-               (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                "Solver notifies `%s' with result `%s'\n",
+                "GAS_OP_SOLVE_UPDATE_NOTIFICATION_STOP",
+                (GAS_STAT_SUCCESS == status) ? "SUCCESS" : "FAIL");
     return;
+
   default:
     GNUNET_break (0);
     break;
@@ -198,7 +213,7 @@ solver_info_cb (void *cls,
  */
 static void
 bandwidth_changed_cb (void *cls,
-                     struct ATS_Address *address)
+                      struct ATS_Address *address)
 {
   long long diff_out;
   long long diff_in;
@@ -209,22 +224,26 @@ bandwidth_changed_cb (void *cls,
               (unsigned int) address->assigned_bw_in,
               (unsigned int) address->assigned_bw_out);
   GAS_reservations_set_bandwidth (&address->peer,
-                                  GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
+                                  GNUNET_BANDWIDTH_value_init (
+                                    address->assigned_bw_in));
   /* Notify performance clients about changes to address */
   GAS_performance_notify_all_clients (&address->peer,
-                                     address->plugin,
-                                     address->addr,
-                                     address->addr_len,
-                                     address->active,
-                                     &address->properties,
-                                     GNUNET_BANDWIDTH_value_init (address->assigned_bw_out),
-                                     GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
-
-  if ( (0 == address->assigned_bw_in) &&
-       (0 == address->assigned_bw_out) )
+                                      address->plugin,
+                                      address->addr,
+                                      address->addr_len,
+                                      address->active,
+                                      &address->properties,
+                                      address->local_address_info,
+                                      GNUNET_BANDWIDTH_value_init (
+                                        address->assigned_bw_out),
+                                      GNUNET_BANDWIDTH_value_init (
+                                        address->assigned_bw_in));
+
+  if ((0 == address->assigned_bw_in) &&
+      (0 == address->assigned_bw_out))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-               "Telling transport to disconnect peer `%s'\n",
+                "Telling transport to disconnect peer `%s'\n",
                 GNUNET_i2s (&address->peer));
 
     /* Notify scheduling clients about suggestion */
@@ -236,12 +255,12 @@ bandwidth_changed_cb (void *cls,
   }
 
   /* Do bandwidth stability check */
-  diff_out = llabs ((long long) address->assigned_bw_out -
-                    (long long) address->last_notified_bw_out);
-  diff_in = llabs ((long long) address->assigned_bw_in -
-                   (long long) address->last_notified_bw_in);
-  if ( (diff_out < htonl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) &&
-       (diff_in < htonl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) )
+  diff_out = llabs ((long long) address->assigned_bw_out
+                    (long long) address->last_notified_bw_out);
+  diff_in = llabs ((long long) address->assigned_bw_in
+                   (long long) address->last_notified_bw_in);
+  if ((diff_out < htonl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)) &&
+      (diff_in < htonl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Bandwidth change too small, not notifying client\n");
@@ -257,8 +276,10 @@ bandwidth_changed_cb (void *cls,
   /* *Notify scheduling clients about suggestion */
   GAS_scheduling_transmit_address_suggestion (&address->peer,
                                               address->session_id,
-                                              GNUNET_BANDWIDTH_value_init (address->assigned_bw_out),
-                                              GNUNET_BANDWIDTH_value_init (address->assigned_bw_in));
+                                              GNUNET_BANDWIDTH_value_init (
+                                                address->assigned_bw_out),
+                                              GNUNET_BANDWIDTH_value_init (
+                                                address->assigned_bw_in));
 
   address->last_notified_bw_out = address->assigned_bw_out;
   address->last_notified_bw_in = address->assigned_bw_in;
@@ -276,7 +297,7 @@ bandwidth_changed_cb (void *cls,
 static unsigned long long
 parse_quota (const char *quota_str,
              const char *direction,
-             enum GNUNET_ATS_Network_Type network)
+             enum GNUNET_NetworkType network)
 {
   int res;
   unsigned long long ret;
@@ -301,19 +322,20 @@ parse_quota (const char *quota_str,
   if (GNUNET_NO == res)
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _("Could not load %s quota for network `%s':  `%s', assigning default bandwidth %llu\n"),
+                _ (
+                  "Could not load %s quota for network `%s':  `%s', assigning default bandwidth %llu\n"),
                 direction,
-                GNUNET_ATS_print_network_type (network),
+                GNUNET_NT_to_string (network),
                 quota_str,
-                GNUNET_ATS_DefaultBandwidth);
+                (unsigned long long) GNUNET_ATS_DefaultBandwidth);
     ret = GNUNET_ATS_DefaultBandwidth;
   }
   else
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
-                _("%s quota configured for network `%s' is %llu\n"),
+                _ ("%s quota configured for network `%s' is %llu\n"),
                 direction,
-                GNUNET_ATS_print_network_type (network),
+                GNUNET_NT_to_string (network),
                 ret);
   }
   return ret;
@@ -331,7 +353,7 @@ parse_quota (const char *quota_str,
  */
 static unsigned long long
 load_quota (const struct GNUNET_CONFIGURATION_Handle *cfg,
-            enum GNUNET_ATS_Network_Type type,
+            enum GNUNET_NetworkType type,
             const char *direction)
 {
   char *entry;
@@ -340,7 +362,7 @@ load_quota (const struct GNUNET_CONFIGURATION_Handle *cfg,
 
   GNUNET_asprintf (&entry,
                    "%s_QUOTA_%s",
-                   GNUNET_ATS_print_network_type (type),
+                   GNUNET_NT_to_string (type),
                    direction);
   if (GNUNET_OK ==
       GNUNET_CONFIGURATION_get_value_string (cfg,
@@ -356,10 +378,11 @@ load_quota (const struct GNUNET_CONFIGURATION_Handle *cfg,
   else
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _("No %s-quota configured for network `%s', assigning default bandwidth %llu\n"),
+                _ (
+                  "No %s-quota configured for network `%s', assigning default bandwidth %llu\n"),
                 direction,
-                GNUNET_ATS_print_network_type (type),
-                GNUNET_ATS_DefaultBandwidth);
+                GNUNET_NT_to_string (type),
+                (unsigned long long) GNUNET_ATS_DefaultBandwidth);
     ret = GNUNET_ATS_DefaultBandwidth;
   }
   GNUNET_free (entry);
@@ -384,7 +407,7 @@ load_quotas (const struct GNUNET_CONFIGURATION_Handle *cfg,
 {
   unsigned int c;
 
-  for (c = 0; (c < GNUNET_ATS_NetworkTypeCount) && (c < dest_length); c++)
+  for (c = 0; (c < GNUNET_NT_COUNT) && (c < dest_length); c++)
   {
     in_dest[c] = load_quota (cfg,
                              c,
@@ -394,7 +417,7 @@ load_quotas (const struct GNUNET_CONFIGURATION_Handle *cfg,
                               "in");
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "Loaded quota for network `%s' (in/out): %llu %llu\n",
-                GNUNET_ATS_print_network_type (c),
+                GNUNET_NT_to_string (c),
                 in_dest[c],
                 out_dest[c]);
   }
@@ -433,11 +456,11 @@ GAS_plugin_init (const struct GNUNET_CONFIGURATION_Handle *cfg)
   env.cfg = cfg;
   env.stats = GSA_stats;
   env.addresses = GSA_addresses;
-  env.network_count = GNUNET_ATS_NetworkTypeCount;
+  env.network_count = GNUNET_NT_COUNT;
   load_quotas (cfg,
                env.out_quota,
                env.in_quota,
-               GNUNET_ATS_NetworkTypeCount);
+               GNUNET_NT_COUNT);
   GNUNET_asprintf (&plugin,
                    "libgnunet_plugin_ats_%s",
                    mode_str);
@@ -448,7 +471,7 @@ GAS_plugin_init (const struct GNUNET_CONFIGURATION_Handle *cfg)
   if (NULL == (sf = GNUNET_PLUGIN_load (plugin, &env)))
   {
     GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
-                _("Failed to initialize solver `%s'!\n"),
+                _ ("Failed to initialize solver `%s'!\n"),
                 plugin);
     return GNUNET_SYSERR;
   }
@@ -510,7 +533,7 @@ GAS_plugin_delete_address (struct ATS_Address *address)
  * @param score_abs degree of the appreciation
  */
 void
-GAS_plugin_notify_feedback (struct GNUNET_SERVER_Client *application,
+GAS_plugin_notify_feedback (struct GNUNET_SERVICE_Client *application,
                             const struct GNUNET_PeerIdentity *peer,
                             const struct GNUNET_TIME_Relative scope,
                             enum GNUNET_ATS_PreferenceKind kind,