The NetBSD Project

CVS log for src/lib/librumpclient/rumpclient.c

[BACK] Up to [cvs.NetBSD.org] / src / lib / librumpclient

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.67 / (download) - annotate - [select for diffs], Tue Sep 6 07:45:41 2016 UTC (3 years, 3 months ago) by martin
Branch: MAIN
CVS Tags: prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, HEAD
Changes since 1.66: +5 -5 lines
Diff to previous 1.66 (colored) to selected 1.26 (colored)

Redo previous by avoiding the casts and using PRIxREGISTER instead

Revision 1.66 / (download) - annotate - [select for diffs], Tue Sep 6 07:12:48 2016 UTC (3 years, 3 months ago) by martin
Branch: MAIN
Changes since 1.65: +5 -4 lines
Diff to previous 1.65 (colored) to selected 1.26 (colored)

Fix DPRINTF format

Revision 1.65 / (download) - annotate - [select for diffs], Sat Jan 17 19:34:50 2015 UTC (4 years, 10 months ago) by justin
Branch: MAIN
CVS Tags: pgoyette-localcount-base, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount
Changes since 1.64: +3 -11 lines
Diff to previous 1.64 (colored) to selected 1.26 (colored)

Modern Android SDK does not need special cases

Revision 1.64 / (download) - annotate - [select for diffs], Sat Dec 13 17:18:55 2014 UTC (4 years, 11 months ago) by justin
Branch: MAIN
Changes since 1.63: +5 -5 lines
Diff to previous 1.63 (colored) to selected 1.26 (colored)

Always use kqueue for BSDs in librumpclient

Tested now on the others

Revision 1.63 / (download) - annotate - [select for diffs], Mon Dec 8 01:10:07 2014 UTC (5 years ago) by justin
Branch: MAIN
Changes since 1.62: +13 -4 lines
Diff to previous 1.62 (colored) to selected 1.26 (colored)

Use kqueue in librumpclient for FreeBSD too

