REST/NAMESTORE: rework API
[oweals/gnunet.git] / src / transport / gnunet-service-transport_hello.h
index d341628417ff79942370339873cbddada55b7f28..f96b2a84d92e1aadc5c28aabb275fc4a94e02e0e 100644 (file)
@@ -1,23 +1,22 @@
 /*
      This file is part of GNUnet.
-     (C) 2010,2011 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2010,2011 GNUnet e.V.
 
-     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 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
-     General Public License for more details.
+     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/>.
 
-     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.
+     SPDX-License-Identifier: AGPL3.0-or-later
 */
-
 /**
  * @file transport/gnunet-service-transport_hello.h
  * @brief hello API
@@ -29,6 +28,7 @@
 #include "gnunet_statistics_service.h"
 #include "gnunet_transport_service.h"
 #include "gnunet_util_lib.h"
+#include "gnunet_hello_lib.h"
 
 
 /**
  * @param cls closure
  * @param hello updated HELLO
  */
-typedef void (*GST_HelloCallback)(void *cls,
-                                 const struct GNUNET_MessageHeader *hello);
+typedef void
+(*GST_HelloCallback) (void *cls,
+                      const struct GNUNET_MessageHeader *hello);
 
 
 /**
  * Initialize the HELLO module.
  *
+ * @param friend_only use a friend only hello
  * @param cb function to call whenever our HELLO changes
- * @param cb_cls closure for cb
+ * @param cb_cls closure for @a cb
  */
-void 
-GST_hello_start (GST_HelloCallback cb,
-                void *cb_cls);
+void
+GST_hello_start (int friend_only,
+                 GST_HelloCallback cb,
+                 void *cb_cls);
 
 
 /**
@@ -71,36 +74,28 @@ GST_hello_get (void);
 /**
  * Add or remove an address from this peer's HELLO message.
  *
- * @param addremove GNUNET_YES to add, GNUNET_NO to remove
- * @param plugin_name name of the plugin for which this is an address
- * @param plugin_address address in a plugin-specific format
- * @param plugin_address_len number of bytes in plugin_address
+ * @param addremove #GNUNET_YES to add, #GNUNET_NO to remove
+ * @param address address to add or remove
  */
 void
 GST_hello_modify_addresses (int addremove,
-                           const char *plugin_name,
-                           const void *plugin_address,
-                           size_t plugin_address_len);
+                            const struct GNUNET_HELLO_Address *address);
 
 
 /**
  * Test if a particular address is one of ours.
  *
- * @param plugin_name name of the plugin for which this is an address
- * @param plugin_address address in a plugin-specific format
- * @param plugin_address_len number of bytes in plugin_address
+ * @param address the address to test
  * @param sig location where to cache PONG signatures for this address [set]
  * @param sig_expiration how long until the current 'sig' expires?
  *            (ZERO if sig was never created) [set]
- * @return GNUNET_YES if this is one of our addresses,
- *         GNUNET_NO if not
+ * @return #GNUNET_YES if this is one of our addresses,
+ *         #GNUNET_NO if not
  */
 int
-GST_hello_test_address (const char *plugin_name,
-                       const void *plugin_address,
-                       size_t plugin_address_len,
-                       struct GNUNET_CRYPTO_RsaSignature **sig,
-                       struct GNUNET_TIME_Absolute **sig_expiration);
+GST_hello_test_address (const struct GNUNET_HELLO_Address *address,
+                        struct GNUNET_CRYPTO_EddsaSignature **sig,
+                        struct GNUNET_TIME_Absolute **sig_expiration);
 
 
 #endif