Commit Graph

50 Commits

Author SHA1 Message Date
christos b708da7ce8 drop my name from the advertising clause. 2019-12-02 19:23:53 +00:00
mrg de11d87641 introduce some common variables for use in GCC warning disables:
GCC_NO_FORMAT_TRUNCATION    -Wno-format-truncation (GCC 7/8)
GCC_NO_STRINGOP_TRUNCATION  -Wno-stringop-truncation (GCC 8)
GCC_NO_STRINGOP_OVERFLOW    -Wno-stringop-overflow (GCC 8)
GCC_NO_CAST_FUNCTION_TYPE   -Wno-cast-function-type (GCC 8)

use these to turn off warnings for most GCC-8 complaints.  many
of these are false positives, most of the real bugs are already
commited, or are yet to come.


we plan to introduce versions of (some?) of these that use the
"-Wno-error=" form, which still displays the warnings but does
not make it an error, and all of the above will be re-considered
as either being "fix me" (warning still displayed) or "warning
is wrong."
2019-10-13 07:28:04 +00:00
kamil bffacbd197 Stop defining _rpcsvcdirty in bss and data
_rpcsvcdirty is already defined in the generated code from rpcgen(1).

Detected during the build with Address Sanitizer (MKSANITIZER).
2019-08-15 08:34:19 +00:00
sevan 421949a31f ansify - drop the K&R style prototypes & implementations. 2018-01-23 21:06:24 +00:00
christos 823b06f593 remove my copyright. 2017-06-03 14:44:12 +00:00
christos cb8ff824c3 fix bogus %m
use EXIT_FAILURE
2015-08-21 15:41:38 +00:00
lukem 0466bbb6dd Fix -Wshadow and -Wcast-qual issues 2009-04-18 13:02:36 +00:00
perry 8b0f9554ff convert __attribute__s to applicable cdefs.h macros 2007-12-15 19:44:37 +00:00
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
bouyer 58ce78eeda When forking, we keep a reference to the status db file, and if the
memory copy of the file is dirty, is will be synced when the child exists.
But the parent may have done changes to the database in the meantime, resulting
in a db corruption.
Fix this by calling sync_file() just before the fork. The child will still have
a reference to the db, but won't try to write it on exit.
2005-11-03 19:36:42 +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
wiz 334bfb30b4 More e.g. cleanup. Igor Sobrado, PR 19692. 2003-04-07 07:04:49 +00:00
sommerfeld 8f6f405641 Use <bsd.rpc.mk> 2003-01-05 19:24:06 +00:00
wiz db8b42a060 hardware with a d, from Adrian Mrva. 2002-12-21 12:47:21 +00:00
fvdl d4f83aa2bb Use a non-blocking SVC for TCP connections. 2002-11-08 00:14:50 +00:00
wiz 146392e159 Sort sections. 2002-02-02 01:42:45 +00:00
tv 6f9b615f48 Make sure DESTDIR is defined before attempting to use it in a dependency. 2002-01-31 15:21:09 +00:00
wiz a2d753e3ef Whitespace nits. 2002-01-19 11:44:57 +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
cgd 4bf5f7086b ${RPCGEN}, not hard-coded rpcgen 2000-07-25 06:29:44 +00:00
mycroft 45d698dd33 Make the rpcsvc dependencies work a bit better. 2000-06-12 01:57:25 +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 ff01cf4808 Solaris hosts with multiple names (e.g. short & fqdn) sends notification
with both names. So log the "Unsolicited notification" with LOG_DEBUG
instead of LOG_ERR.
Don't return failure if we received a notification for which the host is
unknown, or we don't have outstanding requests. The remote host will retry
forever otherwise.
2000-06-06 18:19:56 +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
lukem 0a94f4f077 use CPPFLAGS instead of CFLAGS 1997-10-25 06:57:53 +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
cjs 7a66732d34 Back out BUILDDIR and NOINSTALL changes. 1997-05-31 21:21:13 +00:00
cjs 5fd7ce7066 These updates to the build allow building against include files
and libs in the object tree, if you use a separate object tree,
while maintaining backward compatability with other build methods.
See the notes in src/share/mk/bsd.README for full details. Note
that the `make includes' target now only installs the include files
in the build directory (if you use one--otherwise they go in DESTDIR
just like before); `make install' will install include files in
DESTDIR.
1997-05-26 03:55:19 +00:00
christos f0fe357c91 eliminate struct sigcontext 1997-05-17 15:52:52 +00:00
perry 729632280d transations -> transactions per pr 3333 from SAITOH Masanobu 1997-03-14 23:24:23 +00:00
scottr 6a8f5a85fd RCS Id police 1997-03-11 04:13:02 +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