40 Commits

Author SHA1 Message Date
ed
af31e8843c More -Wmissing-variable-declarations fixes.
In addition to adding `static' where possible:

- bin/date: Move `retval' into extern.h to make it visible to date.c.
- bin/ed: Move globally used variables into ed.h.
- sbin/camcontrol: Move `verbose' into camcontrol.h and fix shadow warnings.
- usr.bin/calendar: Remove unneeded variables.
- usr.bin/chat: Make `line' local instead of global.
- usr.bin/elfdump: Comment out unneeded function.
- usr.bin/rlogin: Use _Noreturn instead of __dead2.
- usr.bin/tset: Pull `Ospeed' into extern.h.
- usr.sbin/mfiutil: Put global variables in mfiutil.h.
- usr.sbin/pkg: Remove unused `os_corres'.
- usr.sbin/quotaon, usr.sbin/repquota: Remove unused `qfname'.
2012-10-19 14:49:42 +00:00
dim
770ca66a70 In usr.bin/rpcgen/rpc_main.c, use execvp(3) instead of execv(3), so
rpcgen will search the current PATH for the preprocessor.  This makes it
possible to run a preprocessor built during the cross-tools stage of
buildworld.

MFC after:	1 week
2012-02-06 21:35:11 +00:00
dim
9df8133640 Amend r231079 by properly shifting up the existing arguments in
rpc_main.c's insarg() function.  I had forgotten to put this in my patch
queue, sorry.

Pointy hat to:	me
MFC after:	1 week
2012-02-06 12:08:41 +00:00
dim
7568a91a59 Let rpcgen(1) support an environment variable RPCGEN_CPP to find the C
preprocessor to run.  Previously, it always ran /usr/bin/cpp, unless you
used the -Y option, and even then you could not set the basename.  It
also attempted to run /usr/ccs/lib/cpp for SVR4 compatibility, but this
is obsolete, and has been removed.

Note that setting RPCGEN_CPP to a command with arguments is supported,
though the command line parsing is simplistic.  However, setting it to
e.g. "gcc46 -E" or "clang -E" will lead to problems, because both gcc
and clang in -E mode will consider files with unknown extensions (such
as .x) as object files, and attempt to link them.

This could be worked around by also adding "-x c", but it is much safer
to set RPCGEN_CPP to e.g. "cpp46" or "clang-cpp" instead.

MFC after:	1 week
2012-02-06 12:03:21 +00:00
dim
a0f02c4418 In usr.bin/rpcgen/rpc_main.c, properly check the return value of
strlcpy(), in addition to checking that of strlcat().

MFC after:	1 week
2012-02-05 20:55:38 +00:00
ed
e7e5b53bf1 Replace index() and rindex() calls with strchr() and strrchr().
The index() and rindex() functions were marked LEGACY in the 2001
revision of POSIX and were subsequently removed from the 2008 revision.
The strchr() and strrchr() functions are part of the C standard.

This makes the source code a lot more consistent, as most of these C
files also call into other str*() routines. In fact, about a dozen
already perform strchr() calls.
2012-01-03 18:51:58 +00:00
ed
b2f1332428 ANSIfy various tools in usr.bin/.
Most of these tools properly build at WARNS=6, except for their K&R
function declarations. Fix this, so we can bump WARNS as well.
2010-01-02 10:09:20 +00:00
delphij
78fc8a36f5 sysent.h is installed as sys/sysent.h, so reflect it.
Approved by:	re (kensmith)
Spotted by:	Changming Sun <changming at staff.sina.com.cn>
Sponsored by:	SINA Corporation
2007-08-23 09:38:26 +00:00
rodrigc
fe3737065c Eliminate coredump problem introduced by last commit.
Noticed by:	Guido van Rooij <guido at gvr dot org>
2005-11-14 13:35:08 +00:00
rodrigc
2cc617682f Eliminate build breakage due to warnings about const. 2005-11-14 03:11:25 +00:00
dwmalone
6a5a7b7290 Use ANSI definitions.
Avoid using extern by declaring shared functions in header files.
Const poision.
2005-11-13 21:17:24 +00:00
stefanf
7f349d21e6 Don't generate K&R C code. The -C flag is kept for backwards compatibility.
Also remove the SIG_PF macro, there is no need to cast closedown.
2005-09-02 10:23:26 +00:00
stefanf
cd3615cae7 Only write the dispatch table function prototypes to the header if the -h
flag was specified.  If all files are generated at once, those functions are
static and shouldn't appear in the header.

PR:		84450
Reviewed by:	alfred
2005-09-01 19:16:25 +00:00
stefanf
ed8baf6598 - Use prototypes in headers.
- Include rpc_scan.h before rpc_util.h for the tok_kind enum.
- Nuke unused declarations.
2005-08-31 20:45:15 +00:00
stefanf
991cce17d6 Rename the variable inline' to inline_size'. 2005-08-31 19:44:40 +00:00
stefanf
e73616b51f Move #ident into #if 0. 2005-05-31 20:00:29 +00:00
stefanf
d65c308b85 Let the generated code include <string.h> instead of <memory.h>. 2005-02-10 08:12:38 +00:00
smkelly
746c90d1a0 - style(9) improvements courtesy of bde.
- Revise the former commit to behave nicer on filenames containing
  multiple '.' characters.
- Prevent the generation of macros starting with "__".
2004-05-02 07:07:54 +00:00
smkelly
7d92f80dd2 Teach rpcgen to generate .h files properly when the input filename contains
characters that can't be used in preprocessor macros.

PR:		bin/66156
Submitted by:	K S Braunsdorf <rpc@ksb.npcguild.org>
2004-05-02 01:55:23 +00:00
mbr
27abef6699 Fix broken -a functionality.
Reviewed by:	phk
Submitted by:	Martin Kammerhofer <mkamm@gmx.net>
PR:		53451

MFC:		1 week
2003-06-19 09:19:51 +00:00
mbr
f4b7d59385 Implement nonblocking tpc-connections. rpcgen -m does still
produce backcompatible code.

Reviewed by:	rwatson
Obtained from:	NetBSD
MFC after:	1 day
2003-01-16 07:27:30 +00:00
charnier
26ad533edb Removal of spaces at EOL. Add __FBSDID. New function xmalloc, xrealloc,
xstrdup. There is a crash() function that do cleaning before exiting the
program. The new functions are wrappers that make use of crash() in case
of allocation failure. warn, exit -> err.

Reviewed by:	alfred
2002-07-21 12:55:04 +00:00
alfred
d95d8b89ab - TI-RPC is now the default again for code generation.
- As before, inetd support support is turned of per default.
  Code for inetd can be made with -I.

- Support for ``transport monitors'' and the NLSPROVIDER env
  variable is still there , even if their use is not clear in
  non TLI stream based systems like Free-/NetBSD. It can be activated
  with -P.

- There are a few corrections in rpcgen.1 and usage function to conform
  to the code. Added and documented -P

- I removed the #ifdefs checks for Free-/NetBSD since we are the only
  ones who use this code. MaxOS X may have the same limitations as
  we have, so this code will correctly build for them.

- Generate correct cflags.

Submitted by: mbr, Jean-Luc Richier <Jean-Luc.Richier@imag.fr>
PR: bin/29175, misc/27816
2002-07-14 17:54:00 +00:00
imp
1698cb216e remove __P 2002-03-22 01:33:25 +00:00
kris
5329ff37f2 Don't overflow a buffer from command line arguments.
MFC after:	2 weeks
2001-08-20 09:43:04 +00:00
alfred
9c4024b5ed Turn -b (BSD socket compat mode) back on by default, as we don't have TLI/XTI 2001-04-13 23:20:16 +00:00
alfred
f67e4a8fc7 Bring in a hybrid of SunSoft's transport-independent RPC (TI-RPC) and
associated changes that had to happen to make this possible as well as
bugs fixed along the way.

  Bring in required TLI library routines to support this.

  Since we don't support TLI we've essentially copied what NetBSD
  has done, adding a thin layer to emulate direct the TLI calls
  into BSD socket calls.

  This is mostly from Sun's tirpc release that was made in 1994,
  however some fixes were backported from the 1999 release (supposedly
  only made available after this porting effort was underway).

  The submitter has agreed to continue on and bring us up to the
  1999 release.

  Several key features are introduced with this update:
    Client calls are thread safe. (1999 code has server side thread
    safe)
    Updated, a more modern interface.

  Many userland updates were done to bring the code up to par with
  the recent RPC API.

  There is an update to the pthreads library, a function
  pthread_main_np() was added to emulate a function of Sun's threads
  library.

  While we're at it, bring in NetBSD's lockd, it's been far too
  long of a wait.

  New rpcbind(8) replaces portmap(8) (supporting communication over
  an authenticated Unix-domain socket, and by default only allowing
  set and unset requests over that channel). It's much more secure
  than the old portmapper.

  Umount(8), mountd(8), mount_nfs(8), nfsd(8) have also been upgraded
  to support TI-RPC and to support IPV6.

  Umount(8) is also fixed to unmount pathnames longer than 80 chars,
  which are currently truncated by the Kernel statfs structure.

Submitted by: Martin Blapp <mb@imp.ch>
Manpage review: ru
Secure RPC implemented by: wpaul
2001-03-19 12:50:13 +00:00
obrien
08d8f1af69 Have rpcgen actually tell us what cpp it is looking for (as it would if we
were SVR%).
2001-01-10 19:12:47 +00:00
obrien
9c092958f9 Use /usr/bin/cpp as on NetBSD, not /usr/libexec/cpp. 2001-01-09 17:14:04 +00:00
peter
3b842d34e8 $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
obrien
f6f60ebfb1 include <pthread.h>
Submitted by:	Alexander Leidinger <netchild@wurzelausix.CS.Uni-SB.DE>
1998-09-25 11:43:48 +00:00
jb
5f491ccf6e Fix a #ifndef that became a #ifdef and changed the default
behaviour of rpcgen.

Noticed by: bde
1998-03-07 05:43:59 +00:00
jb
ddfe5471a6 Add #ifdefs for __NetBSD__ in the rest of the places where __FreeBSD__
is defined so that this program behaves the same when built with
either set of tools. The only difference is where the pre-processor
is found. And that is a bug - it should check the CPP environment
variable and the path before just assuming that the compiled in
path is OK. I guess we should be using -Y ${WORLDPATH}/usr/bin/cpp
during a bootstrap build.
1998-01-15 08:46:58 +00:00
jb
ac43f6aba8 Add __NetBSD__ in a couple of places to allow this program to
compile under NetBSD, but behave like FreeBSD. For the time being,
look for NetBSD's cpp in /usr/bin.
1998-01-09 06:32:54 +00:00
charnier
4dfc83bbfa Use err(3), cosmetic in usage(), remove `cmdname'. 1997-08-06 06:47:41 +00:00
jkh
730964efd2 General -Wall warning cleanup, part I.
Submitted-By: Kent Vander Velden <graphix@iastate.edu>
1996-07-12 19:08:36 +00:00
wpaul
15a1e09c3d Clean up. (I hope I'm doing this right.)
Update rpcgen with the one from the TI-RPC 2.3 distribution.

Note that when built for FreeBSD, this version of rpcgen assumes
backwards compatibility mode by default. This means that it will produce
ONCRPC 4.0 compatible code unless otherwise instructed, instead of the
other way around.

One incompatibility has also been worked around: this rpcgen normally
always emits an '#include <stropts.h>' directive whether you select
backwards compatibility mode or not. We don't have STREAMS, so this
behavior has been changed: now it will only emit this line if run in TI-RPC
mode.

The 'generate output files in current directory instead of the
directory where the protocol definition file lives' hack from the
original rpcgen has been preserved.

Notable new features:

- Can be used to generate RPC servers that can be launched
  from port monitors such as inetd(5).

- Can generate ANSI C code.

- Can generate sample client and server top-level programs and
  makefiles in addition to the usual client and server stubs.

- Can generate inline XDR routines.
1995-12-13 03:31:10 +00:00
rgrimes
a14d555c87 Remove trailing whitespace. 1995-05-30 06:41:30 +00:00
nate
44a74d9438 Fix rpcgen so that generated files are written to the current working
directory (instead of the same directory as the source files) and that
#includes in those files do not contain the path to the source file.

Obtained from: J.T. Conklin via NetBSD
1995-03-04 17:47:50 +00:00
wollman
2698777ee3 Move RPC stub generator program over from 1.1.5.
Submitted by:	Original work in 1.x by J. T. Conklin.
1994-08-07 18:01:39 +00:00