There is a problem with OTP's to_lower in mod_http_bind and mod_http_fileserver:
1. We previously used httpd_util:to_lower/1, but this function was removed since erlang R12B-0
2. Now we use string:to_lower/1, but this function was first introduced in R11B-4
The problem is that ejabberd is said to be compatible with R10B-9 or newer up to R12B-2.
Solutions:
A) implement locally the function, to not depend on OTP
B) if it is detected that R12 is not being used, then use the older function
C) require R11B-5 at least for ejabberd 2.0.1 and newer.
Since ejabberd 2.x already has automatic detection of Erlang R12 at compile time, solution B) may be easily implemented.
By default, the new function (string:to_lower/1) should be used, and in the case R12 is detected to not be used, then use the old function (httpd_util:to_lower/1).
Someday, once ejabberd requires Erlang/OTP R11B-5 or newer, then the code related to this ticket can be removed from ejabberd.
mod_http_fileserver is fixed in SVN r576.
Still needs to be fixed: mod_muc_log_http.