rlm_sqlippool load failure

Francisco Gimeno kikov79 at gmail.com
Thu Oct 19 08:14:10 CEST 2006


Hello!

This is my first post in the list, so please excuse any eventual problem I
could cause.

I'm running a FreeRadius 1.1.3 server with the Debian patches and a little
patch I made to correct the NAS-Port known behaviour for fixed NAS-Port.

I would like to test the rlm_sqlippool module, but I can't get it work. I
finally got it compiled using this settings:
-----------------------
package         = freeradius
debiandir       = $(shell pwd)/debian
freeradius_dir  = $(debiandir)/$(package)

mandir          = /usr/share/man
libdir          = /usr/lib/$(package)
logdir          = /var/log/$(package)
pkgdocdir       = /usr/share/doc/$(package)
raddbdir        = /etc/$(package)

confflags += --build $(DEB_HOST_GNU_TYPE)
buildssl=--with-rlm_sql_postgresql_lib_dir=`pg_config --libdir`
--with-rlm_sql_postgresql_include_dir=`pg_config --includedir`

        ./configure \
                $(confflags) \
                --prefix=/usr \
                --exec-prefix=/usr \
                --mandir=$(mandir) \
                --sysconfdir=/etc \
                --libdir=$(libdir) \
                --datadir=/usr/share \
                --localstatedir=/var \
                --with-raddbdir=$(raddbdir) \
                --with-logdir=/var/log/$(package) \
                --enable-ltdl-install=no --enable-strict-dependencies \
                --with-large-files --with-udpfromto --with-edir \
                --enable-developer \
                ${buildssl} \
                --with-system-libtool \
                --with-experimental-modules \
                --without-rlm_python

-------------

In my config, I'm using the proposed sqlippool.conf provided in the examples
directory.
        $INCLUDE  ${confdir}/sqlippool.conf in the module section.

I do the Auth with LDAP, and I have enabled in accounting and post-auth
sections the sqlippool module.
As I don't see the way to configure the sql settings, I finally added the
postgresql.conf provided file with my customized settings (db, dbuser,
dbpasword, dbhost, and so... ). I wouldn't like to enable it, but I don't
find any other way to "configure" those settings.

When executing freeradius -X I can see the following:
--------------
Module: Loaded SQL IP Pool
 sqlippool: sql-instance-name = "sql"
 sqlippool: lease-duration = 3600
 sqlippool: pool-name = ""
 sqlippool: allocate-begin = "BEGIN"
 sqlippool: allocate-clear = "UPDATE radippool   SET nasipaddress = '',
pool_key = 0, callingstationid = '',   expiry_time = 'now'::timestamp(0) -
'1 second'::interval   WHERE pool_key = '%{Calling-Station-Id}'"
 sqlippool: allocate-find = "SELECT framedipaddress FROM radippool   WHERE
pool_name = '%{reply:Pool-Name}' AND expiry_time < 'now'::timestamp(0)
ORDER BY pool_name, (username <> '%{User-Name}'), (callingstationid <>
'%{Calling-Station-Id}'), expiry_time   LIMIT 1   FOR UPDATE"
 sqlippool: allocate-update = "UPDATE radippool   SET nasipaddress =
'%{NAS-IP-Address}', pool_key = '%{Calling-Station-Id}',   callingstationid
= '%{Calling-Station-Id}', username = '%{User-Name}',   expiry_time =
'now'::timestamp(0) + '3600 second'::interval   WHERE framedipaddress =
'%I'"
 sqlippool: allocate-commit = "COMMIT"
 sqlippool: allocate-rollback = "ROLLBACK"
 sqlippool: start-begin = "BEGIN"
 sqlippool: start-update = "UPDATE radippool   SET expiry_time =
'now'::timestamp(0) + '%J second'::interval   WHERE nasipaddress = '%n' AND
nas_port = '%p' AND pool_name = '%P'"
 sqlippool: start-commit = "COMMIT"
 sqlippool: start-rollback = "ROLLBACK"
 sqlippool: alive-begin = "BEGIN"
 sqlippool: alive-update = "UPDATE radippool   SET expiry_time =
'now'::timestamp(0) + '3600 seconds'::interval   WHERE nasipaddress =
'%{Nas-IP-Address}' AND pool_key = '%{Calling-Station-Id}' AND username =
'%{User-Name}'   AND callingstationid = '%{Calling-Station-Id}' AND
framedipaddress = '%{Framed-IP-Address}'"
 sqlippool: alive-commit = "COMMIT"
 sqlippool: alive-rollback = "ROLLBACK"
 sqlippool: stop-begin = "BEGIN"
 sqlippool: stop-clear = "UPDATE radippool   SET nasipaddress = '', pool_key
