FreeRADIUS 2.1.8 fails to build when configured --without-pthreads

Alan DeKok aland at deployingradius.com
Tue Apr 20 22:38:10 CEST 2010


Scott Neugroschl wrote:
> diff -C 1 -c listings:

  Please also see doc/DIFFS.

> *** freeradius-server-2.1.8/libltdl/ltdl.c Wed Dec 30 07:44:35 2009
> --- freeradius-server-2.1.8/libltdl/ltdl.c.new Tue Apr 20 07:25:27 2010
> ***************
> *** 2442,2453 ****
>   
>     while (loader)
>       {
>         if (useloader && strcmp(loader->loader_name, useloader))
>   	{
>   	  loader = loader->next;
>   	  continue;
>   	}
> !       lt_user_data data = loader->dlloader_data;

  What does that do?

> +     lt_user_data data; /* san */

  I would really prefer to see patches without /* san */.  It's
unnecessary, and it complicates the code.

> + #else /* BEGIN SAN */
> + #ifdef __TANDEM
> + #define ss_family __ss_family
> + #endif

  That's a good patch which doesn't affect any other platform.

> *** freeradius-server-2.1.8/src/main/auth.c Wed Dec 30 07:44:35 2009
> --- freeradius-server-2.1.8/src/main/auth.c.new Tue Apr 20 09:28:18 2010
> ***************
> *** 175,183 ****
>   	 */
>   	cur_config_item = request->config_items;
>   	while(((auth_type_pair = pairfind(cur_config_item, PW_AUTH_TYPE)))
> != NULL) {
>   		auth_type = auth_type_pair->vp_integer;
>   		auth_type_count++;
> ! 		DICT_VALUE *dv = dict_valbyattr(auth_type_pair->attribute,
>   						auth_type_pair->vp_integer);

  I don't see why that's necessary.

> *** freeradius-server-2.1.8/src/main/command.c Wed Dec 30 07:44:35 2009
> --- freeradius-server-2.1.8/src/main/command.c.new Tue Apr 20 09:33:16 2010
> ***************
> *** 842,848 ****
>   		return 0;
>   	}
>   
> ! 	cf_section2file(fp, client->cs);

  What is that patch supposed to do?

> + 
> + #define WITHOUT_PROXY /* SAN */
> + #define WITHOUT_COA /* SAN */
> + 

  Absolutely not.  Patches which *force* behavior for a particular
platform also *break* behavior for all other platforms.

  The server is supposed to work on platforms other than /* san */.  If
you want to maintain a platform-specific version, learn to use "git".

> *** freeradius-server-2.1.8/src/main/listen.c Wed Dec 30 07:44:35 2009
> --- freeradius-server-2.1.8/src/main/listen.c.new Tue Apr 20 09:33:05 2010
> ***************
> *** 126,132 ****
>   			last_printed = now;
>   		}
>   
> ! 		listener->print(listener, name, sizeof(name));

  I see... "fix" compile warnings by deleting the code.

  Absolutely not.  This shows you haven't spent any time thinking about
any side-effects of the patches.

  After that... I've ignored the rest of your patches.  I don't feel
like double-checking changes which destroy the server.

  Alan DeKok.



More information about the Freeradius-Devel mailing list