Snort mailing list archives

barnyard and mysql 5


From: Andrea Lee <alee () santacruz k12 ca us>
Date: Fri, 16 Jun 2006 09:59:38 -0700

Hi there, recently joined the group. We're seeing barnyard lose the connection to mysql and not reconnect. Google had 
this jem from past snort-users:
---------------
I recently built barnyard against MySQL 5.0.13 and everything seemed hunkey-dory until I noticed it's failures to 
reconnect after db restarts. This problem also occurred if the connection was inactive for long periods (>32k sec.Huh.
In these cases barnyard stays in it's mysql_ping()-sleep loop and never reconnects, even when the db is back online. 
Small print from the MySQL manual v5.0 for mysql_real_connect() includes the following note:-

Note that upon connection, mysql_real_connect() sets the reconnect >flag (part of the MYSQL structure) to a value of 1 
in versions of the >API older than 5.0.3, or 0 in newer versions. A value of 1 for this flag >indicates that if a 
statement cannot be performed because of a lost >connection, to try reconnecting to the server before giving up. As of 
MySQL 5.0.13, you can use the MYSQL_OPT_RECONNECT option to > mysql_options() to control reconnection behavior.

That didn't fix it for me but the following did. I found that adding the line mysql->reconnect = 1; just prior to the 
mysql_ping() loop did the trick ie. with a couple of lines of context

--- op_acid_db.c.ORIG 2005-11-08 17:05:46.000000000 +0000
+++ op_acid_db.c 2005-11-08 18:19:54.000000000 +0000
@@ -1237,4 +1237,5 @@
{
LogMessage("Lost connection to MySQL server. Reconnecting\n");
+ mysql->reconnect = 1;
while(mysql_ping(mysql) != 0)
{ 

-- cheesman  
---------------

Just what I was looking for and (for our snort) more useful than dropping mysql down to v4 (as other posts suggest). 

Question is: Can someone help a coding noob understand what that code means and where to put it? 
As I understand, add the line "mysql->reconnect = 1;" after the above log message at line 1237 in 
barnyard/src/op_acid_db.c, but when I try and recompile, I get errors. Obviously there is some trick that you have to 
do when changing sourcecode that I haven't learned in Linux101. Sorry, couldn't think of any good google search strings 
to assist me. 

Thanks, 
Andrea

(current:
barnyard-0.2.0
mysql-5.0.18
snort-2.4.3
)


_______________________________________________
Snort-users mailing list
Snort-users () lists sourceforge net
Go to this URL to change user options or unsubscribe:
https://lists.sourceforge.net/lists/listinfo/snort-users
Snort-users list archive:
http://www.geocrawler.com/redir-sf.php3?list=snort-users


Current thread: