Upgrading to FreeRADIUS-3.x
aland at deployingradius.com
Wed Dec 20 15:09:55 CET 2017
On Dec 20, 2017, at 8:39 AM, kiran kumar <kirankumar9856 at gmail.com> wrote:
> We are upgrading FreeRADIUS from 2.x to 3.x, during our work around with
> FreeRADIUS-2.x we have created modules in c/c++. Now we need to update
> these modules as per FR-3.x standards but modules created in c++ code do
> not get compiled (with below errors) even after re-structuring the module
> as FR3.x standards.
Linking C++ libraries to a C program isn't really a good idea. It might work, but C++ is very different from C.
> /usr/include/freeradius/libradius.h:190:25: error: '<anonymous>' declared
> as a 'virtual' field
> unsigned int virtual : 1; //!< for dynamic expansion
Hmm... all of the header files have "extern C" things which *should* tell your C++ compiler to compile the header in "C" mode.
> Is it high necessary that FR-3.x modules are to be written only in c-code ?
> Is there any way to overcome this issue ?
If there's an issue with the headers, we can add patches in to help them compile with C++.
But there are a few related questions... why C++? Why not C? If it's not a lot of code, it should be possible to re-write it in C.
Also, why a custom module? If it's useful code, it's good to send the code back so that everyone else can use it.
What you're doing now is really creating a private / proprietary fork of FreeRADIUS, and then asking us to support it. That's not something we can really help you with.
More information about the Freeradius-Users