Commit Graph

61 Commits

Author SHA1 Message Date
marcel
89b1ef2eaa Change the definition of NULL on ia64 (for LP64 compilations) from
an int constant to a long constant. This change improves consistency
in the following two ways:
1. The first 8 arguments are always passed in registers on ia64, which
   by virtue of the generated code implicitly widens ints to longs and
   allows the use of an 32-bit integral type for 64-bit arguments.
   Subsequent arguments are passed onto the memory stack, which does
   not exhibit the same behaviour and consequently do not allow this.
   In practice this means that variadic functions taking pointers
   and given NULL (without cast) work as long as the NULL is passed
   in one of the first 8 arguments. A SIGSEGV is more likely the
   result if such would be done for stack-based arguments. This is
   due to the fact that the upper 4 bytes remain undefined.
2. All 64-bit platforms that FreeBSD supports, with the obvious
   exception of ia64, allow 32-bit integral types (specifically NULL)
   when 64-bit pointers are expected in variadic functions by way of
   how the compiler generates code. As such, code that works correctly
   (whether rightfully so or not) on any platform other than ia64, may
   fail on ia64.

To more easily allow tweaking of the definition of NULL, this commit
removes the 12 definitions in the various headers and puts it in a
new header that can be included whenever NULL is to be made visible.

This commit fixes GNOME, emacs, xemacs and a whole bunch of ports
that I don't particularly care about at this time...
2003-12-07 21:10:06 +00:00
mbr
88d25e9b2f Replace the old SCM_CREDS cred procedures. They can now be
replaced just fine with getpeereid() and the whole code
gets a lot simpler. We don't break the ABI, since all server
programms use __rpc_get_local_uid(), and we just change library
internals.

Reviewed by:	des
2003-06-15 10:32:01 +00:00
nectar
2bf537b7ea Clean up some signed/unsigned issues in the XDR code.
Obtained from:	OpenBSD
2003-03-07 13:19:40 +00:00
fjoe
1474e21b9c unifdef -D_THREAD_SAFE 2003-01-24 01:47:55 +00:00
mbr
f209ccb0fd Implement non-blocking tcp-connections.
Reviewed by:	rwatson
Obtained from:	NetBSD
MFC after:	1 day
2003-01-16 07:13:51 +00:00
schweikh
d3367c5f5d Correct typos, mostly s/ a / an / where appropriate. Some whitespace cleanup,
especially in troff files.
2003-01-01 18:49:04 +00:00
alfred
d049443a42 remove #pragma ident 2002-09-04 23:58:23 +00:00
robert
e3955115b6 Remove duplicated '__BEGIN_DECLS' which obviated compiling
C++ sources that use this header.

Reported by:	Jan Stocker <Jan.Stocker@t-online.de>
2002-07-21 20:37:58 +00:00
alfred
11274ff2e6 clnt_vc_create() has const scalar arguments that wind up being modified,
fix it (make them non-const) and update the associated documentation.

