/*
- * "$Id: listen.c,v 1.7 2000/11/21 20:59:56 mike Exp $"
+ * "$Id: listen.c,v 1.9.2.2 2001/12/26 16:52:54 mike Exp $"
*
* Server listening routines for the Common UNIX Printing System (CUPS)
* scheduler.
*
- * Copyright 1997-2000 by Easy Software Products, all rights reserved.
+ * Copyright 1997-2001 by Easy Software Products, all rights reserved.
*
* These coded instructions, statements, and computer programs are the
* property of Easy Software Products and are protected by Federal
val; /* Parameter value */
listener_t *lis; /* Current listening socket */
struct hostent *host; /* Host entry for server address */
+ char s[256]; /* String addresss */
LogMessage(L_DEBUG, "StartListening: NumListeners=%d", NumListeners);
memset(&ServerAddr, 0, sizeof(ServerAddr));
- if ((host = gethostbyname(ServerName)) != NULL)
+ if ((host = httpGetHostByName(ServerName)) != NULL)
{
/*
* Found the server's address!
*/
- memcpy((char *)&(ServerAddr.sin_addr), host->h_addr, host->h_length);
- ServerAddr.sin_family = host->h_addrtype;
+ httpAddrLoad(host, 0, 0, &ServerAddr);
}
else
{
LogMessage(L_ERROR, "StartListening: Unable to find IP address for server name \"%s\"!\n",
ServerName);
- ServerAddr.sin_family = AF_INET;
+ ServerAddr.ipv4.sin_family = AF_INET;
}
/*
for (i = NumListeners, lis = Listeners; i > 0; i --, lis ++)
{
- LogMessage(L_DEBUG, "StartListening: address=%08x port=%d",
- ntohl(lis->address.sin_addr.s_addr),
- ntohs(lis->address.sin_port));
-
- if ((lis->fd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
+ httpAddrString(&(lis->address), s, sizeof(s));
+
+#ifdef AF_INET6
+ if (lis->address.addr.sa_family == AF_INET6)
+ LogMessage(L_DEBUG, "StartListening: address=%s port=%d (IPv6)", s,
+ ntohs(lis->address.ipv6.sin6_port));
+ else
+#endif /* AF_INET6 */
+ LogMessage(L_DEBUG, "StartListening: address=%s port=%d", s,
+ ntohs(lis->address.ipv4.sin_port));
+
+ if ((lis->fd = socket(lis->address.addr.sa_family, SOCK_STREAM, 0)) == -1)
{
LogMessage(L_ERROR, "StartListening: Unable to open listen socket - %s.",
strerror(errno));
if (bind(lis->fd, (struct sockaddr *)&(lis->address), sizeof(lis->address)) < 0)
{
- LogMessage(L_ERROR, "StartListening: Unable to bind socket - %s.", strerror(errno));
+ LogMessage(L_ERROR, "StartListening: Unable to bind socket - %s.",
+ strerror(errno));
exit(errno);
}
* Listen for new clients.
*/
- if (listen(lis->fd, SOMAXCONN) < 0)
+ if (listen(lis->fd, ListenBackLog) < 0)
{
LogMessage(L_ERROR, "StartListening: Unable to listen for clients - %s.",
strerror(errno));
/*
- * End of "$Id: listen.c,v 1.7 2000/11/21 20:59:56 mike Exp $".
+ * End of "$Id: listen.c,v 1.9.2.2 2001/12/26 16:52:54 mike Exp $".
*/