Changeset

4014:5711c8755b96

prosody: Catch a recursive Include error and print a more friendly error
author Matthew Wild <mwild1@gmail.com>
date Tue, 21 Dec 2010 22:26:22 +0000
parents 4013:d43177026cda
children 4015:a35fa3368626
files prosody
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/prosody	Tue Dec 21 22:25:54 2010 +0000
+++ b/prosody	Tue Dec 21 22:26:22 2010 +0000
@@ -77,9 +77,15 @@
 		print("\n");
 		print("**************************");
 		if level == "parser" then
-			print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+			print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua"..":");
+			print("");
 			local err_line, err_message = tostring(err):match("%[string .-%]:(%d*): (.*)");
-			print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+			if err:match("chunk has too many syntax levels$") then
+				print("An Include statement in a config file is including an already-included");
+				print("file and causing an infinite loop. An Include statement in a config file is...");
+			else
+				print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+			end
 			print("");
 		elseif level == "file" then
 			print("Prosody was unable to find the configuration file.");