This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: struct hostent


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]