Commit Graph

27 Commits

Author SHA1 Message Date
tron 0b2d4e954a Use sigaction(2) to setup automatic disposal of child processes after
daemonizing. This is more portable and avoids zombie "rpc.statd"
processes after an NFS client running e.g. Mac OS X shuts down.

Reviewed by christos@.
2006-03-28 15:21:00 +00:00
elad 70b1ddf050 Overrun found by Coverity, CID 1549. 2006-03-17 02:41:31 +00:00
bouyer 3cce18ce83 We can't call db->put() with key or data pointing back to db(3)'s memory
space, or the database will be corrupted (noticed when the database is
updated in reset_host()). Change change_host() to copy hostname and HostInfo
to local storage before calling db->put().
Change notify_one() to use change_host() instead of calling db->put()
directly.
2005-11-27 16:03:20 +00:00
christos 9f17a05ff3 PR/31502: John: rpc.statd doesn't save failed notifies in the database.
Tested by Martti Kuparinen.
2005-10-20 12:53:42 +00:00
yamt 45717cbc50 init_file: copy status_info from static storage so that
statd doesn't always use the same "status" number.
2004-01-14 10:29:46 +00:00
yamt 65c4e197a1 reset_host: reset actual host infos rather than reset copies of them. 2004-01-14 10:28:17 +00:00
fvdl d4f83aa2bb Use a non-blocking SVC for TCP connections. 2002-11-08 00:14:50 +00:00
christos 607b156b2d Use SA_NOCLDWAIT to avoid zombies. 2001-11-23 17:10:29 +00:00
tron 59d12b63b8 Add a handler for SIGCHLD which collects dead childs via wait3(2) so that
"rpc.statd" won't leave zombies arround.
2001-11-22 12:23:15 +00:00
cgd 25bdbb661e convert to use getprogname() 2001-02-19 23:22:40 +00:00
fvdl 7704425071 Convert to tirpc interface, and to be af-independent. 2000-06-09 14:00:52 +00:00
bouyer 491268e2d5 Always copy pointer returned by db->get or db->seq before using, to avoid
alignements issues.
While doing this I found a bug in reset_host(), notifyReqd was set to
the wrong pointer.
2000-06-09 09:57:29 +00:00
bouyer e85966b43e db->seq() returns 0 for success and 1 for failure, not the opposite.
walk_db() was silently failing because of this.
2000-06-06 18:17:07 +00:00
scottr b2f847943a Tweak the usage output a bit, and exit after printing it. 1999-06-10 05:53:51 +00:00
thorpej 56c5efa335 Use pidfile(3). 1999-06-06 02:52:16 +00:00
mrg 32f519716b - use an array MAXHOSTNAMELEN+1 size to hold hostnames
- ensure hostname from gethostname() is nul-terminated in all cases
- minor KNF
- use MAXHOSTNAMELEN over various other values/defines
- be safe will buffers that hold hostnames
1998-07-06 06:56:06 +00:00
tron 00d198478f Fix broken call to dbopen(), fixes PR bin/5637 by Azuma Okamoto. 1998-06-22 20:40:01 +00:00
thorpej bab116cf5f To print a size_t, cast to u_long and use %lu printf format so that
this works on the Alpha.
1997-10-25 01:29:30 +00:00
christos 1175f55b11 Use a db(3) hash database instead of shared memory. Don't fork() to service
requests in the database when restarting.
1997-10-21 20:38:03 +00:00
is 3b81cd07b7 Only map 16MBytes of file, enough for some 16000 hosts on the LAN.
Stopgap fix for PR 4225 by Matthias Scheler (rpc.statd doesn't run on m68k).

XXX This should be done in a different way. XXX

Matthias proposes to use a PMAP capable of mapping more than 256 MB
per user process (You can do this by changing your vm_param constants
even now).

However, statd could use saner data structure to save on address space
easily. E.g., most host names will be much smaller than the allocated
1024(+1 for trailing zero) bytes. Using variable length names would
allow, depending on environment, a factor of 30 more hosts per address
space.

Btw, if anybody really needs more than 16k hosts handled by statd, the
data structure is unsuable anyway; currently, the array of entries is
linearly searched. Something like a DB_BTREE should be used.
1997-10-21 13:33:23 +00:00
drochner 01a642fa68 The third argument to msync() got lost - bring it back. 1997-10-18 14:11:43 +00:00
lukem 021be7fd11 WARNSify; generate ansi c code with rpcgen, cleanup manpage, add rcsids 1997-10-17 16:12:48 +00:00
lukem 90a9b36a70 WARNSify; generate ansi c code with rpcgen, cleanup manpage, add rcsids 1997-10-17 16:02:51 +00:00
lukem aa5b34a6f5 call msync() correctly 1997-10-17 13:21:06 +00:00
christos c36a502364 msync needs a third argument. 1997-10-16 23:32:27 +00:00
christos f0fe357c91 eliminate struct sigcontext 1997-05-17 15:52:52 +00:00
scottr 24ce527b89 Status monitor daemon by A.R. Gordon, ported from FreeBSD. While the
functionality was not significantly altered, the code was KNFed and
the build process cleaned up considerably.
1997-03-10 06:28:29 +00:00