compiler warning on freebsd

Alexey Melnikov alexey.melnikov at isode.com
Tue Sep 20 07:26:24 EDT 2011


Julien ÉLIE wrote:

>Hi Alexey,
>  
>
Hi Julien,

>>This is not Cyrus SASL code, right?
>>    
>>
>Yes, you're right.  It is the implementation of the AUTHINFO SASL
>extension in INN.
>  
>
>>If that is the case, you would need 
>>to update it to typecast pointers to functions.
>>saslplug.h defines:
>>
>>typedef int (*sasl_callback_ft)(void);
>>    
>>
>>>caused by the second arguments of:
>>>
>>>/* callbacks we support */
>>>static sasl_callback_t saslcallbacks[] = {
>>>{
>>>SASL_CB_GETREALM, &getsimple, NULL
>>>      
>>>
>>This needs to become something like:
>>
>>SASL_CB_GETREALM, (sasl_callback_ft) &getsimple, NULL
>>    
>>
>It works but... only with new Cyrus SASL 2.1.25.
>If I compile it with the previous 2.1.24 version, it breaks:
>
>  error: 'sasl_callback_ft' undeclared here (not in a function)
>
>
>I do not clearly see in the changelog of 2.1.25 that new types should
>be used.
>  
>
It doesn't have to be. You can typecast to the proper type yourself.

>A diff between 2.1.24 and 2.1.25 clearly shows that sasl_callback_ft
>is new in 2.1.25:
>
>
>@@ -33,9 +33,10 @@
>  *  SASL_FAIL -- unable to find a callback of the requested type
>  *  SASL_INTERACT -- caller must use interaction to get data
>  */
>+typedef int (*sasl_callback_ft)(void);
> typedef int sasl_getcallback_t(sasl_conn_t *conn,
> 			       unsigned long callbackid,
>-			       int (**pproc)(),
>+			       sasl_callback_ft * pproc,
> 			       void **pcontext);
>
>
>
>Why such a change?
>  
>
Well, you complained about other errors I thought I push some of my own 
changes to fix it.

>If a user upgrades Cyrus SASL on his machine, it will trigger this error.
>  
>
It is a warning on most systems.

>Besides, adding in INN a special "#ifdef sasl_callback_ft" is not very
>attractive.
>  
>
I can add something like
#define SASL_CALLBACK_FT_DEFINED

which you can test to see if the new typedef is available. This will be 
included in 2.1.26 and later versions.
Would this help?




More information about the Cyrus-sasl mailing list