
unixodbc Module

Marco Lorrai

   abbeynet.it

Edited by

Marco Lorrai

   Copyright © 2005, 2006 Marco Lorrai
     _________________________________________________________

   Table of Contents
   1. User's Guide

        1.1. Overview
        1.2. Dependencies

              1.2.1. OpenSER Modules
              1.2.2. External Libraries or Applications

        1.3. Exported Parameters

              1.3.1. ping_interval (int)
              1.3.2. auto_reconnect (int)
              1.3.3. use_escape_common (int)

        1.4. Exported Functions
        1.5. Installation & Running

              1.5.1. Installing
              1.5.2. Configuring & Running

   2. Developer's Guide
   3. Frequently Asked Questions

   List of Examples
   1-1. Set the "ping_interval" parameter
   1-2. Set the "auto_reconnect" parameter
   1-3. Set the "use_escape_common" parameter
     _________________________________________________________

Chapter 1. User's Guide

1.1. Overview

   This module allows to use the unixodbc package with OpenSER.
   It have been tested with mysql and the odbc connector, but it
   should work also with other database. The auth_db module
   works.

   For more information, see the http://www.unixodbc.org/ project
   web page.

   To see what DB engines can be used via unixodbc, look at
   http://www.unixodbc.org/drivers.html.
     _________________________________________________________

1.2. Dependencies

1.2.1. OpenSER Modules

   The following modules must be loaded before this module:

     * No dependencies on other OpenSER modules.
     _________________________________________________________

1.2.2. External Libraries or Applications

   The following libraries or applications must be installed
   before running OpenSER with this module loaded:

     * None.
     _________________________________________________________

1.3. Exported Parameters

1.3.1. ping_interval (int)

   Sets the ping time interval.

   Default value is "300" seconds. 

   Example 1-1. Set the "ping_interval" parameter
...
modparam("unixodbc", "ping_interval", 600)
...
     _________________________________________________________

1.3.2. auto_reconnect (int)

   Turns on or off the auto_reconnect mode.

   Default value is "1", this means it is enabled. 

   Example 1-2. Set the "auto_reconnect" parameter
...
modparam("unixodbc", "auto_reconnect", 0)
...
     _________________________________________________________

1.3.3. use_escape_common (int)

   Escape values in query using internal escape_common()
   function. It escapes single quote ''', double quote '"',
   backslash '\', and NULL characters.

   You should enable this parameter if you know that the ODBC
   driver considers the above characters as special (for marking
   begin and end of a value, escape other characters ...). It
   prevents against SQL injection.

   Default value is "0" (0 = disabled; 1 = enabled). 

   Example 1-3. Set the "use_escape_common" parameter
...
modparam("unixodbc", "use_escape_common", 1)
...
     _________________________________________________________

1.4. Exported Functions

   NONE
     _________________________________________________________

1.5. Installation & Running

1.5.1. Installing

   Prerequirement: you should first install unixodbc (or another
   program that implements the odbc standard, such iodbc), your
   database, and the right connector. Set the DSN in the odbc.ini
   file and the connector drivers in the odbcinst.ini file.
     _________________________________________________________

1.5.2. Configuring & Running

   In the openser.conf file, add the line:
....
loadmodule "/usr/local/lib/openser/modules/unixodbc.so"
....

   You should also uncomment this:
....
loadmodule "/usr/local/lib/openser/modules/auth.so"
loadmodule "/usr/local/lib/openser/modules/auth_db.so"
modparam("usrloc", "db_mode", 2)
modparam("auth_db", "calculate_ha1", yes)
modparam("auth_db", "password_column", "password")
....

   and setting the DSN specified in the odbc.ini, inserting this
   with the url adding this line:
....
modparam("usrloc|auth_db", "db_url",
    "unixodbc://openser:openserrw@localhost/my_dsn")
....

   replacing my_dsn with the correct value.

   HINT: if unixodbc don't want to connect to mysql server, try
   restarting mysql server with:
shell>safe_mysqld --user=mysql --socket=/var/lib/mysql/mysql.sock

   The connector search the socket in /var/lib/mysql/mysql.sock
   and not in /tmp/mysql.sock
     _________________________________________________________

Chapter 2. Developer's Guide

   The module implements the OpenSER DB API, in order to be used
   by other modules.
     _________________________________________________________

Chapter 3. Frequently Asked Questions

   3.1. Where can I find more about OpenSER?
   3.2. Where can I post a question about this module?
   3.3. How can I report a bug?

   3.1. Where can I find more about OpenSER?

   Take a look at http://openser.org/.

   3.2. Where can I post a question about this module?

   First at all check if your question was already answered on
   one of our mailing lists:

     * User Mailing List -
       http://openser.org/cgi-bin/mailman/listinfo/users
     * Developer Mailing List -
       http://openser.org/cgi-bin/mailman/listinfo/devel

   E-mails regarding any stable OpenSER release should be sent to
   <users@openser.org> and e-mails regarding development versions
   should be sent to <devel@openser.org>.

   If you want to keep the mail private, send it to
   <team@openser.org>.

   3.3. How can I report a bug?

   Please follow the guidelines provided at:
   http://sourceforge.net/tracker/?group_id=139143.
