- 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);
+ for (i = 0, maxfd = -1; sp[i] >= 0; i++) {
+ if (listen(sp[i], 5) < 0) {
+ rprintf(FERROR, "listen() on socket failed: %s\n",
+ strerror(errno));
+#ifdef INET6
+ if (errno == EADDRINUSE && i > 0) {
+ rprintf(FINFO,
+ "Try using --ipv4 or --ipv6 to avoid this listen() error.");
+ }
+#endif