#include "gnunet_configuration_lib.h"
#include "gnunet_server_lib.h"
+
+/**
+ * Get the list of addresses that a server for the given service
+ * should bind to.
+ *
+ * @param serviceName name of the service
+ * @param cfg configuration (which specifies the addresses)
+ * @param addrs set (call by reference) to an array of pointers to the
+ * addresses the server should bind to and listen on; the
+ * array will be NULL-terminated (on success)
+ * @param addr_lens set (call by reference) to an array of the lengths
+ * of the respective 'struct sockaddr' struct in the 'addrs'
+ * array (on success)
+ * @return number of addresses found on success,
+ * GNUNET_SYSERR if the configuration
+ * did not specify reasonable finding information or
+ * if it specified a hostname that could not be resolved;
+ * GNUNET_NO if the number of addresses configured is
+ * zero (in this case, '*addrs' and '*addr_lens' will be
+ * set to NULL).
+ */
+int
+GNUNET_SERVICE_get_server_addresses (const char *serviceName,
+ const struct GNUNET_CONFIGURATION_Handle *cfg,
+ struct sockaddr ***addrs,
+ socklen_t **addr_lens);
+
+
/**
* Function called by the service's run
* method to run service-specific setup code.
*
* @param cls closure
- * @param sched scheduler to use
* @param server the initialized server
* @param cfg configuration to use
*/
typedef void (*GNUNET_SERVICE_Main) (void *cls,
- struct GNUNET_SCHEDULER_Handle * sched,
struct GNUNET_SERVER_Handle * server,
const struct GNUNET_CONFIGURATION_Handle *
cfg);
* initialized system.
*
* @param serviceName our service name
- * @param sched scheduler to use
* @param cfg configuration to use
* @return NULL on error, service handle
*/
struct GNUNET_SERVICE_Context *GNUNET_SERVICE_start (const char *serviceName,
- struct
- GNUNET_SCHEDULER_Handle
- *sched,
const struct
GNUNET_CONFIGURATION_Handle
*cfg);