= 0, callingstationid = '',   expiry_time = 'now'::timestamp(0) - '1
second'::interval   WHERE nasipaddress = '%{Nas-IP-Address}' AND pool_key =
'%{Calling-Station-Id}' AND username = '%{User-Name}'   AND callingstationid
= '%{Calling-Station-Id}' AND framedipaddress = '%{Framed-IP-Address}'"
 sqlippool: stop-commit = "COMMIT"
 sqlippool: stop-rollback = "ROLLBACK"
 sqlippool: on-begin = "BEGIN"
 sqlippool: on-clear = "UPDATE radippool   SET nasipaddress = '', pool_key =
0, callingstationid = '',   expiry_time = 'now'::timestamp(0) - '1
second'::interval   WHERE nasipaddress = '%{Nas-IP-Address}' AND username =
'%{User-Name}'   AND callingstationid = '%{Calling-Station-Id}' AND
framedipaddress = '%{Framed-IP-Address}'"
 sqlippool: on-commit = "COMMIT"
 sqlippool: on-rollback = "ROLLBACK"
 sqlippool: off-begin = "BEGIN"
 sqlippool: off-clear = "UPDATE radippool   SET nasipaddress = '', pool_key
= 0, callingstationid = '',   expiry_time = 'now'::timestamp(0) - '1
second'::interval   WHERE nasipaddress = '%{Nas-IP-Address}' AND username =
'%{User-Name}'   AND callingstationid = '%{Calling-Station-Id}' AND
framedipaddress = '%{Framed-IP-Address}'"
 sqlippool: off-commit = "COMMIT"
 sqlippool: off-rollback = "ROLLBACK"
Module: Loaded SQL
 sql: driver = "rlm_sql_postgresql"
 sql: server = "MY_POSTGRESQL_SERVER_IP"
 sql: port = ""
 sql: login = "MY_POSTGRESQL_USER"
 sql: password = "MY_POSTGRESQL_PASSWORD"
 sql: radius_db = "MY_POSTGRESQL_DB"
 sql: nas_table = "nas"
 sql: sqltrace = yes
 sql: sqltracefile = "/var/log/freeradius/sqltrace.sql"
 sql: readclients = no
 sql: deletestalesessions = yes
 sql: num_sql_socks = 5
 sql: sql_user_name = "%{User-Name}"
 sql: default_user_profile = ""
 sql: query_on_not_found = no

.
.
.
 sql: group_membership_query = "SELECT GroupName FROM usergroup WHERE
UserName='%{SQL-User-Name}'"
 sql: connect_failure_retry_delay = 60
 sql: simul_count_query = ""
 sql: simul_verify_query = ""
 sql: postauth_query = "INSERT INTO radpostauth (username, pass, reply,
authdate) VALUES ('%{User-Name}', '%{User-Password:-Chap-Password}',
'%{reply:Packet-Type}', NOW())"
 sql: safe-characters =
"@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /"
rlm_sql (sql): Driver rlm_sql_postgresql (module rlm_sql_postgresql) loaded
and linked
rlm_sql (sql): Attempting to connect to radiusdbuser at 10.160.2.74:/radiusdb
rlm_sql (sql): starting 0
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #0
rlm_sql (sql): Connected new DB handle, #0
rlm_sql (sql): starting 1
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #1
rlm_sql (sql): Connected new DB handle, #1
rlm_sql (sql): starting 2
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #2
rlm_sql (sql): Connected new DB handle, #2
rlm_sql (sql): starting 3
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #3
rlm_sql (sql): Connected new DB handle, #3
rlm_sql (sql): starting 4
rlm_sql (sql): Attempting to connect rlm_sql_postgresql #4
rlm_sql (sql): Connected new DB handle, #4
Module: Instantiated sql (sql)
freeradius: relocation error: /usr/lib/freeradius/rlm_sqlippool-1.1.3.so:
undefined symbol: sql_get_socket

----------------

The strange thing is that the sql module seems initialized, but sqlippool
doesn't load.
I looked the sql_get_socket function over the code, and I found it in the
sql.c file in the rlm_sql module. Furthermore, I see that function being
compiled and linked in the rlm_sql.so file as it's shown here:
---------
[08:11:33] fgd at myBox:/home/fgd/src/freeradius-1.1.3/src/modules/rlm_sql/.libs#
nm rlm_sql.so | grep sql_get_socket
000047f0 T sql_get_socket
---------

I don't know how to force it to be loaded... any hint?

Thanks you!
Francisco Gimeno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeradius.org/pipermail/freeradius-users/attachments/20061019/c0a1e8c5/attachment.html>


More information about the Freeradius-Users mailing list