[Kamailio-Devel] [SR-Dev] [PATCH 1/8] Define OPENSER_MOD_INTERFACE in Makefile.

Jan Janak jan at iptel.org
Tue Mar 17 21:58:22 CET 2009


On 17-03 12:29, Henning Westerholt wrote:
> On Tuesday 17 March 2009, Jan Janak wrote:
> > > thank you for the patches, i've commited them to master. The only
> > > remaining error (after /lib/kcore/km_crc was merged) is some
> > > incompatiblity with the LM_GEN1 macro from dprint.h.
> >
> > Henning,
> >
> > any preferences on how to fix this? Carrierroute module in the sip-router
> > master branch currently does not compile.
> 
> Hi Jan,
> 
> cr seems to be the only module that use LM_GEN1 with variable argument list, 
> so probably it make sense to fix it in the module. Patch attached, as my sr 
> tree behaves strange at the moment. It shows dozens of files as new, which i 
> don't modified.
> 
> Cheers,
> 
> Henning

> diff --git a/modules/carrierroute/cr_config.c b/modules/carrierroute/cr_config.c
> index 48975a5..f8e587e 100644
> --- a/modules/carrierroute/cr_config.c
> +++ b/modules/carrierroute/cr_config.c
> @@ -50,8 +50,15 @@
>   * @param ap format arguments
>   */
>  static void conf_error(cfg_t *cfg, const char * fmt, va_list ap) {
> -	// FIXME this don't seems to work reliable, produces strange error messages
> -	LM_GEN1(L_ERR, (char *) fmt, ap);
> +	char buf[1024];
> +
> +	if (vsnprintf(buf, sizeof(buf), fmt, ap) < 0) {
> +		LM_ERR("could not print error message\n");
> +	} else {
> +		// FIXME this don't seems to work reliable in all cases, charset problems
> +		LM_GEN1(L_ERR, "%s", buf);
> +	}
> +	va_end(ap);

The function which calls the error handler in libconfuse already calls va_end
when the handler finishes, so either you should call va_start at the beginning
of this function or you should remove va_end from this function. See confuse.c,
search for cfg_error function.

   Jan.



More information about the Devel mailing list