ejabberd 1.1.1 fixes a security issue introduced in ejabberd 1.1.0. In SASL mode, anonymous login was enabled as a default. Upgrading ejabberd 1.1.0 to ejabberd 1.1.1 is highly recommended. ejabberd 1.1.1 has the same features as ejabberd 1.1.0.
Notes:
- This release requires Erlang/OTP R9C-2 or higher.
- If you already have an ejabberd.cfg from previous ejabberd version, add this line at the beginning of the list of modules:
{mod_adhoc, []}, - When upgrading an ODBC-based installation from ejabberd 0.9.8 or older, make sure to check the release notes of ejabberd 1.0.0.
- There is a known bug on mod_shared_roster that breaks users' rosters if that user modifies contacts from a shared roster. Check forum thread and Bugzilla #233.
More information:



lets talk about what you've named Native MySQL support
the only support that i've found in ejabberd-1.1.1 release for native mysql is one sentence in release notes
That is already strange, but it didn't stop me. I've downloaded sources, without any version information and subscription, and add it to ejabberd. To do that, i've changed configure.ac, but it was not sufficient to make install working version, because of strange mkinstalldirs inside Makefile.in of mysql module sources. OK, i've made copying of beam files inside package build script what i think is wrong way of managing install process.
Now about native mysql support in work. First, ejd2odbc just not working with native mysql module - returning syntax error from MySQL. Dumping sql commands to file with subsequent fetching it in mysql shell works fine. Second, i see normal utf8 characters in database through shell, but in ejabberd roster i'm getting ???? instead all non latin characters. Second and a half, when I've added russian(i.e non latin) contact from jabber-client, than i see something like double converted utf8 in mysql shell.
P.S. Before proclaiming addition of any feature - you REALLY need to ADD it.
Before proclaiming addition of any feature to RELEASE - you REALLY need to TEST it.
About bug reports
The MySQL native supports has been tested extensively before the beta test phase. We have receive no bug report during the beta test phase on this part.
Moreover, the MySQL native support feature works on a production system on a very large site. We did not claim that we have taken care of all cases in the documentation. Before deciding to use MySQL, you need, for example, some knowledge on MySQL to configure it properly for your own encoding.
If you find bugs, we are happy to hear a precise description of your problem. Patches are also welcome, as this is a community based development and we are very happy to receive bug reports, along with the proper fix, if possible.
I hope this helps clarifying your points.
Cheers,
--
Mickaël Rémond
i found the reason of the problem
You are assuming that mysql thinks that data transfered to it is in utf8 encoding. It may be getted from some default settings in Mysql 4.1.x, but not true for my version MySql 5. I think that good practice is exactly declare in what encoding you are working by sending SET NAMES 'UTF8' as described in MySql documentation. And no, I don't want to make this whole server default by setting init-connect in MySQL configuration as suggested in one comment at documentation page.
no, you didn't help me in any way
It is because you just proclaiming again beta phase and don't RELEASE any beta sources, binaries etc.
So you don't beleive that what i said is true, and how would you beleive in my bug report?
If you find bugs, we are happy to hear a precise description of your problem.
what is not clear from my post? I want that mysql native driver would be the part of ejabberd release and not just hyperlink in release notes.
I want to use ejd2odbc converter and can't do that now, because mysql returning syntax error. I think that problem lies in mysql native driver because ejd2odbc ->file with following fetching that data to mysql works fine.
I see normal utf8 non latin symbols in mysql shell in my utf8 terminal with all encoding setting in my.cnf setted to utf8 too, but i see ???? instead of it in jabber client. If I add something non latin in jabber client I see it normally but in database that information placed not in utf8 encoding.
what word you didn't understand or you just taking offence and don't want to listen?
Re: no, you didn't help me in any way
It is included in the native installer.
Cheers,
--
Mickaël Rémond
Have you released installer
Have you released installer for amd64 Linux architecture? For FreeBSD? For Solaris?
Linux installer covers only one architecture of only one operating system. AFAIK, it's not usable by mcsim@city.veganet.ru because of amd64.
By the way, I'm pretty sure that users of mentioned "large site which uses mysql native driver" are quite happy with latin1 subset of unicode and simply can't find the problem (if the problem exists of course). Western people tend not to notice encoding problems at all.
let me guess
teo, i think they can avoid that problem because what ejabberd puts into mysql - it gets normally, but it is no utf8 in mysql itself, it is double converted utf8. So if they will not plan to integrate that db with some other software or manage that base from any other application they just wouldn't saw that problem.
may be
may be usefull:
odbc/ejabberd_odbc.erl
%% Open a database connection to MySQLmysql_connect(Server, DB, Username, Password) ->
NoLogFun = fun(_Level,_Format,_Argument) -> ok end,
case mysql_conn:start(Server, ?MYSQL_PORT, Username, Password, DB, NoLogFun) of
{ok, Ref} ->
erlang:monitor(process, Ref),
mysql_conn:fetch(Ref, ["set names 'utf8';"], self()),
{ok, #state{db_ref = Ref, db_type = mysql}};
{error, Reason} ->
?ERROR_MSG("MySQL connection failed: ~p~n", [Reason]),
%% If we can't connect we wait for 30 seconds before retrying
timer:sleep(30000),
{stop, mysql_connection_failed}
end.
added string:
mysql_conn:fetch(Ref, ["set names 'utf8';"], self()),
Thank you for the
Thank you for the suggestion.
This change is tracked here:
https://support.process-one.net/browse/EJAB-318
--
Mickaël Rémond
Process-one
plus one bug
did anybody export mnesia roster to odbc? I think nobody...
ejd2odbc.erl
func record_to_string
param AskMessage is not mysql escaping. It makes trouble...
I don't know erlang at all.. and can't undestand why my correcting is not working...
just adding string
SAskMessage = ejabberd_odbc:escape(AskMessage),after string:
Nick = ejabberd_odbc:escape(Name),and... file roster.txt has zero size without any error...
after i shall replace
"'", AskMessage, "',"with
"'", SAskMessage, "',"Can anybody help me?
sorry... found this:
sorry... found this: http://www.ejabberd.im/node/1532
BUT! I still see roster.txt with zero size... and no errors :(
Just one thing, which
Just one thing, which comment are typing ?
Are you sure you are filtering on the correct ejabberd vhost ?
--
Mickaël Rémond
Process-one
Hello, I just tried and it
Hello,
I just tried and it works for me. I need more info. I could look into your problem if you send me privately by mail a zipped text export of your Mnesia database.
--
Mickaël Rémond
Process-one
Sorry, it work's for me
Sorry, it work's for me too.. Nothing changed, just recompiled module and restarting server once again... I have done it a lot of times.. and today it starting to work. I confused.
Day ago executing the same command (from history) i see no errors and no files in dest dir.
Ok, it works on "small" server. Tomorrow i will try with "large" server and a lot of users... I hope it will work too :)
Thanks a lot.