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