mysql plugin: Allow configuration of `Port' and `Socket'.
authorMirko Buffoni <briareos@eswat.org>
Wed, 29 Oct 2008 11:24:04 +0000 (12:24 +0100)
committerFlorian Forster <octo@huhu.verplant.org>
Sat, 8 Nov 2008 14:34:28 +0000 (15:34 +0100)
Hi,

I have a patch for mysql collectd library.
The patch allow to specify also Port and Socket
parameters for those who have a non-standard configuration
of mysql.

It's very straightforward.  If accepted, there is only to
change documentation and config file to reflect the new
parameters.

Enjoy

Mirko

Signed-off-by: Florian Forster <octo@huhu.verplant.org>
src/mysql.c

index 4e72b5b..08df3fa 100644 (file)
@@ -38,14 +38,18 @@ static const char *config_keys[] =
        "User",
        "Password",
        "Database",
+       "Port",
+       "Socket",
        NULL
 };
-static int config_keys_num = 4;
+static int config_keys_num = 6;
 
 static char *host = "localhost";
 static char *user;
 static char *pass;
 static char *db = NULL;
+static char *socket = NULL;
+static int  port = 0;
 
 static MYSQL *getconnection (void)
 {
@@ -88,7 +92,7 @@ static MYSQL *getconnection (void)
                return (NULL);
        }
 
-       if (mysql_real_connect (con, host, user, pass, db, 0, NULL, 0) == NULL)
+       if (mysql_real_connect (con, host, user, pass, db, port, socket, 0) == NULL)
        {
                ERROR ("mysql_real_connect failed: %s", mysql_error (con));
                state = 0;
@@ -113,6 +117,10 @@ static int config (const char *key, const char *value)
                return ((pass = strdup (value)) == NULL ? 1 : 0);
        else if (strcasecmp (key, "database") == 0)
                return ((db = strdup (value)) == NULL ? 1 : 0);
+       else if (strcasecmp (key, "socket") == 0)
+               return ((socket = strdup (value)) == NULL ? 1 : 0);
+       else if (strcasecmp (key, "port") == 0)
+               return ((port = atoi (value)) == NULL ? 1 : 0);
        else
                return (-1);
 }