Revision 1.51.2.3 / (download) - annotate - [select for diffs], Wed Aug 20 00:02:20 2014 UTC (5 years, 3 months ago) by tls
Branch: tls-maxphys
Changes since 1.51.2.2: +121 -61 lines
Diff to previous 1.51.2.2 (colored) next main 1.52 (colored) to selected 1.26 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.61.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:52:20 2014 UTC (5 years, 4 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.61: +3 -3 lines
Diff to previous 1.61 (colored) next main 1.62 (colored) to selected 1.26 (colored)

Rebase.

Revision 1.45.4.4 / (download) - annotate - [select for diffs], Thu May 22 11:37:00 2014 UTC (5 years, 6 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.45.4.3: +123 -63 lines
Diff to previous 1.45.4.3 (colored) to branchpoint 1.45 (colored) next main 1.46 (colored) to selected 1.26 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.62 / (download) - annotate - [select for diffs], Fri Apr 25 12:20:12 2014 UTC (5 years, 7 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7
Changes since 1.61: +3 -3 lines
Diff to previous 1.61 (colored) to selected 1.26 (colored)

pretend to handle the poll return value for -Wunused-but-set

Revision 1.61 / (download) - annotate - [select for diffs], Thu Apr 3 17:11:35 2014 UTC (5 years, 8 months ago) by pooka
Branch: MAIN
Branch point for: tls-earlyentropy
Changes since 1.60: +5 -6 lines
Diff to previous 1.60 (colored) to selected 1.26 (colored)

Make sure holyfd is -1 when rumpclient_init() is called for
the first time after fork to prevent fd 0 from being closed.

should fix test failures, thanks to martin for the prod

Revision 1.60 / (download) - annotate - [select for diffs], Wed Apr 2 17:09:23 2014 UTC (5 years, 8 months ago) by justin
Branch: MAIN
Changes since 1.59: +11 -3 lines
Diff to previous 1.59 (colored) to selected 1.26 (colored)

Add Android support for rump kernel.

Reviewed by pooka@

Revision 1.59 / (download) - annotate - [select for diffs], Wed Apr 2 15:04:19 2014 UTC (5 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.58: +4 -2 lines
Diff to previous 1.58 (colored) to selected 1.26 (colored)

fix build on NetBSD.  also, prevent fd leak in error path

Revision 1.58 / (download) - annotate - [select for diffs], Wed Apr 2 14:48:03 2014 UTC (5 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.57: +106 -58 lines
Diff to previous 1.57 (colored) to selected 1.26 (colored)

On Linux, poll signalfd() when waiting for a kernel response.
This allows the same type of race-free handling of signals as kqueue()
allows on NetBSD.  One of the noticeable things is that you can now
interrupt rumprun ping mid-interval on Linux.

per suggestion from Justin Cormack

Revision 1.57 / (download) - annotate - [select for diffs], Wed Feb 26 02:03:40 2014 UTC (5 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Changes since 1.56: +3 -3 lines
Diff to previous 1.56 (colored) to selected 1.26 (colored)

Use MAP_ANON|MAP_PRIVATE for anonymous memory mapping,
e.g. Linux gets upset if just MAP_ANON.

Revision 1.56 / (download) - annotate - [select for diffs], Thu Feb 20 00:42:27 2014 UTC (5 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.55: +7 -4 lines
Diff to previous 1.55 (colored) to selected 1.26 (colored)

Translate signal numbers between rump kernel and (POSIX) host.

Revision 1.55 / (download) - annotate - [select for diffs], Tue Sep 10 16:53:06 2013 UTC (6 years, 2 months ago) by pooka
Branch: MAIN
Changes since 1.54: +3 -3 lines
Diff to previous 1.54 (colored) to selected 1.26 (colored)

use <rump/rumpuser_port.h>

Revision 1.51.2.2 / (download) - annotate - [select for diffs], Mon Feb 25 00:28:00 2013 UTC (6 years, 9 months ago) by tls
Branch: tls-maxphys
Changes since 1.51.2.1: +49 -15 lines
Diff to previous 1.51.2.1 (colored) to selected 1.26 (colored)

resync with head

Revision 1.45.4.3 / (download) - annotate - [select for diffs], Wed Jan 23 00:05:26 2013 UTC (6 years, 10 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.45.4.2: +49 -15 lines
Diff to previous 1.45.4.2 (colored) to branchpoint 1.45 (colored) to selected 1.26 (colored)

sync with head

Revision 1.54 / (download) - annotate - [select for diffs], Thu Jan 17 20:47:44 2013 UTC (6 years, 10 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base8, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, agc-symver-base, agc-symver
Changes since 1.53: +42 -14 lines
Diff to previous 1.53 (colored) to selected 1.26 (colored)

Solaris 10 fixes

Revision 1.53 / (download) - annotate - [select for diffs], Thu Jan 17 16:29:44 2013 UTC (6 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.52: +9 -3 lines
Diff to previous 1.52 (colored) to selected 1.26 (colored)

If the host doesn't support RTLD_NEXT, don't play the dynamic linking game.

Revision 1.51.2.1 / (download) - annotate - [select for diffs], Tue Nov 20 03:00:45 2012 UTC (7 years ago) by tls
Branch: tls-maxphys
Changes since 1.51: +3 -2 lines
Diff to previous 1.51 (colored) to selected 1.26 (colored)

Resync to 2012-11-19 00:00:00 UTC

Revision 1.45.4.2 / (download) - annotate - [select for diffs], Tue Oct 30 18:59:16 2012 UTC (7 years, 1 month ago) by yamt
Branch: yamt-pagecache
Changes since 1.45.4.1: +97 -17 lines
Diff to previous 1.45.4.1 (colored) to branchpoint 1.45 (colored) to selected 1.26 (colored)

sync with head

Revision 1.52 / (download) - annotate - [select for diffs], Wed Sep 12 12:38:16 2012 UTC (7 years, 2 months ago) by pooka
Branch: MAIN
CVS Tags: yamt-pagecache-base7, yamt-pagecache-base6
Changes since 1.51: +3 -2 lines
Diff to previous 1.51 (colored) to selected 1.26 (colored)

attempt to inform user of what the error means

Revision 1.51 / (download) - annotate - [select for diffs], Wed Aug 29 10:38:53 2012 UTC (7 years, 3 months ago) by msaitoh
Branch: MAIN
Branch point for: tls-maxphys
Changes since 1.50: +2 -5 lines
Diff to previous 1.50 (colored) to selected 1.26 (colored)

Remove unused variable. Approved by pooka.

Revision 1.50 / (download) - annotate - [select for diffs], Fri Aug 3 14:52:31 2012 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.49: +3 -2 lines
Diff to previous 1.49 (colored) to selected 1.26 (colored)

force-terminate commname

Revision 1.49 / (download) - annotate - [select for diffs], Fri Aug 3 11:31:34 2012 UTC (7 years, 4 months ago) by pooka
Branch: MAIN
Changes since 1.48: +95 -14 lines
Diff to previous 1.48 (colored) to selected 1.26 (colored)

Make librumpclient compile and work on Linux.  This is accomplished by:

1) avoid "NetBSD'isms" in the rumpclient sources
2) do not require the knowledge of unnecessary weird_t's in syscallargs.h
   for rumpclient

Revision 1.47.2.2 / (download) - annotate - [select for diffs], Mon Apr 23 23:40:41 2012 UTC (7 years, 7 months ago) by riz
Branch: netbsd-6
CVS Tags: netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus
Changes since 1.47.2.1: +5 -5 lines
Diff to previous 1.47.2.1 (colored) to branchpoint 1.47 (colored) next main 1.48 (colored) to selected 1.26 (colored)

Back out changes committed as part of ticket #195 which were apparently
not intended as part of the pullup request.  Should fix netbsd-6 build.

Revision 1.47.2.1 / (download) - annotate - [select for diffs], Mon Apr 23 16:49:03 2012 UTC (7 years, 7 months ago) by riz
Branch: netbsd-6
Changes since 1.47: +5 -5 lines
Diff to previous 1.47 (colored) to selected 1.26 (colored)

Pull up following revision(s) (requested by manu in ticket #195):
	lib/libskey/skeysubr.c: revision 1.27
	lib/libkvm/kvm_getloadavg.c: revision 1.11
	lib/libwrap/update.c: revision 1.9
	lib/liby/yyerror.c: revision 1.9
	lib/libpuffs/puffs_ops.3: revision 1.30
	lib/libwrap/misc.c: revision 1.10
	lib/libwrap/hosts_access.c: revision 1.20
	lib/libpuffs/pnode.c: revision 1.11
	lib/libperfuse/subr.c: revision 1.17
	lib/libpuffs/pnode.c: revision 1.12
	lib/libperfuse/subr.c: revision 1.18
	lib/libwrap/options.c: revision 1.15
	lib/libwrap/fix_options.c: revision 1.11
	lib/libperfuse/ops.c: revision 1.52
	lib/libperfuse/ops.c: revision 1.53
	lib/libperfuse/ops.c: revision 1.54
	lib/libwrap/hosts_ctl.c: revision 1.5
	lib/libintl/gettext.c: revision 1.27
	lib/libwrap/shell_cmd.c: revision 1.6
	lib/libpuffs/dispatcher.c: revision 1.39
	lib/libperfuse/perfuse_priv.h: revision 1.27
	lib/libwrap/socket.c: revision 1.19
	lib/libpuffs/puffs.3: revision 1.50
	lib/libperfuse/perfuse_priv.h: revision 1.28
	lib/libpuffs/puffs_priv.h: revision 1.45
	lib/libpuffs/puffs.3: revision 1.51
	lib/libperfuse/perfuse_priv.h: revision 1.29
	lib/libwrap/percent_x.c: revision 1.5
	lib/libpuffs/puffs.3: revision 1.52
	lib/libperfuse/debug.c: revision 1.11
	sys/fs/puffs/puffs_vnops.c: revision 1.165
	lib/libwrap/tcpd.h: revision 1.13
	sys/fs/puffs/puffs_vnops.c: revision 1.166
	lib/libwrap/eval.c: revision 1.7
	sys/fs/puffs/puffs_msgif.h: revision 1.78
	sys/fs/puffs/puffs_vfsops.c: revision 1.101
	lib/libwrap/rfc931.c: revision 1.9
	lib/libwrap/clean_exit.c: revision 1.5
	lib/libpuffs/puffs.h: revision 1.120
	lib/libc/stdlib/jemalloc.c: revision 1.27
	lib/librmt/rmtlib.c: revision 1.26
	lib/libpuffs/puffs.h: revision 1.121
	sys/fs/puffs/puffs_sys.h: revision 1.79
	lib/librumpclient/rumpclient.c: revision 1.48
	lib/libwrap/refuse.c: revision 1.5
	lib/libperfuse/perfuse.c: revision 1.26
	lib/libperfuse/perfuse.c: revision 1.27
	tests/fs/puffs/t_fuzz.c: revision 1.5
	lib/libperfuse/perfuse.c: revision 1.28
	lib/libpuffs/dispatcher.c: revision 1.40
	sys/fs/puffs/puffs_node.c: revision 1.24
	lib/libwrap/diag.c: revision 1.9
	lib/libintl/textdomain.c: revision 1.13
Use C89 function definition
Add name and atttribute cache with filesytem provided TTL.
lookup, create, mknod, mkdir, symlink, getattr and setattr messages
have been extended so that attributes and their TTL can be provided
by the filesytem. lookup, create, mknod, mkdir, and symlink messages
are also extended so that the filesystem can provide name TTL.
Add PUFFS_KFLAG_CACHE_FS_TTL flag to puffs_init(3) to use name and
attribute cache with filesystem provided TTL.
lookup, create, mknod, mkdir, symlink, getattr and setattr messages
have been extended so that attributes and their TTL can be provided
by the filesytem. lookup, create, mknod, mkdir, and symlink messages
are also extended so that the filesystem can provide name TTL.
The filesystem updates attributes and TTL using
puffs_pn_getvap(3), puffs_pn_getvattl(3), and puffs_pn_getcnttl(3)
Use new PUFFS_KFLAG_CACHE_FS_TTL option to puffs_init(3) so that
FUSE TTL on name and attributes are used. This save many PUFFS
operations and improves performances.
PUFFS_KFLAG_CACHE_FS_TTL is #ifdef'ed in many places for now so that
libperfuse can still be used on netbsd-5.
Split file system.
Comma fixes.
Remove dangling &quot;and&quot;.
Bump date for previous.
- Makesure update_va does not change vnode size when it should not. For
instance when doing a fault-issued VOP_GETPAGES within VOP_WRITE, changing
size leads to panic: genfs_getpages: past eof.
-Handle ticks wrap around for vnode name andattribute timeout
- When using PUFFS_KFLAG_CACHE_FS_TTL, do not use puffs_node to carry
  attribute and TTL fora newly created node. Instead extend puffs_newinfo
  and add puffs_newinfo_setva() and puffs_newinfo_setttl()
- Remove node_mk_common_final in libperfuse. It used to set uid/gid for
  a newly created vnode but has been made redundant along time ago since
  uid and gid are properly set in FUSE header.
- In libperfuse, check for corner case where opc = 0 on INACTIVE and   RECLAIM
(how is it possible? Check for it to avoid a crash anyway)
- In libperfuse, make sure we unlimit RLIMIT_AS and RLIMIT_DATA so that
  we do notrun out of memory because the kernel is lazy at reclaiming vnodes.
- In libperfuse, cleanup style of perfuse_destroy_pn()
Do not set PUFFS_KFLAG_CACHE_FS_TTL for PUFFS tests

Revision 1.45.4.1 / (download) - annotate - [select for diffs], Tue Apr 17 00:05:33 2012 UTC (7 years, 7 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.45: +8 -8 lines
Diff to previous 1.45 (colored) to selected 1.26 (colored)

sync with head

Revision 1.48 / (download) - annotate - [select for diffs], Wed Mar 21 10:10:37 2012 UTC (7 years, 8 months ago) by matt
Branch: MAIN
CVS Tags: yamt-pagecache-base5, yamt-pagecache-base4
Changes since 1.47: +5 -5 lines
Diff to previous 1.47 (colored) to selected 1.26 (colored)

Use C89 function definition

Revision 1.47 / (download) - annotate - [select for diffs], Mon Dec 12 16:53:53 2011 UTC (7 years, 11 months ago) by joerg
Branch: MAIN
CVS Tags: netbsd-6-base
Branch point for: netbsd-6
Changes since 1.46: +3 -3 lines
Diff to previous 1.46 (colored) to selected 1.26 (colored)

Mark rumphijack_dlsym explicitly as weak to prevent optimisations based
on pointer (non-)identity of it and rumpclient__dlsym.

Revision 1.46 / (download) - annotate - [select for diffs], Mon Dec 12 15:21:32 2011 UTC (7 years, 11 months ago) by joerg
Branch: MAIN
Changes since 1.45: +4 -4 lines
Diff to previous 1.45 (colored) to selected 1.26 (colored)

Don't use K&R syntax

Revision 1.45 / (download) - annotate - [select for diffs], Sat Apr 30 12:25:05 2011 UTC (8 years, 7 months ago) by alnsn
Branch: MAIN
CVS Tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, cherry-xenmp-base, cherry-xenmp
Branch point for: yamt-pagecache
Changes since 1.44: +12 -4 lines
Diff to previous 1.44 (colored) to selected 1.26 (colored)

Save/restore errno in error path in dupgood. Check that n>0 before
accessing banner[n-1].

Approved a while ago by pooka@

Revision 1.44 / (download) - annotate - [select for diffs], Tue Mar 15 09:35:05 2011 UTC (8 years, 8 months ago) by pooka
Branch: MAIN
Changes since 1.43: +18 -35 lines
Diff to previous 1.43 (colored) to selected 1.26 (colored)

don't spam connection errors to stderr by default

Revision 1.43 / (download) - annotate - [select for diffs], Wed Mar 9 15:09:21 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.42: +5 -5 lines
Diff to previous 1.42 (colored) to selected 1.26 (colored)

* use _exit() instead of exit() in retryconn=die: atexit() handlers
  may hang if the server is dead
* consistent use of data

Revision 1.42 / (download) - annotate - [select for diffs], Tue Mar 8 18:28:01 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored) to selected 1.26 (colored)

and for my next trick, i'm going to spell ARGSUSED correctly

Revision 1.41 / (download) - annotate - [select for diffs], Tue Mar 8 18:25:16 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.40: +3 -2 lines
Diff to previous 1.40 (colored) to selected 1.26 (colored)

lint love

Revision 1.40 / (download) - annotate - [select for diffs], Tue Mar 8 15:55:12 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.39: +37 -26 lines
Diff to previous 1.39 (colored) to selected 1.26 (colored)

Since we ~never have a frame waiting on the initial call to waitresp,
call kevent before readframe.  Doesn't really affect performance,
but makes ktraces shorter ;)

Revision 1.39 / (download) - annotate - [select for diffs], Tue Mar 8 15:34:37 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.38: +34 -21 lines
Diff to previous 1.38 (colored) to selected 1.26 (colored)

Use sendmsg() instead multiple calls to sendto().  It behaves
slightly better in the multithreaded exec case in terms of partial
frames sent.  Plus, it's theoretically a little cheaper.

There's still a gray area with partial transfer from sendmsg(),
but I'm not sure I care enough about some academic scenario to
start fixing it (it basically needs an OOB exec signaller).

Revision 1.16.2.3 / (download) - annotate - [select for diffs], Sat Mar 5 15:09:23 2011 UTC (8 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.16.2.2: +50 -27 lines
Diff to previous 1.16.2.2 (colored) next main 1.17 (colored) to selected 1.26 (colored)

Sync with HEAD

Revision 1.38 / (download) - annotate - [select for diffs], Sun Feb 27 12:58:29 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: bouyer-quota2-nbase
Changes since 1.37: +17 -5 lines
Diff to previous 1.37 (colored) to selected 1.26 (colored)

Take reasonable precautions against init in a parent process
which did a rump-transparent host-only fork().

Revision 1.37 / (download) - annotate - [select for diffs], Fri Feb 25 15:12:06 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.36: +2 -2 lines
Diff to previous 1.36 (colored) to selected 1.26 (colored)

fix __RCSID

Revision 1.36 / (download) - annotate - [select for diffs], Thu Feb 24 14:22:04 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.35: +3 -3 lines
Diff to previous 1.35 (colored) to selected 1.26 (colored)

Fix static fallback path.

Revision 1.35 / (download) - annotate - [select for diffs], Thu Feb 24 12:25:44 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.34: +13 -8 lines
Diff to previous 1.34 (colored) to selected 1.26 (colored)

Make the rumphijack dlsym trampoline call from rumpclient a "real"
function call instead of a call through a function pointer.
Apparently powerpc ld.elf_so gets __hackish_return_address() wrong
if the call is done through a function pointer (digging deeper into
that stuff is beyond my interest).

Thanks to riz for providing access to a macppc for debugging.
Unthanks to the broken toolchain in the default installation which
wasted approximately 4 hours of time last night.

Revision 1.34 / (download) - annotate - [select for diffs], Thu Feb 24 09:52:34 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.33: +22 -16 lines
Diff to previous 1.33 (colored) to selected 1.26 (colored)

Die with a sensible error message if a symbol cannot be found.

Revision 1.33 / (download) - annotate - [select for diffs], Fri Feb 18 16:22:10 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (colored) to selected 1.26 (colored)

I think I skipped the class where they taught that multiplication
is done before addition...

Revision 1.16.2.2 / (download) - annotate - [select for diffs], Thu Feb 17 11:59:23 2011 UTC (8 years, 9 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.16.2.1: +256 -27 lines
Diff to previous 1.16.2.1 (colored) to selected 1.26 (colored)

Sync with HEAD

Revision 1.32 / (download) - annotate - [select for diffs], Wed Feb 16 19:26:58 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
CVS Tags: bouyer-quota2-base
Changes since 1.31: +9 -3 lines
Diff to previous 1.31 (colored) to selected 1.26 (colored)

* set default server connection retry to 0 (no reconnection attempts).
  while for some cases attempting retry after server restart works
  brilliantly (e.g. firefox), in other cases it's quite disasterous
  (sshd doesn't like its file descriptors going missing and does not
  attempt to reopen them, leading to a quite catastophic loop of
  EBADF once the server does come back)
* rename RUMPHIJACK_RETRY to the slightly more sensible
  RUMPHIJACK_RETRYCONNECT

Revision 1.31 / (download) - annotate - [select for diffs], Wed Feb 16 17:56:46 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.30: +45 -20 lines
Diff to previous 1.30 (colored) to selected 1.26 (colored)

Support vfork.  Add rumpclient wrapper for daemon(3).

Revision 1.30 / (download) - annotate - [select for diffs], Wed Feb 16 15:33:47 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.29: +49 -25 lines
Diff to previous 1.29 (colored) to selected 1.26 (colored)

Push the fiddly tasks for exec and fork from rumphijack to rumpclient.
This makes it possible easily execute those operations also from
non-hijacked rump clients (plus fixes one memory leak in an error
branch).

Revision 1.29 / (download) - annotate - [select for diffs], Tue Feb 15 10:37:07 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.28: +34 -22 lines
Diff to previous 1.28 (colored) to selected 1.26 (colored)

support HANDSHAKE_EXEC

Revision 1.28 / (download) - annotate - [select for diffs], Mon Feb 14 14:56:23 2011 UTC (8 years, 9 months ago) by pooka
Branch: MAIN
Changes since 1.27: +149 -9 lines
Diff to previous 1.27 (colored) to selected 1.26 (colored)

A bunch of changes which essentially make sshd work with a hijacked
rump tcp/ip stack:

* sshd likes to fork and then re-exec itself
  ==> trap execve() and augment the env with the current parameters
      essential to a rump kernel (kernel communication fd, information
      about dup2'd file descriptors)

* sshd likes to play lots of games with pipes, socketpairs and dup{,2}()
  ==> make sure we do not close essential rump client descriptors:
      dup() them to a safe place, except for F_CLOSEM where we
      simply leave them alone.  also, partially solved by the above,
      make sure the process's set of rump kernel descriptors persists
      over exec()

* sshd likes to chdir() before exec
  ==> for unix-style rump_sp(7) sockets save the full path on the
      initial exec and use it afterwards.  thread the path through
      the environment in execve()

Revision 1.27 / (download) - annotate - [select for diffs], Wed Feb 9 14:29:58 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.26: +25 -3 lines
Diff to previous 1.26 (colored)

The following happens when sending mail with mutt via a rump
TCP/IP stack:

* mutt prepares to exec the smtp client: it forks and closes all
  file descriptors
* when the next networking syscall is done, rumpclient detects that
  the communication fd returned EBADF and does a reconnect,
  gets descriptor 0 for the socket and descriptor 1 for kqueue
* mutt opens the mail file and implicitly assumes it'll get 0-2,
  but in fact gets 2-4
* mutt execs the smtp agent which tries to read the mail from
  stdin (rumpclient communication socket) and fails

Even if mutt correctly did dup2() things would go south when trying
to communicate with the kernel server the next time, since rumpclient
would actually be talking with some mail body instead (well, it
could work, but in that case you'd need to write *really* weird
mails ;).

Hence, prevent rumpclient from using the special fd's 0-2 for its
purposes.

Should fix mutt problem reported by Alexander Nasonov.

Revision 1.16.2.1 / (download) - annotate - [select for diffs], Tue Feb 8 16:19:04 2011 UTC (8 years, 10 months ago) by bouyer
Branch: bouyer-quota2
Changes since 1.16: +325 -93 lines
Diff to previous 1.16 (colored) to selected 1.26 (colored)

Sync with HEAD

Revision 1.26 / (download) - annotate - [selected], Mon Feb 7 15:25:41 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.25: +23 -19 lines
Diff to previous 1.25 (colored)

malloc/free aren't async-signal-safe, so avoid calling them when
signals aren't blocked.

this bug made tests/rump/rumpkern/t_sp:sigsafe rarely deadlock

Revision 1.25 / (download) - annotate - [select for diffs], Mon Feb 7 14:49:53 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.24: +3 -2 lines
Diff to previous 1.24 (colored) to selected 1.26 (colored)

make sure we don't use "fullset" before we init it

Revision 1.24 / (download) - annotate - [select for diffs], Sun Feb 6 15:43:20 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.23: +4 -2 lines
Diff to previous 1.23 (colored) to selected 1.26 (colored)

Add another connection retry model which simply does exit(1) if
the connection is severed.
(mostly for tests so that everything can be hooked to rump_server's exit)

Revision 1.23 / (download) - annotate - [select for diffs], Sun Feb 6 15:41:37 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.22: +6 -3 lines
Diff to previous 1.22 (colored) to selected 1.26 (colored)

Make sure to close parent's server communication socket after fork.

Revision 1.22 / (download) - annotate - [select for diffs], Sat Feb 5 12:38:19 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.21: +5 -1 lines
Diff to previous 1.21 (colored) to selected 1.26 (colored)

Fix some snafus to allow rumphijack to work on -current.

reported by Alexander Nasonov

Revision 1.21 / (download) - annotate - [select for diffs], Fri Jan 28 19:21:28 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.20: +11 -2 lines
Diff to previous 1.20 (colored) to selected 1.26 (colored)

Pass the value of getprogname() from the client to the server and
record it in p_comm.  This is nice for things like sockstat, since
they now display the client command name:

pain-rustique:43:~> rump.sockstat
USER     COMMAND    PID   FD PROTO  LOCAL ADDRESS         FOREIGN ADDRESS
root     xulrunner- 16     0 tcp    192.168.2.114.65507   204.152.190.12.80
root     xulrunner- 16     1 tcp    192.168.2.114.65501   204.152.190.12.80
root     xulrunner- 16     2 tcp    192.168.2.114.65500   204.152.190.12.80
root     xulrunner- 16     3 tcp    192.168.2.114.65499   204.152.190.12.80
root     xulrunner- 16     5 tcp    192.168.2.114.65498   204.152.190.12.80
root     xulrunner- 16     6 tcp    192.168.2.114.65497   204.152.190.12.80
root     socket     62     0 tcp6   *.http                *.*
root     socket     62     1 tcp    *.http                *.*
root     socket     63     0 tcp6   *.81                  *.*
root     socket     63     1 tcp    *.81                  *.*

Revision 1.20 / (download) - annotate - [select for diffs], Thu Jan 27 18:04:05 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.19: +99 -56 lines
Diff to previous 1.19 (colored) to selected 1.26 (colored)

Allow to set a timeout for how long the client will attempt to
reconnect in case the connection to the server is lost.  Default
to exactly one reattempt.  This makes sense and additionally fixes
the dev/raidframe/smalldisk test which currently causes a server
panic when a certain raidctl command is run (without this fix the
test would timeout since the client kept attempting to reconnect).

Revision 1.19 / (download) - annotate - [select for diffs], Wed Jan 26 14:42:41 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.18: +5 -1 lines
Diff to previous 1.18 (colored) to selected 1.26 (colored)

plug fd leak in reconnect code

Revision 1.18 / (download) - annotate - [select for diffs], Mon Jan 24 17:47:51 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.17: +226 -67 lines
Diff to previous 1.17 (colored) to selected 1.26 (colored)

Add reconnect code to librumpclient.  In case the connection to
the kernel server is lost, the client will now automatically attempt
to reconnect.

Among other things, this makes it possible to "reboot" and restart
the TCP/IP stack from under firefox without any perceivable less
of service.  If pages were loading at the time the TCP/IP server
was killed, there may be some broken links, but nothing a ctrl-r
cannot fix.

Revision 1.17 / (download) - annotate - [select for diffs], Fri Jan 21 10:43:33 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.16: +10 -7 lines
Diff to previous 1.16 (colored) to selected 1.26 (colored)

Forgot to commit this a few days ago: need to make sure we get the
right kqueue/kevent now that rumphijack hijacks them.

Revision 1.16 / (download) - annotate - [select for diffs], Fri Jan 14 13:12:15 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Branch point for: bouyer-quota2
Changes since 1.15: +10 -1 lines
Diff to previous 1.15 (colored) to selected 1.26 (colored)

Add RUMPSP_RAISE: the kernel sends a signal to the client.

Revision 1.15 / (download) - annotate - [select for diffs], Mon Jan 10 19:49:43 2011 UTC (8 years, 10 months ago) by pooka
Branch: MAIN
Changes since 1.14: +79 -41 lines
Diff to previous 1.14 (colored) to selected 1.26 (colored)

A bunch of improvements:

* don't hold spc mutex while sending data
* use send() for the banner to avoid SIGPIPE in case a client
  connects and immediately goes away
* fix error path locking
* use kevent() instead of pollts() in the client.  Apparently that
  is the only sensible way for a library to support both multithreading
  and signal-reentrancy in a race-free manner.
  (can I catch all signals with one kevent instead of installing
  NSIG different ones??)
* mark client comm descriptor non-blocking so that clients have
  better signal-interruptibility (we now sleep in signal-accepting
  kevent() instead of signal-masked recvfrom())

Revision 1.14 / (download) - annotate - [select for diffs], Sun Jan 9 14:10:03 2011 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.13: +2 -2 lines
Diff to previous 1.13 (colored) to selected 1.26 (colored)

Separate rw_data and rw_done.  Otherwise we don't get wakeups for
requests which have a 0-length response (such as copyin 0/0).

This change makes links(1) work against a rump kernel which contains
rumpnet_local.  The presence of unix domain sockets caused links
to select() with 0 fds and a timeout, and because copyin never woke
up in the kernel the application blocked indefinitely.

Revision 1.13 / (download) - annotate - [select for diffs], Fri Jan 7 19:37:51 2011 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.12: +47 -7 lines
Diff to previous 1.12 (colored) to selected 1.26 (colored)

Make rumpclient impervious to LD_PRELOAD syscall hijacking by using
dlsym(RTLD_NEXT) to lookup a host_syscall() function pointer which
is used instead of syscall() to communicate with the kernel server.

WARNING: popular opinion classifies this as "ugly code".  if you
have a weak heart/mind/soul/sole meuniere, read max. 1 line of the
diff per day, preferably with food.

Revision 1.12 / (download) - annotate - [select for diffs], Thu Jan 6 06:57:14 2011 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.11: +101 -6 lines
Diff to previous 1.11 (colored) to selected 1.26 (colored)

Make rumpclient syscalls safe to call from signal handlers.

Revision 1.11 / (download) - annotate - [select for diffs], Wed Jan 5 17:14:50 2011 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.10: +135 -33 lines
Diff to previous 1.10 (colored) to selected 1.26 (colored)

Support fork() for rumpclient users.

Revision 1.10 / (download) - annotate - [select for diffs], Thu Dec 16 17:05:44 2010 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
CVS Tags: matt-mips64-premerge-20101231
Changes since 1.9: +52 -13 lines
Diff to previous 1.9 (colored) to selected 1.26 (colored)

Have the client and server perform some sort of handshake first.
It's pretty much a placeholder for now.  One plan for the future
is to require some sort of authentication for superuser clients.
The code will need a little massage then, though, to prevent DoS
attacks.

Revision 1.9 / (download) - annotate - [select for diffs], Thu Dec 16 12:38:21 2010 UTC (8 years, 11 months ago) by pooka
Branch: MAIN
Changes since 1.8: +17 -1 lines
Diff to previous 1.8 (colored) to selected 1.26 (colored)

Print a banner a connecting client.  The banner contains rump sp
protocol version, os name, os revision and machine.

Revision 1.8 / (download) - annotate - [select for diffs], Tue Nov 30 22:30:43 2010 UTC (9 years ago) by pooka
Branch: MAIN
Changes since 1.7: +2 -2 lines
Diff to previous 1.7 (colored) to selected 1.26 (colored)

lintsquelch

Revision 1.7 / (download) - annotate - [select for diffs], Tue Nov 30 14:24:40 2010 UTC (9 years ago) by pooka
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6 (colored) to selected 1.26 (colored)

Change RUMP_SP_CLIENT to RUMP_SERVER.  The former was, in addition
to being annoying to write, slightly misguiding, since it contains
the server url.

Revision 1.6 / (download) - annotate - [select for diffs], Mon Nov 29 16:08:03 2010 UTC (9 years ago) by pooka
Branch: MAIN
Changes since 1.5: +13 -12 lines
Diff to previous 1.5 (colored) to selected 1.26 (colored)

Remove remaining panic()s from server-side code.  Also, allow to
send an out-of-band error.  Make the client retry syscall requests
if this error is EAGAIN, fail them otherwise.

Revision 1.5 / (download) - annotate - [select for diffs], Thu Nov 25 17:59:03 2010 UTC (9 years ago) by pooka
Branch: MAIN
Changes since 1.4: +13 -5 lines
Diff to previous 1.4 (colored) to selected 1.26 (colored)

*facepalm*, adjust remote copyinstr to work in cases where the end
of the max copyin extends to an unmapped page.

Noticed, as usual, by tests.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Nov 24 17:03:39 2010 UTC (9 years ago) by pooka
Branch: MAIN
Changes since 1.3: +6 -6 lines
Diff to previous 1.3 (colored) to selected 1.26 (colored)

update locking proto, use unputwait

Revision 1.3 / (download) - annotate - [select for diffs], Fri Nov 19 15:25:49 2010 UTC (9 years ago) by pooka
Branch: MAIN
Changes since 1.2: +96 -75 lines
Diff to previous 1.2 (colored) to selected 1.26 (colored)

Start working on making the syscall proxy code threadsafe.  The
basics are there, but a few more tweaks are needed.  The reason
I'm committing it now is that the code was mindnumbingly boring to
write (no wonder it took me almost 3 years to get it done), and I
might burn it if it's not in a safe place.

Revision 1.2 / (download) - annotate - [select for diffs], Fri Nov 5 13:50:48 2010 UTC (9 years, 1 month ago) by pooka
Branch: MAIN
Changes since 1.1: +16 -9 lines
Diff to previous 1.1 (colored) to selected 1.26 (colored)

use -1/errno for failure: it's much more convenient for the users

Revision 1.1 / (download) - annotate - [select for diffs], Thu Nov 4 21:01:29 2010 UTC (9 years, 1 month ago) by pooka
Branch: MAIN
Diff to selected 1.26 (colored)

Add library for rump syscall client stubs.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>