****************************************************************************/
static int open_socket_in(int type, int port, struct in_addr *address)
{
- struct hostent *hp;
struct sockaddr_in sock;
- char host_name[MAXHOSTNAMELEN];
int res;
int one=1;
- /* get my host name */
- if (gethostname(host_name, sizeof(host_name)) == -1) {
- rprintf(FERROR,"gethostname failed\n");
- return -1;
- }
-
- /* get host info */
- if ((hp = gethostbyname(host_name)) == 0) {
- rprintf(FERROR,"gethostbyname: Unknown host %s\n",host_name);
- return -1;
- }
-
memset((char *)&sock,0,sizeof(sock));
- memcpy((char *)&sock.sin_addr,(char *)hp->h_addr, hp->h_length);
sock.sin_port = htons(port);
- sock.sin_family = hp->h_addrtype;
+ sock.sin_family = AF_INET;
if (address) {
sock.sin_addr = *address;
} else {
sock.sin_addr.s_addr = INADDR_ANY;
}
- res = socket(hp->h_addrtype, type, 0);
+ res = socket(AF_INET, type, 0);
if (res == -1) {
rprintf(FERROR,"socket failed: %s\n",
strerror(errno));
*/
int is_a_socket(int fd)
{
- int v, l;
+ int v;
+ socklen_t l;
l = sizeof(int);
/* Parameters to getsockopt, setsockopt etc are very
* unstandardized across platforms, so don't be surprised if
- * there are compiler warnings on e.g. SCO OpenSwerver. It
- * seems they all eventually get the right idea.
+ * there are compiler warnings on e.g. SCO OpenSwerver or AIX.
+ * It seems they all eventually get the right idea.
*
* Debian says: ``The fifth argument of getsockopt and
* setsockopt is in reality an int [*] (and this is what BSD
fd_set fds;
int fd;
struct sockaddr addr;
- int in_addrlen = sizeof(addr);
+ socklen_t in_addrlen = sizeof(addr);
/* close log file before the potentially very long select so
file can be trimmed by another process instead of growing
if(!FD_ISSET(s, &fds)) continue;
/* See note above prototypes. */
- fd = accept(s,&addr,&in_addrlen);
+ fd = accept(s,&addr, &in_addrlen);
if (fd == -1) continue;
{
struct sockaddr sa;
struct sockaddr_in *sockin = (struct sockaddr_in *) (&sa);
- int length = sizeof(sa);
+ socklen_t length = sizeof(sa);
static char name_buf[100];
struct hostent *hp;
char **p;