Output the error messages even still to stderr despite syslog being on.
[captive.git] / src / libcaptive / client / init.c
index f3c35c9..4626942 100644 (file)
@@ -54,6 +54,7 @@
 #include "captive/macros.h"
 #include "../storage/relastblock.h"    /* for captive_storage_relastblock() */
 #include "../cc/sharedcachemap.h"      /* for captive_shared_cache_map_flush_all() */
+#include "standalone.h"
 
 
 struct captive_options *captive_options;
@@ -249,6 +250,8 @@ int priority;
                        (!(log_level&G_LOG_FLAG_RECURSION) ? "" : "RECURSION: "),
                        (!(log_level&G_LOG_FLAG_FATAL    ) ? "" : "FATAL: "),
                        message);
+
+       g_log_default_handler(log_domain,log_level,message,user_data);
 }
 
 void captive_log_init(const struct captive_options *captive_options)
@@ -327,16 +330,21 @@ gboolean errbool;
                        |G_LOG_LEVEL_DEBUG
                        ));
 
+       g_return_val_if_fail(captive_standalone_init_done==TRUE,FALSE);
        g_return_val_if_fail(active==FALSE,FALSE);
 
        g_return_val_if_fail(captive_options!=NULL,FALSE);
        g_return_val_if_fail(captive_options->image_iochannel!=NULL,FALSE);
 
-       /* Initialize GObject subsystem of GLib. */
-       g_type_init();
+       /* Do not: g_type_init();
+        * as it is done by: captive_standalone_init()
+        */
 
        captive_log_init(captive_options);
 
+       if (captive_options->rwmode==CAPTIVE_OPTION_RWMODE_RW && !captive_options->sandbox)
+               g_error(_("Rejecting --rw --no-sandbox operation as too dangerous - use --blind or --sandbox"));
+
        captive_image_iochannel=captive_options->image_iochannel;
        g_io_channel_ref(captive_image_iochannel);