***************
*** 981,1009 ****
      
      default_server_hostnames (server_conf);
  
!     if (listeners == NULL)
!     {
! 	memset((char *) &sa_server, 0, sizeof(sa_server));
! 	sa_server.sin_family=AF_INET;
! 	sa_server.sin_addr=bind_address;
! 	sa_server.sin_port=htons(server_conf->port);
  
! 	sd = make_sock(pconf, &sa_server);
!     } else
!     {
! 	listen_rec *lr;
! 	int fd;
  
! 	listenmaxfd = -1;
! 	FD_ZERO(&listenfds);
! 	for (lr=listeners; lr != NULL; lr=lr->next)
! 	{
! 	    fd = make_sock(pconf, &lr->local_addr);
! 	    FD_SET(fd, &listenfds);
! 	    if (fd > listenmaxfd) listenmaxfd = fd;
! 	}
! 	sd = -1;
      }
  
      set_signals();
      log_pid(pconf, pid_fname);
--- 904,945 ----
      
      default_server_hostnames (server_conf);
  
!     if ((sd = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP)) == -1) {
!         fprintf(stderr,"httpd: could not get socket\n");
!         perror("socket");
!         exit(1);
!     }
  
!     note_cleanups_for_fd (pconf, sd); /* arrange to close on exec or restart */
!     
!     if((setsockopt(sd,SOL_SOCKET,SO_REUSEADDR,(const char *)&one,sizeof(one)))
!        == -1) {
!         fprintf(stderr,"httpd: could not set socket option\n");
!         perror("setsockopt");
!         exit(1);
!     }
!     if((setsockopt(sd,SOL_SOCKET,SO_KEEPALIVE,(const void *)&keepalive_value,
!         sizeof(keepalive_value))) == -1) {
!         fprintf(stderr,"httpd: could not set socket option SO_KEEPALIVE\n"); 
!         perror("setsockopt"); 
!         exit(1); 
!     }
  
!     memset((char *) &sa_server, 0, sizeof(sa_server));
!     sa_server.sin_family=AF_INET;
!     sa_server.sin_addr=bind_address;
!     sa_server.sin_port=htons(server_conf->port);
!     if(bind(sd,(struct sockaddr *) &sa_server,sizeof(sa_server)) == -1) {
! 	if (bind_address.s_addr != htonl(INADDR_ANY))
! 	    fprintf(stderr,"httpd: could not bind to address %s port %d\n",
! 		    inet_ntoa(bind_address), server_conf->port);
! 	else
! 	    fprintf(stderr,"httpd: could not bind to port %d\n",
! 		    server_conf->port);
!         perror("bind");
!         exit(1);
      }
+     listen(sd, 512);
  
      set_signals();
      log_pid(pconf, pid_fname);
