# HG changeset patch
# User Matthew Wild <mwild1@gmail.com>
# Date 1302817250 -3600
# Node ID 896e8793e7a47513829bd93ed14288f6b42bcff9
# Parent  d79d1255fd40257a964333a8dd9378fa5d457697
prosody: Add sanity_check() to startup sequence. Check that we have at least one vhost enabled to avoid Bad Things.

diff -r d79d1255fd40 -r 896e8793e7a4 prosody
--- a/prosody	Mon Apr 11 17:01:55 2011 +0100
+++ b/prosody	Thu Apr 14 22:40:50 2011 +0100
@@ -127,6 +127,19 @@
 	dependencies.log_warnings();
 end
 
+function sanity_check()
+	for host, host_config in pairs(configmanager.getconfig()) do
+		if host ~= "*"
+		and host_config.core.enabled ~= false
+		and not host_config.core.component_module then
+			return;
+		end
+	end
+	log("error", "No enabled VirtualHost entries found in the config file.");
+	log("error", "At least one active host is required for Prosody to function. Exiting...");
+	os.exit(1);
+end
+
 function sandbox_require()
 	-- Replace require() with one that doesn't pollute _G, required
 	-- for neat sandboxing of modules
@@ -463,6 +476,7 @@
 -- previous steps to have already been performed
 read_config();
 init_logging();
+sanity_check();
 sandbox_require();
 set_function_metatable();
 load_libraries();