fix this you must: `sysctl net.inet6.ip6.v6only=0`
* **Solaris**: you may have to set your `PATH` to include `/usr/gnu/bin` and `/usr/gnu/sbin` before `/usr/bin`
- and `/usr/sbin`. Solaris's default tools don't seem to play nicely with the configure script.
+ and `/usr/sbin`. Solaris's default tools don't seem to play nicely with the configure script. When running
+ as a 32-bit binary, it should be started as:
+
+ ```bash
+ ulimit -n 4095 ; LD_PRELOAD_32=/usr/lib/extendedFILE.so.1 ./solanum
+ ```
# building
}
}
-/* 32bit solaris is kinda slow and stdio only supports fds < 256
- * so we got to do this crap below.
- * (BTW Fuck you Sun, I hate your guts and I hope you go bankrupt soon)
- */
-
-#if defined (__SVR4) && defined (__sun)
-static void
-rb_fd_hack(int *fd)
-{
- int newfd;
- if(*fd > 256 || *fd < 0)
- return;
- if((newfd = fcntl(*fd, F_DUPFD, 256)) != -1)
- {
- close(*fd);
- *fd = newfd;
- }
- return;
-}
-#else
-#define rb_fd_hack(fd)
-#endif
-
-
/* close_all_connections() can be used *before* the system come up! */
static void
return;
}
- rb_fd_hack(&new_fd);
-
new_F = rb_open(new_fd, RB_FD_SOCKET | (F->type & RB_FD_INHERIT_TYPES), "Incoming Connection");
if(new_F == NULL)
#endif
return -1;
- rb_fd_hack(&nfd[0]);
- rb_fd_hack(&nfd[1]);
-
*F1 = rb_open(nfd[0], RB_FD_SOCKET, note);
*F2 = rb_open(nfd[1], RB_FD_SOCKET, note);
}
if(pipe(fd) == -1)
return -1;
- rb_fd_hack(&fd[0]);
- rb_fd_hack(&fd[1]);
*F1 = rb_open(fd[0], RB_FD_PIPE, desc);
*F2 = rb_open(fd[1], RB_FD_PIPE, desc);
* XXX !!! -- adrian
*/
fd = socket(family, sock_type, proto);
- rb_fd_hack(&fd);
if(rb_unlikely(fd < 0))
return NULL; /* errno will be passed through, yay.. */