mason@PESCADERO.STANFORD.EDU (07/23/87)
I'm not sure if anyone else has found/reported this bug, but I thought it
would be a good idea to report it/ask about it.
(XV10R4 on a VAX 8350, Ultrix-32 V2.0)
In 4.3BSD systems which use the new structure definition for host entries has
been changed, I have had some problem with XOpenDisplay crashing (in bcopy).
What I did was change the reference from host_ptr->h_addr, (which transforms
via cpp to host_ptr->h_addr_list[0]) to host_ptr->h_addr_list. I've posted
context diff at the end of this note. I placed #ifdefs in it that should
make it work on either type of system, but I only tested it with the
change.
(XV11-beta.1 on a VAX 8350, Ultrix-32 V2.0)
Also, I've been having some problems under Ultrix 2.0 with the header file
sys/type.h. Has anyone else experienced this problem? I suspect a bug in
the compiler but cannot confirm this.
Tony Mason
Distributed Systems Group
Stanford University
mason@pescadero.stanford.edu
-------- XOpenDisplay.c diff --------
*** XOpenDisplay.c Thu Jul 23 13:45:55 1987
--- ../Xlib/XOpenDisplay.c Wed Dec 24 06:08:57 1986
***************
*** 105,112
/* Set up the socket data. */
inaddr.sin_family = host_ptr->h_addrtype;
! #ifdef h_addr
! bcopy((char *)host_ptr->h_addr_list,
(char *)&inaddr.sin_addr,
sizeof(inaddr.sin_addr));
#else /* not h_addr */
--- 105,111 -----
/* Set up the socket data. */
inaddr.sin_family = host_ptr->h_addrtype;
! bcopy((char *)host_ptr->h_addr,
(char *)&inaddr.sin_addr,
sizeof(inaddr.sin_addr));
} else {
***************
*** 109,119
bcopy((char *)host_ptr->h_addr_list,
(char *)&inaddr.sin_addr,
sizeof(inaddr.sin_addr));
- #else /* not h_addr */
- bcopy((char *)host_ptr->h_addr_list,
- (char *)&inaddr.sin_addr,
- sizeof(inaddr.sin_addr));
- #endif /* h_addr */
} else {
inaddr.sin_family = AF_INET;
}
--- 108,113 -----
bcopy((char *)host_ptr->h_addr,
(char *)&inaddr.sin_addr,
sizeof(inaddr.sin_addr));
} else {
inaddr.sin_family = AF_INET;
}