Can you craft a small C program to replicate the behaviour?





adrian

2009/5/24 Guido Serassio <guido.seras...@acmeconsulting.it>:
> Hi,
>
> One user has reported a very strange problem using cache_peer directive on
> 2.7 STABLE6 running on Windows:
>
> When using the following config:
>
> cache_peer 192.168.0.63 parent 3329 0 no-query
> cache_peer rea.acmeconsulting.loc parent 3328 3130
>
> the result is always:
>
> 2009/05/23 12:35:28| Configuring 192.168.0.63 Parent 192.168.0.63/3329/0
> 2009/05/23 12:35:28| Configuring rea.acmeconsulting.loc Parent
> rea.acmeconsulting.loc/13/3130
>
> Very odd ....
>
> Debugging the code, I have found where is situated the problem.
>
> The following if GetService() from cache_cf.c:
>
> static u_short
> GetService(const char *proto)
> {
>    struct servent *port = NULL;
>    char *token = strtok(NULL, w_space);
>    if (token == NULL) {
>        self_destruct();
>        return -1;              /* NEVER REACHED */
>    }
>    port = getservbyname(token, proto);
>    if (port != NULL) {
>        return ntohs((u_short) port->s_port);
>    }
>    return xatos(token);
> }
>
> When the value of port->s_port is 3328, ntohs() always returns 13.
> Other values seems to work fine.
>
> Any idea ?
>
> Regards
>
> Guido
>
>
>
> -
> ========================================================
> Guido Serassio
> Acme Consulting S.r.l. - Microsoft Certified Partner
> Via Lucia Savarino, 1           10098 - Rivoli (TO) - ITALY
> Tel. : +39.011.9530135  Fax. : +39.011.9781115
> Email: guido.seras...@acmeconsulting.it
> WWW: http://www.acmeconsulting.it/
>
>

Reply via email to