-fix double free, linker issue
[oweals/gnunet.git] / src / include / gnunet_program_lib.h
index a44f4f11e74d6487427646e6972004d05561a865..fa96ecf3c617cc9f8003a890eca4a736fdd6f247 100644 (file)
@@ -43,19 +43,38 @@ extern "C"
  * Main function that will be run.
  *
  * @param cls closure
- * @param sched the scheduler to use
  * @param args remaining command-line arguments
  * @param cfgfile name of the configuration file used (for saving, can be NULL!)
  * @param cfg configuration
  */
-typedef void (*GNUNET_PROGRAM_Main) (void *cls,
-                                     struct GNUNET_SCHEDULER_Handle * sched,
-                                     char *const *args,
+typedef void (*GNUNET_PROGRAM_Main) (void *cls, char *const *args,
                                      const char *cfgfile,
                                      const struct GNUNET_CONFIGURATION_Handle *
                                      cfg);
 
 
+/**
+ * Run a standard GNUnet command startup sequence (initialize loggers
+ * and configuration, parse options).
+ *
+ * @param argc number of command line arguments
+ * @param argv command line arguments
+ * @param binaryName our expected name
+ * @param binaryHelp help text for the program
+ * @param options command line options
+ * @param task main function to run
+ * @param task_cls closure for task
+ * @param run_without_scheduler GNUNET_NO start the scheduler, GNUNET_YES do not
+ *        start the scheduler just run the main task
+ * @return GNUNET_SYSERR on error, GNUNET_OK on success
+ */
+int
+GNUNET_PROGRAM_run2 (int argc, char *const *argv, const char *binaryName,
+                    const char *binaryHelp,
+                    const struct GNUNET_GETOPT_CommandLineOption *options,
+                    GNUNET_PROGRAM_Main task, void *task_cls,
+                    int run_without_scheduler);
+
 /**
  * Run a standard GNUnet command startup sequence (initialize loggers
  * and configuration, parse options).
@@ -69,12 +88,11 @@ typedef void (*GNUNET_PROGRAM_Main) (void *cls,
  * @param task_cls closure for task
  * @return GNUNET_SYSERR on error, GNUNET_OK on success
  */
-int GNUNET_PROGRAM_run (int argc,
-                        char *const *argv,
-                        const char *binaryName,
-                        const char *binaryHelp,
-                        const struct GNUNET_GETOPT_CommandLineOption *options,
-                        GNUNET_PROGRAM_Main task, void *task_cls);
+int
+GNUNET_PROGRAM_run (int argc, char *const *argv, const char *binaryName,
+                    const char *binaryHelp,
+                    const struct GNUNET_GETOPT_CommandLineOption *options,
+                    GNUNET_PROGRAM_Main task, void *task_cls);