BSDRadius 0.7.1 changelog
New features:
- SQLite support.
To use SQLite with BSDRadius install pysqlite2 Python module. You can find it here.
To enable SQLite support in BSDRadius take a look at DATABASE section in BSDRadius's main configuration file - bsdradiusd.conf.
Set enable to yes
Set type to sqlite
Set name to path to database data file (e.g /usr/local/var/db/bsdradius.db)
Bugfixes:
- Fixed an incredibly stupid typo/bug which caused RadiusDeque.num_acct variable to be deleted when maximum number of authorization packets has been received. Em... it would make server never come back from logging all packets to HDD after this error occurs.
- Removed unneccessary CHAP challenge length verification
- Cleaned up code in mod_digest.py and other places
- Fixed various small bugs in RadClient.py
- Fixed some typos in unittests
Other changes:
- Added unittests for RadClient.py
- Added OpenSER dictionary
Permalink
BSDRadius 0.7.0 changelog
New features:
- Added new configure option: "pythonpath". Use this setting in configuration files for BSDRadius modules to update sys.path. sys.path is list of directories where python interpreter looks for python modules and packages. See etc/user_modules.conf for example usage.
Other changes:
- Webstuff - library for general use in networked (probably web) environment has been integrated in BSDRadius. It lives it's life as separate project in SVN repository and is considered to grow up and become an enterprise level library with simple but powerful web framework included.
- bsdradius.logger module has been hacked to use webstuff.logger module transparently (see the source if you are interested in what magic is used to make it done :)). This is the first step in BSDRadius and webstuff integration. If you use bsdradius.logger in your applications please substitute all references to "bsdradius.logger" with "bsdradius.webstuff.logger". bsdradius.logger module is scheduled for removal in next minor release (BSDRadius 0.8.0).
- It is now necessary to run logger.createOutputHandlers() after changing
output prefixes/postfixes or changing any of show
settings. I know that this is uncomfortable behaviour and it is subject to change. - Added a little bit modified sql schema for postgresql 8.1
- Removed misc.fprintException() because it has never been used
- Added unittests for misc.py, BsdRadiusModule.py and BsdRadiusServer.py
Permalink
BSDRadius 0.6.2 changelog
New features:
-
Resolved ticket #2
Added new option to bsdradius.conf file: clients_query
You can use this option to adjust sql query which fetches valid RADIUS server clients from database. This option allows to integrate BSDRadius in your systems much easier.
Bugfixes:
- Resolved ticket #3
bsdradius.misc.parseDatetime() now parses ISO datetime string correctly. All issues regarding mili and micro seconds also are resolved. - Packet processing is safe now. Listen thread should not stop anymore when invalid packet received.
Other changes:
- Changed path to interpreter to: /usr/bin/env python
- Added ".sample" extension to all config files. It will be safer to install them now.
- Fixed setup.py script to use os.path.join() for path concatenation. This is one more step closer to Windows compatibility.
- setup.py script now overwrites all installed files and creates .conf files from .conf.sample if necessary.
Permalink
BSDRadius 0.6.0 changelog
New features:
- RADIUS client is implemented and available togeather with BSDRadius.
You can find it in tools directory (usually: /usr/local/share/bsdradius/tools/bsdradclient.py). There is also sample configuration file for RADIUS client: bsdradclient.conf. Configuration file contains parameters which will be sent to RADIUS server. - There is new configuration paramter - "fast_accounting" - in SERVER section
of main configuration file
Now it is possible to switch on and off sending accounting accept message before actually processing it. This feature may dramatically speed up accounting message processing and avoid logging duplicate accounting requests. But it also increases the risk that you could lose accounting data if there's not enough place for logging request data on hard disk. The same could happen if BSDRadius is not allowed (due to filesystem permissions) to write the accounting message log file. - It is possible to configure behavior of dump_packet server module.
You can enable/disable logging of failed and unhandled authorization and accounting packets. Take a look at new configuration file: dump_packet.conf Usually it is located in /usr/local/etc/bsdradius directory. To log all received accounting or authorization packets add "dump_packet" to contents of "modules" parameter in AUTHORIZATION and/or ACCOUNTING sections in main configuration file. - Added makeDigestAttributes() method to DigestAuth class in DigestAuth.py.
This method takes locally stored digest attributes and prepares them for sending to RADIUS server. It is very useful for building digest aware RADIUS clients. - Added RadClient class as abstraction layer to RADIUS server client.
You can use this class for even more comfortable building of RADIUS server clients.
Bugfixes:
- DatabaseConnection class is almost completely thread safe.
There are only two methods which are nearly impossible to be thread safe: getAffectedRowCount and getLastInsertId. These methods operate with results of previous query. It is impossible to to use internal locks here. Use your own locks around statements which use these methods. - BSDRadius now checks if connection to database is still up when refreshing radius client data.
- Fixed small bug in mod_preprocess server module.
It used to split all values which contain "=" symbols. Since "=" may appear in crypted attributes, checksums and other stuff there is list of attributes which will be skipped while fixing VSA's. Currently this list contains Request-Authenticator and User-Password. - Mod_preprocess server module now uses %r instead of %s for printing attribute names and values. It is neccessary to avoid screwing terminal when printing some weird symbols from crypted attributes.
- Since psycodb acts weird when calling built-in method commit() we are forced to execute "COMMIT" query directly on server.
- Merged some changes from wiggy's
(www.wiggy.net) pyrad 0.9
- Fix wrong variable name in exception raised when encountering an overly long packet.
http://code.wiggy.net/tracker/pyrad/ticket/4
- Packet.CreateAuthenticator is now a static method.
http://code.wiggy.net/tracker/pyrad/ticket/8
- Dump_packet server module now raises exception if it can not write to the file.
Other changes:
- DatabaseConnection has survived small refactoring. Now it is safer to reconnect when database connection dies.
- BsdRadiusServer.py also has been refactored a little. There's new class - BaseThread - which contains methods and attributes common to derived server thread classes: WorkingThread and ListenThread.
- Moved parseDatetime() from mod_sql.py to misc.py because others also may wish to use it.
- Renamed "config" to "radParsedConfig" in context of user and server modules.
Permalink
BSDRadius 0.5.0 changelog
New features:
- New BSDRadius module configuration option: enable
Use it to enable/disable BSDRadius modules
- New BSDRadius module configuration option: configfile.
Use it to set path to custom configuration file for your module.
Parsed bsdradius.Config.Config class instance will be available in loaded BSDRadius module as global variable with name: config
Example:# in user_modules.conf: [my_module] configfile = my_module.conf accounting_module = my_module accounting_function = authorization # in my_module.py: from bsdradius.logger import * def accounting(received): if config == None: error ('No configuration data was parsed') else: debug ("Parsed configuration: ", config) - Added mod_sql - BSDRadius server module for easy user data access and CDR logging into database. You can enable the module by editing modules.conf and changing setting "enable" to "yes" in section "sql".
- Added mod_usersfile - BSDRadius server module for static user file access. Use it to keep list of static users into plain text file. This module is for authorization/authentication only.
- Added MySQL table structure (sql/bsdradius.mysql.sql)
- Added lots of info in README file. It should be enough for new users to get on.
- BSDRadius module "preprocess" is able to get done with messed up
VSA's which contain attribute names in their values.
Example:h323-setup-time: h323-setup-time=*14:10:10.241 GMT Sun Mar 28 2006 converts to h323-setup-time: *14:10:10.241 GMT Sun Mar 28 2006
New items are added to request data if neccessary.
Bugfixes:
- Fixed dbadapterName bug in DatabaseConnection.
Now it is truly possible to use multiple database engines within one BSDRadius server installation. - Fixed bug in bsdradius.ConfigDb.
BSDRadius uses DatabaseConnection.execGetRows() instead of DatabaseConnection.execGetDict() for client data fetching from database. This step was neccessary because MySQLdb does not fully support DBAPI 2.0 - dictfetchall() is not implemented. - Fixed error in showing version number in CLI
Other changes:
- Executing startup and shutdown modules is more verbose now.
- Added t_rm_finished_call trigger in postgresql table structure.
It deletes call records from active calls table when accounting stop message received. This trigger is made for using togeather with mod_sql BSDRadius server module.