diff --git a/ChangeLog b/ChangeLog index 2fe69f5dc..23449e768 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-07-22 Badlop + + * src/ejabberd_config.erl: If syntax mistake in config file, show + specific error message (EJAB-616) + 2008-07-17 Badlop * src/mod_muc/mod_muc_room.erl: Fix to allow a server admin to add diff --git a/src/ejabberd_config.erl b/src/ejabberd_config.erl index cce7b8146..1f47eec33 100644 --- a/src/ejabberd_config.erl +++ b/src/ejabberd_config.erl @@ -64,10 +64,14 @@ load_file(File) -> State = lists:foldl(fun search_hosts/2, #state{}, Terms), Res = lists:foldl(fun process_term/2, State, Terms), set_opts(Res); - {error, Reason} -> - ExitText = lists:flatten(File ++ ": around line " + {error, {_LineNumber, erl_parse, _ParseMessage} = Reason} -> + ExitText = lists:flatten(File ++ " approximately in the line " ++ file:format_error(Reason)), - ?ERROR_MSG("Problem loading ejabberd config file:~n~s", [ExitText]), + ?ERROR_MSG("Problem loading ejabberd config file ~n~s", [ExitText]), + exit(ExitText); + {error, Reason} -> + ExitText = lists:flatten(File ++ ": " ++ file:format_error(Reason)), + ?ERROR_MSG("Problem loading ejabberd config file ~n~s", [ExitText]), exit(ExitText) end.