- if (listen(s, 5) == -1) {
- close(s);
- exit_cleanup(RERR_SOCKETIO);
+ FD_ZERO(&deffds);
+ maxfd = -1;
+ for (i = 1; i <= *sp; i++) {
+ if (listen(sp[i], 5) == -1) {
+ for (j = 1; j <= i; j++)
+ close(sp[j]);
+ free(sp);
+ exit_cleanup(RERR_SOCKETIO);
+ }
+ FD_SET(sp[i], &deffds);
+ if (maxfd < sp[i])
+ maxfd = sp[i];