FreeRADIUS InkBridge

FreeRADIUS Development

As the name suggests, FreeRADIUS is developed under the GNU General Public License, Version 2 (GPLv2). We invite anyone to use and contribute code to the project. The following information should be helpful to those who want to contribute.

The official FreeRADIUS v4 developer guidelines are also online at the project’s website.

Key resources for developers include:

  • Developers Section: This part of the official documentation covers topics like bug reporting, coding methods, module interfaces, and buffer handling.

  • Module Interface Documentation: This resource explains how to develop modules for the FreeRADIUS server.

  • GitHub Repository: The source code and all documentation files are on GitHub, giving developers access to the latest information and a way to contribute.

  • Development mailing list: We encourage everyone who might contribute code to join the FreeRADIUS development list. This list is highly technical and isn’t for most users of the server. Only subscribe to the development list if you are interested in writing software for the new server. For normal discussion of the server and how to use it, subscribe to the FreeRADIUS user-list.

Bugs

If the server crashes due to memory errors, report it to the issue tracker with debugging info. For other issues, discuss them on the users mailing list.

Coding Methods

This is a short set of guidelines to follow when programming. Coding standards focus on function names, code appearance, and consistency.

Code Coverage

The gcov tool analyzes your programs. It helps you create efficient code and find untested areas.

Profiling

The gperftools (Google Performance Tools) help you find memory leaks, analyze performance issues, and optimize your code.

Semantic Patches

Coccinelle analyzes and transforms C code to create Semantic Patch Language (SmPL) patches.

Contributing

Development of FreeRADIUS is done using Github. Please submit issues, bugs, patches, etc. there. Additional instructions are online or within this section.

Module Interface

The purpose of modules is to handle small, simple tasks when RADIUS packets arrive. The module framework is built to process incoming RADIUS packets. It is also highly customizable.

Release Method

Review the steps to push or update a release.

Buffer Management

FreeRADIUS provides APIs to handle Data and String buffers enabling devlopers to streamline their coding and processes.

More Information

The two most important RADIUS RFC’s and drafts are RFC2865 and RFC2866. These are the new RFCs, which replace the old ones, RFC2138 and RFC2139.

Also see the build dependencies page.