[PATCH]OpenWrt Asterisk DNS problem

Eugene Rudoy gene.devel at gmail.com
Sat Sep 14 10:32:22 UTC 2013


Hi Christian,

this is a known problem (s.
http://lists.uclibc.org/pipermail/uclibc/2013-August/047885.html).
Unfortunately Bernhard had yet no time to take a look at it (this is at
least how I interpret his missing response).

@Bernhard: without wanting to hurry you along, is there any progress on the
issue? Thanks!

Best,
Gene


On Fri, Sep 13, 2013 at 5:25 PM, Christian <chennek at 123mail.org> wrote:

> Hello all,
>
>
>
> OpenWrt's Asterisk package (at least version 1.8 and 11) has problems with
> DNS requests. See the following OpenWrt ticket:
>
> https://dev.openwrt.org/ticket/11929
>
>
>
> The problem seems to be a an issue in uClibc 0.9.33.2 resolv.c. Someone
> there named marko made a uClibc patch for it which solves the bug.
>
> https://dev.openwrt.org/attachment/ticket/11929/560-res_init_asterisk.patch
>
> More details for the patch are in the ticket.
>
>
>
> For the developers at OpenWrt it seems a strange problem because it only
> affects certain DNS lookups. We are hoping someone upstream could take a
> look at it and tell if the patch makes sense and possibly include it in
> uClibc.
>
>
>
> Thanks,
>
>
>
> Christian
>
>
>
>
>
> --- a/libc/inet/resolv.c
>
> +++ b/libc/inet/resolv.c
>
> @@ -3580,35 +3580,6 @@
>
> }
>
> #endif
>
> -/* This needs to be after the use of _res in res_init, above.  */
>
> -#undef _res
>
> -
>
> -#ifndef __UCLIBC_HAS_THREADS__
>
> -/* The resolver state for use by single-threaded programs.
>
> -   This differs from plain `struct __res_state _res;' in that it
>
> doesn't
>
> -   create a common definition, but a plain symbol that resides in .bss,
>
> -   which can have an alias.  */
>
> -struct __res_state _res __attribute__((section (".bss")));
>
> -struct __res_state *__resp = &_res;
>
> -#else /* __UCLIBC_HAS_THREADS__ */
>
> -struct __res_state _res __attribute__((section (".bss")))
>
> attribute_hidden;
>
> -
>
> -# if defined __UCLIBC_HAS_TLS__
>
> -#  undef __resp
>
> -__thread struct __res_state *__resp = &_res;
>
> -/*
>
> - * FIXME: Add usage of hidden attribute for this when used in the
>
> shared
>
> - *        library. It currently crashes the linker when doing section
>
> - *        relocations.
>
> - */
>
> -extern __thread struct __res_state *__libc_resp
>
> -       __attribute__ ((alias ("__resp"))) attribute_hidden;
>
> -# else
>
> -#  undef __resp
>
> -struct __res_state *__resp = &_res;
>
> -# endif
>
> -#endif /* !__UCLIBC_HAS_THREADS__ */
>
> -
>
> static unsigned int
>
> res_randomid(void)
>
> {
>
> @@ -3664,6 +3635,36 @@
>
> }
>
> libc_hidden_def(res_init)
>
> +/* This needs to be after the use of _res in res_init, above.  */
>
> +#undef _res
>
> +
>
> +#ifndef __UCLIBC_HAS_THREADS__
>
> +/* The resolver state for use by single-threaded programs.
>
> +   This differs from plain `struct __res_state _res;' in that it
>
> doesn't
>
> +   create a common definition, but a plain symbol that resides in .bss,
>
> +   which can have an alias.  */
>
> +struct __res_state _res __attribute__((section (".bss")));
>
> +struct __res_state *__resp = &_res;
>
> +#else /* __UCLIBC_HAS_THREADS__ */
>
> +struct __res_state _res __attribute__((section (".bss")))
>
> attribute_hidden;
>
> +
>
> +# if defined __UCLIBC_HAS_TLS__
>
> +#  undef __resp
>
> +__thread struct __res_state *__resp = &_res;
>
> +/*
>
> + * FIXME: Add usage of hidden attribute for this when used in the
>
> shared
>
> + *        library. It currently crashes the linker when doing section
>
> + *        relocations.
>
> + */
>
> +extern __thread struct __res_state *__libc_resp
>
> +       __attribute__ ((alias ("__resp"))) attribute_hidden;
>
> +# else
>
> +#  undef __resp
>
> +struct __res_state *__resp = &_res;
>
> +# endif
>
> +#endif /* !__UCLIBC_HAS_THREADS__ */
>
> +
>
> +
>
> /*
>
>   * Set up default settings.  If the configuration file exist, the
>
>   values
>
>   * there will have precedence.  Otherwise, the server address is set to
>
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc
>


More information about the uClibc mailing list