diff options
author | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-01-16 01:06:20 +0300 |
---|---|---|
committer | Evgeniy Khramtsov <ekhramtsov@process-one.net> | 2018-01-16 01:06:20 +0300 |
commit | 7b0fa7e6e2b839324e41b23696fcc082db869816 (patch) | |
tree | f26130802179d64b03be59fa21e9c483baa7102a | |
parent | Include acme deps in release, fixes f2c3fe8ac (diff) |
Improve validation of 'convert' option
-rw-r--r-- | src/mod_avatar.erl | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/mod_avatar.erl b/src/mod_avatar.erl index b72946df4..778794e1a 100644 --- a/src/mod_avatar.erl +++ b/src/mod_avatar.erl @@ -407,18 +407,30 @@ decode_mime_type(MimeType) -> encode_mime_type(Type) -> <<"image/", (atom_to_binary(Type, latin1))/binary>>. -warn(Format) -> - ?WARNING_MSG("ejabberd is not compiled with ~p support", [Format]). +-spec fail(atom()) -> no_return(). +fail(Format) -> + FormatS = case Format of + webp -> "WebP"; + png -> "PNG"; + jpeg -> "JPEG"; + gif -> "GIF"; + _ -> "" + end, + if FormatS /= "" -> + ?WARNING_MSG("ejabberd is not compiled with ~s support", [FormatS]); + true -> + ok + end, + erlang:error(badarg). -mod_opt_type({convert, From}) when From == webp; From == jpeg; - From == png; From == gif -> +mod_opt_type({convert, From}) -> fun(To) when is_atom(To), To /= From -> - case eimp:is_supported(From) of + case eimp:is_supported(From) orelse From == default of false -> - warn(From); + fail(From); true -> case eimp:is_supported(To) of - false -> warn(To); + false -> fail(To); true -> To end end |