aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/cyrsasl_scram.erl16
-rw-r--r--src/ejabberd_app.erl2
-rw-r--r--src/ejabberd_auth.erl11
-rw-r--r--src/ejabberd_zlib/ejabberd_zlib.erl4
-rw-r--r--src/eldap/eldap.erl19
-rw-r--r--src/mod_echo.erl2
-rw-r--r--src/mod_irc/iconv.erl2
-rw-r--r--src/mod_irc/mod_irc_connection.erl25
-rw-r--r--src/mod_stats.erl7
-rw-r--r--src/sha.erl2
-rw-r--r--src/stringprep/stringprep.erl2
-rw-r--r--src/tls/tls.erl6
-rw-r--r--src/treap.erl2
-rw-r--r--src/web/ejabberd_http.erl13
-rw-r--r--src/xml_stream.erl4
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)).