#
6bcaf6b4 |
| 18-Jan-2011 |
pooka <pooka@NetBSD.org> |
Don't count sparse elements in the poll vector for host fds.
|
#
44a7f52e |
| 18-Jan-2011 |
pooka <pooka@NetBSD.org> |
Fix conversion: there are 1000*1000 nanoseconds in a millisecond, not 1000.
|
#
d1a24cc2 |
| 18-Jan-2011 |
pooka <pooka@NetBSD.org> |
Fix dup2 mask so that dup2'ing a rump kernel fd to 1 does not cause stderr to be treated as a rump kernel fd as well. Makes e.g. bozohttpd work better with stderr logging.
Also, add aborty stubs fo
Fix dup2 mask so that dup2'ing a rump kernel fd to 1 does not cause stderr to be treated as a rump kernel fd as well. Makes e.g. bozohttpd work better with stderr logging.
Also, add aborty stubs for kqueue. (implementing kqueue is even trickier than implementing select/poll since we need to keep state for two kqueue fd's)
show more ...
|
#
ccd87662 |
| 17-Jan-2011 |
pooka <pooka@NetBSD.org> |
Use host_close() instead of close() where we know it to be the right interface.
|
#
997ce200 |
| 17-Jan-2011 |
pooka <pooka@NetBSD.org> |
Adapt to rump syscall changes. The correct rump compat syscall is now automatically picked based on the ABI of the target the library is compiled for.
(the host libc symbolname to override still ne
Adapt to rump syscall changes. The correct rump compat syscall is now automatically picked based on the ABI of the target the library is compiled for.
(the host libc symbolname to override still needs a little attention based on the system version)
show more ...
|
#
fa9b301f |
| 09-Jan-2011 |
pooka <pooka@NetBSD.org> |
Networked X11 clients have the annoying property that they need to contact the X server. Since most of the useful cases these days are local, add a toggle which forwards PF_LOCAL sockets to the host
Networked X11 clients have the annoying property that they need to contact the X server. Since most of the useful cases these days are local, add a toggle which forwards PF_LOCAL sockets to the host and all other protocol families to the rump kernel.
This makes an unmodified firefox work with a rump TCP/IP stack. I'm sure someone will find applications for being able to run multiple web browser profiles on one OS with each browser having a different IP address in the same subnet ...
show more ...
|
#
3f240e01 |
| 09-Jan-2011 |
pooka <pooka@NetBSD.org> |
Don't depend on malloc(0) returning non-NULL.
|
#
6e83b485 |
| 09-Jan-2011 |
pooka <pooka@NetBSD.org> |
dprintf to stderr. stop doing it if stderr_fileno gets dup2()'d
|
#
82b07b2f |
| 08-Jan-2011 |
pooka <pooka@NetBSD.org> |
Support dual kernel select() by emulating it with pollts(). It would have been much easier if up to and including 5.0 we wouldn't silently cap the nfds argument to poll(!!!).
Makes things like sock
Support dual kernel select() by emulating it with pollts(). It would have been much easier if up to and including 5.0 we wouldn't silently cap the nfds argument to poll(!!!).
Makes things like socket(1) work out-of-the-box, and pretty much every other decidedly prehistoric select() user. (netcat is a slight exception since it sets FD_SETSIZE, a.k.a. interface-of-the-year, to 16)
show more ...
|
#
a05d53a2 |
| 08-Jan-2011 |
pooka <pooka@NetBSD.org> |
support pollts and rewrite poll in terms of pollts
|
#
9ecf7ca3 |
| 08-Jan-2011 |
pooka <pooka@NetBSD.org> |
Support fork() and dup2().
This is sufficient to make an unmodified httpd(8) be able to serve pages via a rump networking stack.
|
#
e83a389f |
| 07-Jan-2011 |
pooka <pooka@NetBSD.org> |
Begin work on a syscall hijacking library which can be LD_PRELOADed to convince non-rumped applications to communicate with a rump kernel instead of the host kernel. The precision of what goes where
Begin work on a syscall hijacking library which can be LD_PRELOADed to convince non-rumped applications to communicate with a rump kernel instead of the host kernel. The precision of what goes where is not exactly surgical, but for example when wanting to debug a web server's TCP/IP stack interaction, it might be enough. When all you have is a hand grenade, all problems look like a .... hmm?
There's still plenty to figure out. For example, I'm not sure what the user interface will be like. Now it just attempts to hijack network communication. It also needs to sync with symbol renaming in libc, and maybe autogenerate the non-schizophrenic wrappers where the communication is heading to exactly one destination, lest I'll be a mummmy by the time I finish writing them all. As a fun example of a non-non-schizophrenic one, consider poll().
Work in progress, but I managed to get two non-rumped netcats talking to each other or fetching the index from a non-rumped thttpd. telnet works in one direction (i can read the data from netcat, but anything i send back is not printed). bozohttpd uses dup2() which i haven't bothered to address yet, etcetc.
(not hooking this up the build for now)
show more ...
|