Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Mon, 10 Jun 2002 14:42:55 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: struct hostent Message-ID: <20020610184255.GB19457@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.3.23.1i On Mon, Jun 10, 2002 at 02:12:19PM -0400, David E Euresti wrote: >Hello everytime I reinstall a new snapshot of cygwin, I have to modify one >header file, netdb.h > >netdb.h in cygwin declares >struct hostent { > const char *h_name; /* official name of host */ > char **h_aliases; /* alias list */ > short h_addrtype; /* host address type */ > short h_length; /* length of address */ > char **h_addr_list; /* list of addresses from name server */ >#define h_addr h_addr_list[0] /* address, for backward compatiblity */ >}; > >Except Solaris declares it as >struct hostent { > char *h_name; /* official name of host */ > char **h_aliases; /* alias list */ > short h_addrtype; /* host address type */ > short h_length; /* length of address */ > char **h_addr_list; /* list of addresses from name server */ >#define h_addr h_addr_list[0] /* address, for backward compatiblity */ >}; > >And even MSDN declares it as >struct hostent { > char FAR * h_name; > char FAR * FAR * h_aliases; > short h_addrtype; > short h_length; > char FAR * FAR * h_addr_list; >}; > >notice how h_name is not const. >Is there any reason why h_name is const in cygwin? Apparently it's to accommodate an ancient hack in gethostbyname for dealing with numeric IP addresses. Looking at gethostbyname, I can see some dreaded static variables; meaning that this function is not really thread-safe. It should be possible to rewrite this to do the right thing, however. Do you have an assignment with Red Hat? We'll gladly accept a patch, if so. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/