[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re: smsd + libmysqlclient charset changes after some time
From: |
p . wassi |
Subject: |
Re: Re: smsd + libmysqlclient charset changes after some time |
Date: |
Sat, 26 Jul 2014 20:21:10 +0200 |
Hello,
> Do I understand right, that there is no explicit reconnecting from smsd side?
smsd opens the mysql-connection with the MYSQL_OPT_RECONNECT option set,
so when the connection is lost, libmysqlclient tries to re-open that connection
itself (completely invisible for smsd) and re-sends the failed SQL-statement.
So, yes, there is no explicit reconnection from smsd side.
> From the first look it seem to me like something internal in mysql client
> library but I don't know for sure. Please continue testing and let us know
> the results.
My tests showed, that setting the character encoding just once when the
connection is opened, is sufficient.
Meanwhile, I had to migrate to a new server (from i386 to x64) and did a
clean install of Debian 7 + MySQL-Server + gnokii (both from Debian's repo),
and can now summarize: this setup will not work out-of-the-box when special
characters are needed. Altough all locales installed are UTF8-ones (en_GB.UTF8
being the default one), the connection to the database is opened as latin1
(the encoding is not specified by gnokii-smsd at all), which causes much trouble
when dealing with non-ASCII chars.
What I did to get these chars working: get the source code from Debian's repos,
and manually set the encoding to UTF8 in the DB_ConnectInbox() and
DB_ConnectOutbox()
functions.
Just for reference (or to conclude): a smsd-mysql-setup as it is provided in
Debian 7
will not work with non-ASCII characters, since the DB-connection's encoding
does not
match on both ends, and/or the encoding changes by itself after some time.
An important notice: I've looked up the mysql.c file in gnokii's git, and have
seen that
in 0.6.31 the Connect()-function utilizes a MYSQL_SET_CHARSET_NAME option
(which was not done
before), so it seems that the whole issue was resolved in that version.
(Debian 7 is still on 0.6.30)
I'll give 0.6.31 a try (compiled manually) as soon as there is some free time
(there are
still many things in the queue to get moved to the new server :) )
Best regards,
Paul