[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ossec-dev] Database related patches for ossec 1.4



I've added port and socket options to the database tag for mysql.  I don't
have postgresql installed, so I did not change the connect call for it to
use the port number.  

port is specified by <port>number</port> in the database tag
socket is specified by <socket>path_to_socket</socket> in the database tag

The socket is used if the database host is not specified.


diff -rpN ossec-hids-1.4.orig/src/config/dbd-config.c ossec-hids-1.4/src/config/dbd-config.c
*** ossec-hids-1.4.orig/src/config/dbd-config.c	2007-08-25 08:24:03.000000000 -0500
--- ossec-hids-1.4/src/config/dbd-config.c	2007-10-31 11:13:24.000000000 -0500
*************** int Read_DB(XML_NODE node, void *config1
*** 28,33 ****
--- 28,35 ----
      char *xml_dbuser = "username";
      char *xml_dbpass = "password";
      char *xml_dbdb = "database";
+     char *xml_dbport = "port";
+     char *xml_dbsock = "socket";
      char *xml_dbtype = "type";
  
      
*************** int Read_DB(XML_NODE node, void *config1
*** 68,73 ****
--- 70,83 ----
          {
              os_strdup(node[i]->content, db_config->db);
          }
+         else if(strcmp(node[i]->element, xml_dbport) == 0)
+         {
+             db_config->port = atoi(node[i]->content);
+         }
+         else if(strcmp(node[i]->element, xml_dbsock) == 0)
+         {
+             os_strdup(node[i]->content, db_config->sock);
+         }
          else if(strcmp(node[i]->element, xml_dbtype) == 0)
          {
              if(strcmp(node[i]->content, "mysql") == 0)
diff -rpN ossec-hids-1.4.orig/src/config/dbd-config.h ossec-hids-1.4/src/config/dbd-config.h
*** ossec-hids-1.4.orig/src/config/dbd-config.h	2007-08-27 22:08:14.000000000 -0500
--- ossec-hids-1.4/src/config/dbd-config.h	2007-10-31 11:13:24.000000000 -0500
*************** typedef struct _DBConfig
*** 28,34 ****
      char *user;
      char *pass;
      char *db;
! 
      void *conn;
      void *location_hash;
  
--- 28,36 ----
      char *user;
      char *pass;
      char *db;
!     unsigned int port;
!     char *sock;
!     
      void *conn;
      void *location_hash;
  
diff -rpN ossec-hids-1.4.orig/src/os_dbd/alert.c ossec-hids-1.4/src/os_dbd/alert.c
*** ossec-hids-1.4.orig/src/os_dbd/alert.c	2007-09-17 20:20:49.000000000 -0500
--- ossec-hids-1.4/src/os_dbd/alert.c	2007-10-31 11:13:24.000000000 -0500
*************** int OS_Alert_InsertDB(alert_data *al_dat
*** 165,177 ****
      
  
      /* Inserting data */
!     snprintf(sql_query, OS_SIZE_2048,
!             "INSERT INTO "
!             "data(id, server_id, \"user\",full_log) "
!             "VALUES ('%u', '%u', '%s', '%s') ",
!             db_config->alert_id, db_config->server_id, 
!             al_data->user, al_data->log[0]);
      
      /* Inserting into the db */
      if(!osdb_query_insert(db_config->conn, sql_query))
      {
--- 165,189 ----
      
  
      /* Inserting data */
!     if (db_config->db_type == POSTGDB)
!     {
!       snprintf(sql_query, OS_SIZE_2048,
!               "INSERT INTO "
!               "data(id, server_id, \"user\",full_log) "
!               "VALUES ('%u', '%u', '%s', '%s') ",
!               db_config->alert_id, db_config->server_id, 
!               al_data->user, al_data->log[0]);
!     }
!     else
!     {
!       snprintf(sql_query, OS_SIZE_2048,
!               "INSERT INTO "
!               "data(id, server_id, user, full_log) "
!               "VALUES ('%u', '%u', '%s', '%s') ",
!               db_config->alert_id, db_config->server_id, 
!               al_data->user, al_data->log[0]);
      
+     }
      /* Inserting into the db */
      if(!osdb_query_insert(db_config->conn, sql_query))
      {
diff -rpN ossec-hids-1.4.orig/src/os_dbd/config.c ossec-hids-1.4/src/os_dbd/config.c
*** ossec-hids-1.4.orig/src/os_dbd/config.c	2007-08-27 22:08:15.000000000 -0500
--- ossec-hids-1.4/src/os_dbd/config.c	2007-10-31 11:51:37.000000000 -0500
*************** int OS_ReadDBConf(int test_config, char 
*** 43,48 ****
--- 43,50 ----
      db_config->user = NULL;
      db_config->pass = NULL;
      db_config->db = NULL;
+     db_config->port = 3306;
+     db_config->sock = NULL;
      db_config->db_type = 0;
      db_config->maxreconnect = 0;
  
*************** int OS_ReadDBConf(int test_config, char 
*** 75,80 ****
--- 77,83 ----
         !db_config->user ||
         !db_config->pass ||
         !db_config->db ||
+        !db_config->sock ||
         !db_config->db_type)
      {
          merror(DB_MISS_CONFIG, ARGV0);
diff -rpN ossec-hids-1.4.orig/src/os_dbd/db_op.c ossec-hids-1.4/src/os_dbd/db_op.c
*** ossec-hids-1.4.orig/src/os_dbd/db_op.c	2007-09-27 16:56:22.000000000 -0500
--- ossec-hids-1.4/src/os_dbd/db_op.c	2007-10-31 11:50:39.000000000 -0500
*************** void osdb_checkerror()
*** 92,98 ****
              db_config_pt->conn = osdb_connect(db_config_pt->host, 
                                                db_config_pt->user,
                                                db_config_pt->pass, 
!                                               db_config_pt->db);
              
              /* If we were able to reconnect, keep going. */
              if(db_config_pt->conn)
--- 92,100 ----
              db_config_pt->conn = osdb_connect(db_config_pt->host, 
                                                db_config_pt->user,
                                                db_config_pt->pass, 
!                                               db_config_pt->db,
!                                               db_config_pt->port,
!                                               db_config_pt->sock);
              
              /* If we were able to reconnect, keep going. */
              if(db_config_pt->conn)
*************** void osdb_setconfig(DBConfig *db_config)
*** 146,152 ****
  /* Create the database connection.
   * Returns NULL on error
   */
! void *mysql_osdb_connect(char *host, char *user, char *pass, char *db)
  {
      MYSQL *conn;
      conn = mysql_init(NULL);
--- 148,154 ----
  /* Create the database connection.
   * Returns NULL on error
   */
! void *mysql_osdb_connect(char *host, char *user, char *pass, char *db,int port, char *sock)
  {
      MYSQL *conn;
      conn = mysql_init(NULL);
*************** void *mysql_osdb_connect(char *host, cha
*** 155,161 ****
          merror(DBINIT_ERROR, ARGV0);
          return(NULL);
      }
!     if(mysql_real_connect(conn, host, user, pass, db, 0, NULL, 0) == NULL)
      {
          merror(DBCONN_ERROR, ARGV0, host, db, mysql_error(conn));
          mysql_close(conn);
--- 157,170 ----
          merror(DBINIT_ERROR, ARGV0);
          return(NULL);
      }
! 
! 
!     /** if host is null, use socket **/
!     if (host == NULL)
!     {
!         mysql_options(conn, MYSQL_OPT_NAMED_PIPE, NULL);
!     }    
!     if(mysql_real_connect(conn, host, user, pass, db, port, sock, 0) == NULL)
      {
          merror(DBCONN_ERROR, ARGV0, host, db, mysql_error(conn));
          mysql_close(conn);
*************** int mysql_osdb_query_select(void *db_con
*** 255,261 ****
   * Create the PostgreSQL database connection. 
   * Return NULL on error
   */
! void *postgresql_osdb_connect(char *host, char *user, char *pass, char *db)
  {
      PGconn *conn;
  
--- 264,270 ----
   * Create the PostgreSQL database connection. 
   * Return NULL on error
   */
! void *postgresql_osdb_connect(char *host, char *user, char *pass, char *db, int port, char *sock)
  {
      PGconn *conn;
  
*************** int postgresql_osdb_query_select(void *d
*** 365,371 ****
  
  
  
! void *none_osdb_connect(char *host, char *user, char *pass, char *db)
  {
      char *tmp;
  
--- 374,380 ----
  
  
  
! void *none_osdb_connect(char *host, char *user, char *pass, char *db, int port, char *sock)
  {
      char *tmp;
  
diff -rpN ossec-hids-1.4.orig/src/os_dbd/db_op.h ossec-hids-1.4/src/os_dbd/db_op.h
*** ossec-hids-1.4.orig/src/os_dbd/db_op.h	2007-08-25 08:24:04.000000000 -0500
--- ossec-hids-1.4/src/os_dbd/db_op.h	2007-10-31 11:13:24.000000000 -0500
***************
*** 20,28 ****
  
  
  /* Connects to the database */
! void *(*osdb_connect)(char *host, char *user, char *pass, char *db);
! void *mysql_osdb_connect(char *host, char *user, char *pass, char *db);
! void *postgresql_osdb_connect(char *host, char *user, char *pass, char *db);
  
  /* Sends insert query to the database */
  int (* osdb_query_insert)(void *db_conn, char *query);
--- 20,28 ----
  
  
  /* Connects to the database */
! void *(*osdb_connect)(char *host, char *user, char *pass, char *db, int port, char *sock);
! void *mysql_osdb_connect(char *host, char *user, char *pass, char *db, int port, char *sock);
! void *postgresql_osdb_connect(char *host, char *user, char *pass, char *db, int port, char *sock);
  
  /* Sends insert query to the database */
  int (* osdb_query_insert)(void *db_conn, char *query);
diff -rpN ossec-hids-1.4.orig/src/os_dbd/main.c ossec-hids-1.4/src/os_dbd/main.c
*** ossec-hids-1.4.orig/src/os_dbd/main.c	2007-10-11 17:17:58.000000000 -0500
--- ossec-hids-1.4/src/os_dbd/main.c	2007-10-31 11:13:24.000000000 -0500
*************** int main(int argc, char **argv)
*** 156,164 ****
  
      
      /* Maybe disable this debug? */
!     debug1("%s: DEBUG: Connecting to '%s', using '%s', '%s', '%s'.",
             ARGV0, db_config.host, db_config.user, 
!            db_config.pass, db_config.db);
  
  
      /* Setting config pointer */
--- 156,164 ----
  
      
      /* Maybe disable this debug? */
!     debug1("%s: DEBUG: Connecting to '%s', using '%s', '%s', '%s', %d,'%s'.",
             ARGV0, db_config.host, db_config.user, 
!            db_config.pass, db_config.db,db_config.port,db_config.sock);
  
  
      /* Setting config pointer */
*************** int main(int argc, char **argv)
*** 175,181 ****
      while(c <= db_config.maxreconnect)
      {
          db_config.conn = osdb_connect(db_config.host, db_config.user, 
!                                       db_config.pass, db_config.db);
  
          /* If we are able to reconnect, keep going */
          if(db_config.conn)
--- 175,182 ----
      while(c <= db_config.maxreconnect)
      {
          db_config.conn = osdb_connect(db_config.host, db_config.user, 
!                                       db_config.pass, db_config.db,
!                                       db_config.port,db_config.sock);
  
          /* If we are able to reconnect, keep going */
          if(db_config.conn)


OSSEC home | Main Index | Thread Index


OSSEC project: www.ossec.net.
Mailling list information: http://www.ossec.net/en/mailing_lists.html.