diff options
-rw-r--r-- | src/cyrsasl_scram.erl | 16 | ||||
-rw-r--r-- | src/ejabberd_app.erl | 2 | ||||
-rw-r--r-- | src/ejabberd_auth.erl | 11 | ||||
-rw-r--r-- | src/ejabberd_zlib/ejabberd_zlib.erl | 4 | ||||
-rw-r--r-- | src/eldap/eldap.erl | 19 | ||||
-rw-r--r-- | src/mod_echo.erl | 2 | ||||
-rw-r--r-- | src/mod_irc/iconv.erl | 2 | ||||
-rw-r--r-- | src/mod_irc/mod_irc_connection.erl | 25 | ||||
-rw-r--r-- | src/mod_stats.erl | 7 | ||||
-rw-r--r-- | src/sha.erl | 2 | ||||
-rw-r--r-- | src/stringprep/stringprep.erl | 2 | ||||
-rw-r--r-- | src/tls/tls.erl | 6 | ||||
-rw-r--r-- | src/treap.erl | 2 | ||||
-rw-r--r-- | src/web/ejabberd_http.erl | 13 | ||||
-rw-r--r-- | src/xml_stream.erl | 4 |
15 files changed, 45 insertions, 72 deletions
diff --git a/src/cyrsasl_scram.erl b/src/cyrsasl_scram.erl index e3d63e612..2cd146353 100644 --- a/src/cyrsasl_scram.erl +++ b/src/cyrsasl_scram.erl @@ -55,6 +55,8 @@ mech_step(#state{step = 2} = State, ClientIn) -> case string:tokens(ClientIn, ",") of [CBind, UserNameAttribute, ClientNonceAttribute] when (CBind == "y") or (CBind == "n") -> case parse_attribute(UserNameAttribute) of + {error, Reason} -> + {error, Reason}; {_, EscapedUserName} -> case unescape_username(EscapedUserName) of error -> @@ -89,11 +91,7 @@ mech_step(#state{step = 2} = State, ClientIn) -> _Else -> {error, "not-supported"} end - end; - {error, Reason} -> - {error, Reason}; - _Else -> - {error, "bad-protocol"} + end end; _Else -> {error, "bad-protocol"} @@ -145,12 +143,8 @@ parse_attribute(Attribute) -> true -> if SecondChar == $= -> - case string:substr(Attribute, 3) of - String when is_list(String) -> - {lists:nth(1, Attribute), String}; - _Else -> - {error, "bad-format failed"} - end; + String = string:substr(Attribute, 3), + {lists:nth(1, Attribute), String}; true -> {error, "bad-format second char not equal sign"} end; diff --git a/src/ejabberd_app.erl b/src/ejabberd_app.erl index fc60c8b99..32b4b9073 100644 --- a/src/ejabberd_app.erl +++ b/src/ejabberd_app.erl @@ -110,7 +110,7 @@ init() -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, expat_erl}, [binary]), + Port = open_port({spawn, "expat_erl"}, [binary]), loop(Port). diff --git a/src/ejabberd_auth.erl b/src/ejabberd_auth.erl index 1eab9af83..2baa71adc 100644 --- a/src/ejabberd_auth.erl +++ b/src/ejabberd_auth.erl @@ -306,19 +306,16 @@ is_user_exists_in_other_modules_loop([AuthModule|AuthModules], User, Server) -> end. -%% @spec (User, Server) -> ok | error | {error, not_allowed} +%% @spec (User, Server) -> ok %% @doc Remove user. %% Note: it may return ok even if there was some problem removing the user. remove_user(User, Server) -> - R = lists:foreach( + lists:foreach( fun(M) -> M:remove_user(User, Server) end, auth_modules(Server)), - case R of - ok -> ejabberd_hooks:run(remove_user, jlib:nameprep(Server), [User, Server]); - _ -> none - end, - R. + ejabberd_hooks:run(remove_user, jlib:nameprep(Server), [User, Server]), + ok. %% @spec (User, Server, Password) -> ok | not_exists | not_allowed | bad_request | error %% @doc Try to remove user if the provided password is correct. diff --git a/src/ejabberd_zlib/ejabberd_zlib.erl b/src/ejabberd_zlib/ejabberd_zlib.erl index 9d90a0dc5..dbfd57a07 100644 --- a/src/ejabberd_zlib/ejabberd_zlib.erl +++ b/src/ejabberd_zlib/ejabberd_zlib.erl @@ -63,7 +63,7 @@ init([]) -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, ejabberd_zlib_drv}, [binary]), + Port = open_port({spawn, "ejabberd_zlib_drv"}, [binary]), {ok, Port}. @@ -99,7 +99,7 @@ enable_zlib(SockMod, Socket) -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, ejabberd_zlib_drv}, [binary]), + Port = open_port({spawn, "ejabberd_zlib_drv"}, [binary]), {ok, #zlibsock{sockmod = SockMod, socket = Socket, zlibport = Port}}. disable_zlib(#zlibsock{sockmod = SockMod, socket = Socket, zlibport = Port}) -> diff --git a/src/eldap/eldap.erl b/src/eldap/eldap.erl index c438626fa..a134a4c95 100644 --- a/src/eldap/eldap.erl +++ b/src/eldap/eldap.erl @@ -112,7 +112,7 @@ host = null, % Connected Host LDAP server port = 389, % The LDAP server port sockmod, % SockMod (gen_tcp|tls) - tls = none, % LDAP/LDAPS (none|starttls|tls) + tls = none, % LDAP/LDAPS (none|tls) tls_options = [], fd = null, % Socket filedescriptor. rootdn = "", % Name of the entry to bind as @@ -424,8 +424,8 @@ get_handle(Name) when is_list(Name) -> list_to_atom("eldap_" ++ Name). %%---------------------------------------------------------------------- init([]) -> case get_config() of - {ok, Hosts, Rootdn, Passwd, Opts} -> - init({Hosts, Rootdn, Passwd, Opts}); + {ok, Hosts, Port, Rootdn, Passwd, Opts} -> + init({Hosts, Port, Rootdn, Passwd, Opts}); {error, Reason} -> {stop, Reason} end; @@ -441,8 +441,6 @@ init({Hosts, Port, Rootdn, Passwd, Opts}) -> case Encrypt of tls -> ?LDAPS_PORT; - starttls -> - ?LDAP_PORT; _ -> ?LDAP_PORT end; @@ -902,14 +900,9 @@ cancel_timer(Timer) -> %%% Sanity check of received packet check_tag(Data) -> - case asn1rt_ber_bin:decode_tag(Data) of - {_Tag, Data1, _Rb} -> - case asn1rt_ber_bin:decode_length(Data1) of - {{_Len,_Data2}, _Rb2} -> ok; - _ -> throw({error,decoded_tag_length}) - end; - _ -> throw({error,decoded_tag}) - end. + {_Tag, Data1, _Rb} = asn1rt_ber_bin:decode_tag(Data), + {{_Len,_Data2}, _Rb2} = asn1rt_ber_bin:decode_length(Data1), + ok. close_and_retry(S, Timeout) -> catch (S#eldap.sockmod):close(S#eldap.fd), diff --git a/src/mod_echo.erl b/src/mod_echo.erl index f8d9ce622..284944541 100644 --- a/src/mod_echo.erl +++ b/src/mod_echo.erl @@ -31,7 +31,7 @@ -behaviour(gen_mod). %% API --export([start_link/2, start/2, stop/1]). +-export([start_link/2, start/2, stop/1, do_client_version/3]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, diff --git a/src/mod_irc/iconv.erl b/src/mod_irc/iconv.erl index d80db78ac..dde4d7e8d 100644 --- a/src/mod_irc/iconv.erl +++ b/src/mod_irc/iconv.erl @@ -52,7 +52,7 @@ init([]) -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, iconv_erl}, []), + Port = open_port({spawn, "iconv_erl"}, []), ets:new(iconv_table, [set, public, named_table]), ets:insert(iconv_table, {port, Port}), {ok, Port}. diff --git a/src/mod_irc/mod_irc_connection.erl b/src/mod_irc/mod_irc_connection.erl index 62abd0556..da9d26ca8 100644 --- a/src/mod_irc/mod_irc_connection.erl +++ b/src/mod_irc/mod_irc_connection.erl @@ -813,13 +813,9 @@ process_channel_topic_who(StateData, Chan, String) -> Words = string:tokens(String, " "), Msg1 = case Words of [_, "333", _, _Chan, Whoset , Timeset] -> - case string:to_integer(Timeset) of - {Unixtimeset, _Rest} -> - "Topic for #" ++ Chan ++ " set by " ++ Whoset ++ - " at " ++ unixtime2string(Unixtimeset); - _-> - "Topic for #" ++ Chan ++ " set by " ++ Whoset - end; + {Unixtimeset, _Rest} = string:to_integer(Timeset), + "Topic for #" ++ Chan ++ " set by " ++ Whoset ++ + " at " ++ unixtime2string(Unixtimeset); [_, "333", _, _Chan, Whoset | _] -> "Topic for #" ++ Chan ++ " set by " ++ Whoset; _ -> @@ -1327,15 +1323,12 @@ filter_mirc_colors(Msg) -> unixtime2string(Unixtime) -> Secs = Unixtime + calendar:datetime_to_gregorian_seconds( {{1970, 1, 1}, {0,0,0}}), - case calendar:universal_time_to_local_time( - calendar:gregorian_seconds_to_datetime(Secs)) of - {{Year, Month, Day}, {Hour, Minute, Second}} -> - lists:flatten( - io_lib:format("~4..0w-~2..0w-~2..0w ~2..0w:~2..0w:~2..0w", - [Year, Month, Day, Hour, Minute, Second])); - _-> - "0000-00-00 00:00:00" - end. + {{Year, Month, Day}, {Hour, Minute, Second}} = + calendar:universal_time_to_local_time( + calendar:gregorian_seconds_to_datetime(Secs)), + lists:flatten( + io_lib:format("~4..0w-~2..0w-~2..0w ~2..0w:~2..0w:~2..0w", + [Year, Month, Day, Hour, Minute, Second])). toupper([C | Cs]) -> if diff --git a/src/mod_stats.erl b/src/mod_stats.erl index 5c110801d..da7751cd6 100644 --- a/src/mod_stats.erl +++ b/src/mod_stats.erl @@ -167,12 +167,7 @@ get_local_stat(_Server, [], Name) when Name == "users/all-hosts/total" -> ejabberd_auth:get_vh_registered_users_number(Host) + Total end, 0, ejabberd_config:get_global_option(hosts)), - case NumUsers of - {'EXIT', _Reason} -> - ?STATERR("500", "Internal Server Error"); - Users -> - ?STATVAL(integer_to_list(Users), "users") - end; + ?STATVAL(integer_to_list(NumUsers), "users"); get_local_stat(_Server, _, Name) -> ?STATERR("404", "Not Found"). diff --git a/src/sha.erl b/src/sha.erl index 5a2ed3f1d..33a82b889 100644 --- a/src/sha.erl +++ b/src/sha.erl @@ -47,7 +47,7 @@ start() -> end, case Res of ok -> - Port = open_port({spawn, ?DRIVER}, [binary]), + Port = open_port({spawn, atom_to_list(?DRIVER)}, [binary]), register(?DRIVER, Port); {error, Reason} -> ?CRITICAL_MSG("unable to load driver '~s': ~s", diff --git a/src/stringprep/stringprep.erl b/src/stringprep/stringprep.erl index 9db6d2847..e14bfca17 100644 --- a/src/stringprep/stringprep.erl +++ b/src/stringprep/stringprep.erl @@ -60,7 +60,7 @@ init([]) -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, stringprep_drv}, []), + Port = open_port({spawn, "stringprep_drv"}, []), register(?STRINGPREP_PORT, Port), {ok, Port}. diff --git a/src/tls/tls.erl b/src/tls/tls.erl index 967cf9249..dfb9d2306 100644 --- a/src/tls/tls.erl +++ b/src/tls/tls.erl @@ -84,7 +84,7 @@ init([]) -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, tls_drv}, [binary]), + Port = open_port({spawn, "tls_drv"}, [binary]), Res = port_control(Port, ?SET_CERTIFICATE_FILE_ACCEPT, "./ssl.pem" ++ [0]), case Res of <<0>> -> @@ -130,7 +130,7 @@ tcp_to_tls(TCPSocket, Options) -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, tls_drv}, [binary]), + Port = open_port({spawn, "tls_drv"}, [binary]), Flags = case lists:member(verify_none, Options) of true -> @@ -267,7 +267,7 @@ test() -> ok -> ok; {error, already_loaded} -> ok end, - Port = open_port({spawn, tls_drv}, [binary]), + Port = open_port({spawn, "tls_drv"}, [binary]), ?PRINT("open_port: ~p~n", [Port]), PCRes = port_control(Port, ?SET_CERTIFICATE_FILE_ACCEPT, "./ssl.pem" ++ [0]), diff --git a/src/treap.erl b/src/treap.erl index 4c2fd35a6..2bc740303 100644 --- a/src/treap.erl +++ b/src/treap.erl @@ -63,8 +63,6 @@ insert1({HashKey1, Priority1, Value1, Left, Right} = Tree, insert1(delete_root(Tree), HashKey, Priority, Value) end. -heapify(nil) -> - nil; heapify({_HashKey, _Priority, _Value, nil, nil} = Tree) -> Tree; heapify({HashKey, Priority, Value, diff --git a/src/web/ejabberd_http.erl b/src/web/ejabberd_http.erl index ea6851902..44d3e161f 100644 --- a/src/web/ejabberd_http.erl +++ b/src/web/ejabberd_http.erl @@ -353,7 +353,7 @@ process_request(#state{request_method = Method, when Method=:='GET' orelse Method=:='HEAD' orelse Method=:='DELETE' orelse Method=:='OPTIONS' -> case (catch url_decode_q_split(Path)) of {'EXIT', _} -> - process_request(false); + make_bad_request(State); {NPath, Query} -> LPath = [path_decode(NPE) || NPE <- string:tokens(NPath, "/")], LQuery = case (catch parse_urlencoded(Query)) of @@ -430,7 +430,7 @@ process_request(#state{request_method = Method, ?DEBUG("client data: ~p~n", [Data]), case (catch url_decode_q_split(Path)) of {'EXIT', _} -> - process_request(false); + make_bad_request(State); {NPath, _Query} -> LPath = [path_decode(NPE) || NPE <- string:tokens(NPath, "/")], LQuery = case (catch parse_urlencoded(Data)) of @@ -464,6 +464,9 @@ process_request(#state{request_method = Method, end; process_request(State) -> + make_bad_request(State). + +make_bad_request(State) -> make_xhtml_output(State, 400, [], @@ -506,7 +509,7 @@ recv_data(State, Len, Acc) -> [] -> case (State#state.sockmod):recv(State#state.socket, Len, 300000) of {ok, Data} -> - recv_data(State, Len - size(Data), [Acc | Data]); + recv_data(State, Len - size(Data), [Acc | [Data]]); _ -> "" end; @@ -1089,8 +1092,8 @@ is_space(_) -> strip_spaces(String) -> strip_spaces(String, both). -strip_spaces(String, left) -> - drop_spaces(String); +%% strip_spaces(String, left) -> +%% drop_spaces(String); strip_spaces(String, right) -> lists:reverse(drop_spaces(lists:reverse(String))); strip_spaces(String, both) -> diff --git a/src/xml_stream.erl b/src/xml_stream.erl index 1deb8936e..205945fce 100644 --- a/src/xml_stream.erl +++ b/src/xml_stream.erl @@ -99,7 +99,7 @@ new(CallbackPid) -> new(CallbackPid, infinity). new(CallbackPid, MaxSize) -> - Port = open_port({spawn, expat_erl}, [binary]), + Port = open_port({spawn, "expat_erl"}, [binary]), #xml_stream_state{callback_pid = CallbackPid, port = Port, stack = [], @@ -140,7 +140,7 @@ close(#xml_stream_state{port = Port}) -> parse_element(Str) -> - Port = open_port({spawn, expat_erl}, [binary]), + Port = open_port({spawn, "expat_erl"}, [binary]), Res = port_control(Port, ?PARSE_FINAL_COMMAND, Str), port_close(Port), process_element_events(binary_to_term(Res)). |