Massively cleaned up #include's, so they're in a consistent
[freeradius.git] / src / modules / rlm_sql / drivers / rlm_sql_mysql / sql_mysql.c
index ac0b104..8da0503 100644 (file)
  *
  *   You should have received a copy of the GNU General Public License
  *   along with this program; if not, write to the Free Software
- *   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  *
- * Copyright 2000  The FreeRADIUS server project
+ * Copyright 2000,2006  The FreeRADIUS server project
  * Copyright 2000  Mike Machado <mike@innercite.com>
  * Copyright 2000  Alan DeKok <aland@ox.org>
  */
 
-#include <stdio.h>
+#include <freeradius-devel/ident.h>
+RCSID("$Id$")
+
+#include <freeradius-devel/radiusd.h>
+
 #include <sys/stat.h>
-#include <stdlib.h>
-#include <string.h>
 
-#include <mysql/errmsg.h>
+#include "config.h"
 
-#include       "radiusd.h"
+#ifdef HAVE_MYSQL_MYSQL_H
+#include <mysql/mysql_version.h>
+#include <mysql/errmsg.h>
+#include <mysql/mysql.h>
+#else
+#ifdef HAVE_MYSQL_H
+#include <mysql_version.h>
+#include <errmsg.h>
+#include <mysql.h>
+#endif
+#endif
 
-#include       <mysql/mysql.h>
 #include       "rlm_sql.h"
 
 typedef struct rlm_sql_mysql_sock {
@@ -52,8 +63,12 @@ static int sql_init_socket(SQLSOCK *sqlsocket, SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock;
 
-       sqlsocket->conn = (rlm_sql_mysql_sock *)rad_malloc(sizeof(rlm_sql_mysql_sock));
-
+       if (!sqlsocket->conn) {
+               sqlsocket->conn = (rlm_sql_mysql_sock *)rad_malloc(sizeof(rlm_sql_mysql_sock));
+               if (!sqlsocket->conn) {
+                       return -1;
+               }
+       }
        mysql_sock = sqlsocket->conn;
        memset(mysql_sock, 0, sizeof(*mysql_sock));
 
@@ -61,6 +76,7 @@ static int sql_init_socket(SQLSOCK *sqlsocket, SQL_CONFIG *config)
                        sqlsocket->id);
 
        mysql_init(&(mysql_sock->conn));
+       mysql_options(&(mysql_sock->conn), MYSQL_READ_DEFAULT_GROUP, "freeradius");
        if (!(mysql_sock->sock = mysql_real_connect(&(mysql_sock->conn),
                                                    config->sql_server,
                                                    config->sql_login,
@@ -87,7 +103,7 @@ static int sql_init_socket(SQLSOCK *sqlsocket, SQL_CONFIG *config)
  *     Purpose: Free socket and any private connection data
  *
  *************************************************************************/
-static int sql_destroy_socket(SQLSOCK *sqlsocket, SQL_CONFIG *config)
+static int sql_destroy_socket(SQLSOCK *sqlsocket, UNUSED SQL_CONFIG *config)
 {
        free(sqlsocket->conn);
        sqlsocket->conn = NULL;
@@ -157,7 +173,7 @@ static int sql_query(SQLSOCK * sqlsocket, SQL_CONFIG *config, char *querystr)
  *               set for the query.
  *
  *************************************************************************/
-static int sql_store_result(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_store_result(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
 
@@ -183,7 +199,7 @@ static int sql_store_result(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *               of columns from query
  *
  *************************************************************************/
-static int sql_num_fields(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_num_fields(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        int     num = 0;
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
@@ -239,7 +255,7 @@ static int sql_select_query(SQLSOCK *sqlsocket, SQL_CONFIG *config,
  *               query
  *
  *************************************************************************/
-static int sql_num_rows(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_num_rows(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
 
@@ -259,7 +275,7 @@ static int sql_num_rows(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *              0 on success, -1 on failure, SQL_DOWN if database is down.
  *
  *************************************************************************/
-static int sql_fetch_row(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_fetch_row(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
 
@@ -287,7 +303,7 @@ static int sql_fetch_row(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *               for a result set
  *
  *************************************************************************/
-static int sql_free_result(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_free_result(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
 
@@ -309,7 +325,7 @@ static int sql_free_result(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *               connection
  *
  *************************************************************************/
-static char *sql_error(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static char *sql_error(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
 
@@ -328,7 +344,7 @@ static char *sql_error(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *               connection
  *
  *************************************************************************/
-static int sql_close(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_close(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;
 
@@ -348,7 +364,7 @@ static int sql_close(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *     Purpose: End the query, such as freeing memory
  *
  *************************************************************************/
-static int sql_finish_query(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_finish_query(UNUSED SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        return 0;
 }
@@ -377,7 +393,7 @@ static int sql_finish_select_query(SQLSOCK * sqlsocket, SQL_CONFIG *config)
  *     Purpose: End the select query, such as freeing memory or result
  *
  *************************************************************************/
-static int sql_affected_rows(SQLSOCK * sqlsocket, SQL_CONFIG *config)
+static int sql_affected_rows(SQLSOCK * sqlsocket, UNUSED SQL_CONFIG *config)
 {
        rlm_sql_mysql_sock *mysql_sock = sqlsocket->conn;