Submitted by: mbr
2002-07-14 23:35:04 +00:00
alfred
5b169b54b8 Add functions allowing for the user to specify a timeout for rpc functions.
Update copyrights to reflect where this code was lifted from. (tirpc '99)

Submitted by: mbr
2002-07-11 16:23:04 +00:00
ru
59049318b6 Added new bsd.incs.mk which handles installing of header files
via INCS.  Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files.  Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1.  Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

	kerberos5/lib/libtelnet/Makefile
	lib/libbz2/Makefile
	lib/libdevinfo/Makefile
	lib/libform/Makefile
	lib/libisc/Makefile
	lib/libmenu/Makefile
	lib/libmilter/Makefile
	lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD.  Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".
2002-05-12 16:01:00 +00:00
des
e48f76df85 Spell void * as void * rather than caddr_t. This is complicated by the
fact that caddr_t is often misspelled as char *.

Sponsored by:	DARPA, NAI Labs
2002-04-28 15:18:50 +00:00
imp
300518c0a1 Breath deep and take __P out of the system include files.
# This appears to not break X11, but I'm having problems compiling the
# glide part of the server with or without this patch, so I can't tell
# for sure.
2002-03-23 17:24:55 +00:00
alfred
a28390a969 Constify the first arg to callrpc(3). 2002-03-22 19:19:32 +00:00
obrien
ded92cd9de Tokens after #endif are not strict ISO. 2002-03-13 10:29:06 +00:00
mike
bcee06d42c o Move NTOHL() and associated macros into <sys/param.h>. These are
deprecated in favor of the POSIX-defined lowercase variants.
o Change all occurrences of NTOHL() and associated marcros in the
  source tree to use the lowercase function variants.
o Add missing license bits to sparc64's <machine/endian.h>.
  Approved by: jake
o Clean up <machine/endian.h> files.
o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>.
o Remove prototypes for non-existent bswapXX() functions.
o Include <machine/endian.h> in <arpa/inet.h> to define the
  POSIX-required ntohl() family of functions.
o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>,
  and <sys/param.h>.
o Prepend underscores to the ntohl() family to help deal with
  complexities associated with having MD (asm and inline) versions, and
  having to prevent exposure of these functions in other headers that
  happen to make use of endian-specific defines.
o Create weak aliases to the canonical function name to help deal with
  third-party software forgetting to include an appropriate header.
o Remove some now unneeded pollution from <sys/types.h>.
o Add missing <arpa/inet.h> includes in userland.

Tested on:	alpha, i386
Reviewed by:	bde, jake, tmm
2002-02-18 20:35:27 +00:00
alfred
5689562575 Fix cc -Wall, fix rcsid warnings, add missing prototypes,
change prototypes to be the same as in the original sun tirpc code.
Remove ()P macro in a file where the mayority had ()P already removed.
Add them if the mayority use ()P macros.

Submitted by: mbr
Requested by: bde
2002-02-05 23:43:43 +00:00
des
53f5633b02 Move arguments in prototype out of application namespace.
Sponsored by:	DARPA, NAI Labs
2002-02-05 06:31:58 +00:00
wpaul
6c9e575b19 Add compatibility functions for the AF_LOCAL RPC transport stuff
that used to live in RPC 4.0. This is needed for yppasswd and
rpc.yppasswdd to work correctly. Patch supplied by Martin Blapp.
2001-10-04 21:03:17 +00:00
peter
ee6e4387ac Stop gcc's fixincludes making an exception for this file 2001-09-10 01:15:48 +00:00
iedowse
dd53c9014e Add a new clnt_control() request `CLSET_CONNECT' that controls
whether or not connect(2) is used for UDP client sockets. The default
is not to connect(), so existing clients will see no change in
behaviour.

The use of connect(2) for UDP clients has a number of advantages:
only replies from the intended address are received, and ICMP errors
pertaining to the connection are reported back to the application.
2001-06-23 19:43:21 +00:00
wpaul
65391cf528 Add a CLSET_ASYNC command, which allows us to (ab)use the clnt_dg transport
to make asynchronous RPCs. This is needed to help fix ypbind, which can no
longer override the clnt_dg_call() method (formerly the clntudp_call()
method) due to all the internal descriptor locking code in TI-RPC. Turning
on this flag allows us to send an RPC request, then return immediately,
and handle a reply later, rather than being forced to do the request
and reply in a single function call.

Also fix a byte ordering bug: when clnt_dg_call() increments the XID
prior to transmitting a request, it uses the raw value, which is wrong.
The XID is stored in network byte order, i.e. big-endian. The CLSET_XID
and CLGET_XID commands in clnt_dg_control() use ntohl()/htonl() to get
the byte ordering right, but because clnt_dg_call() does not do this,
using CLSET_XID/CLGET_XID doesn't actually work, unless you're on a
big endian host, which we aren't (yet). Fix clnt_dg_call() to byte swap
properly when doing the increment.
2001-03-27 21:27:33 +00:00
alfred
2393aaf764 fix: text following `#else' violates ANSI standard
Pointed out by: ${BDECFLAGS}
2001-03-26 00:35:23 +00:00
alfred
8e5f42ddb8 change callrpc() from taking "char *" args, I'm quite sure they really meant
to use "void *".

remove a duplicate prototype for callrpc() from libexec/ypxfr/ypxfr_extern.h
2001-03-23 16:14:49 +00:00
alfred
8e3af36321 forgot prototyle for __rpc_get_local_uid() 2001-03-22 18:44:57 +00:00
alfred
e345ef4811 Unbreak LINT.
because rpcb_clnt.h is generated during buildworld and only installed into
/usr/include/rpc (and not present in src/include/rpc) we can fix it
by simply not including it when _KERNEL is defined.

this isn't the most elegant, way and might deserve some revisiting later.

Pointed out by: bde
2001-03-20 10:27:03 +00:00
alfred
fb24675dcc The TI-RPC spammed over a '#ifdef _KERNEL' hack for the xdrproc_t typedef
revert the spammage

Pointed out by: bde
2001-03-20 08:26:22 +00:00
alfred
c0be98ba61 comment out #pragma directive containing Sun SCM tags 2001-03-20 08:20:50 +00:00
alfred
5174ce136a Add missing comma when KERBEROS is defined. 2001-03-19 19:36:11 +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
nsayer
653b65714e Back out 1.15. It caused more harm than good. Something, however,
must be done to fix this situation.

Submitted by: bde
2000-07-21 14:49:09 +00:00
nsayer
6405d79248 Moving forward on my commitment to always make at least one commit from
a terminal room of any conference I attend....

Fix xdrproc_t prototype. () instead of (...) breaks C++ programs.
2000-06-22 01:46:25 +00:00
shin
eb4463295b bindresvport related changes
-changed bindresvport2 to bindresvport_sa
 -merged the man into bindresvport.3

All discussion between Jean-Luc Richier <Jean-Luc.Richier@imag.fr>,
Theo de Raadt <deraadt@cvs.openbsd.org>, itojun, is reflected to
this code. (Actually Theo de Raadt write the code simultaneously as the
discussion change.)
2000-01-26 09:02:42 +00:00
shin
16085f4294 libc rcmd update for IPv6.
A new function bindresvport2(), AF independent version of bindresvport()
is also added.

Reviewed by: sumikawa
Obtained from: KAME project
2000-01-13 15:09:48 +00:00
peter
d53e4c1d80 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL"
is an application space macro and the applications are supposed to be free
to use it as they please (but cannot).  This is consistant with the other
BSD's who made this change quite some time ago.  More commits to come.
1999-12-29 05:07:58 +00:00
peter
d4e3ebaf0a $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
wpaul
1c09b1d942 #ifdef out DES ioctls which don't exist in FreeBSD. These originated
with the SunRPC code to allow the use of hardware DES on certain Sun
hardware that supported it (if you installed the appropriate kit). We
don't have them and they apparently break the ioctl table
generation for kdump.

Pointed out by: bde
1998-09-26 01:29:51 +00:00
bde
b973f78b94 Don't declare functions without a prototype if KERNEL is defined. This
fixes lots of warnings about missing prototypes in sys/netatm/spans/*.
1998-09-21 02:43:30 +00:00
obrien
b0502cca70 Add support for the RPC 64-bit integer type ``hyper''. 1998-09-08 17:33:12 +00:00
bde
65241a7de7 Uncommit the generated file key_prot.h. Install it from where it
is generated.  It must be installed in both /usr/include/rpc/ and
/usr/include/rpcsvc/ for historical reasons.  The generated version
was once missing ANSI prototypes because the wrong flags were passed
to rpcgen, but that is fixed now.  The committed version had `#pragma
indent' which gratuitously broke K&R support.  Apart from this, all
versions before and after this commit are identical.
1998-02-13 03:10:28 +00:00
bde
71b8855ac8 Null change to attach the correct log message for the previous commit:
Added some forward struct declarations so that this file is less
self-insufficent.
Fixed an incomplete prototype.
Fixed some misformattings.
1998-01-16 11:47:51 +00:00
bde
dd1463a774 Added a forward struct declaration so that this file is less
self-insufficent.
1998-01-16 11:46:05 +00:00
bde
dac266151d Commented out `#pragma ident' so that the K&R support isn't gratuitously
broken.  This also prevents ANSI compilers from recognizing the pragma
as a request to run /usr/games/hack...
1998-01-16 11:37:54 +00:00
bde
22cfa5fbad Removed ifndef of AUTH_NONE. The conflict with login_cap.h was fixed
better by not defining AUTH_NONE in login_cap.h.
1997-08-21 19:31:04 +00:00
wpaul
db46899f5a Resolve conflicts. 1997-05-28 04:45:15 +00:00
wpaul
3be3c10157 This commit was generated by cvs2svn to compensate for changes in r26209,
which included commits to RCS files with non-trunk default branches.
1997-05-28 04:42:53 +00:00
peter
26a980720c fix missing close comment in login_cap additions 1997-05-18 08:12:14 +00:00
eivind
1ab5f06651 Back out all of yesterdays include file changes. 1997-05-07 20:01:10 +00:00
eivind
379be4bd69 Make a lot of include-files self-contained. I excluded the patches changing
int's to gid_t and uid_t - should I commit these, too?

Closes PR misc/2625.

Submitted by:	Julian Assange <proff@iq.org>
1997-05-07 02:27:18 +00:00
bde
173bd2da2e Fixed missing __P() to complete the K&R support in this header. 1997-05-07 00:58:23 +00:00