7846561ddd
Signed-off-by: Steve Dickson <steved@redhat.com>
2722 lines
72 KiB
Diff
2722 lines
72 KiB
Diff
diff --git a/HACKING b/HACKING
|
|
new file mode 100644
|
|
index 0000000..d562427
|
|
--- /dev/null
|
|
+++ b/HACKING
|
|
@@ -0,0 +1,2 @@
|
|
+Patches can be sent to libtirpc-devel@lists.sourceforge.net with a CC
|
|
+to linux-nfs@vger.kernel.org
|
|
diff --git a/INSTALL b/INSTALL
|
|
new file mode 100644
|
|
index 0000000..2099840
|
|
--- /dev/null
|
|
+++ b/INSTALL
|
|
@@ -0,0 +1,370 @@
|
|
+Installation Instructions
|
|
+*************************
|
|
+
|
|
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
|
|
+Inc.
|
|
+
|
|
+ Copying and distribution of this file, with or without modification,
|
|
+are permitted in any medium without royalty provided the copyright
|
|
+notice and this notice are preserved. This file is offered as-is,
|
|
+without warranty of any kind.
|
|
+
|
|
+Basic Installation
|
|
+==================
|
|
+
|
|
+ Briefly, the shell command `./configure && make && make install'
|
|
+should configure, build, and install this package. The following
|
|
+more-detailed instructions are generic; see the `README' file for
|
|
+instructions specific to this package. Some packages provide this
|
|
+`INSTALL' file but do not implement all of the features documented
|
|
+below. The lack of an optional feature in a given package is not
|
|
+necessarily a bug. More recommendations for GNU packages can be found
|
|
+in *note Makefile Conventions: (standards)Makefile Conventions.
|
|
+
|
|
+ The `configure' shell script attempts to guess correct values for
|
|
+various system-dependent variables used during compilation. It uses
|
|
+those values to create a `Makefile' in each directory of the package.
|
|
+It may also create one or more `.h' files containing system-dependent
|
|
+definitions. Finally, it creates a shell script `config.status' that
|
|
+you can run in the future to recreate the current configuration, and a
|
|
+file `config.log' containing compiler output (useful mainly for
|
|
+debugging `configure').
|
|
+
|
|
+ It can also use an optional file (typically called `config.cache'
|
|
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
|
+the results of its tests to speed up reconfiguring. Caching is
|
|
+disabled by default to prevent problems with accidental use of stale
|
|
+cache files.
|
|
+
|
|
+ If you need to do unusual things to compile the package, please try
|
|
+to figure out how `configure' could check whether to do them, and mail
|
|
+diffs or instructions to the address given in the `README' so they can
|
|
+be considered for the next release. If you are using the cache, and at
|
|
+some point `config.cache' contains results you don't want to keep, you
|
|
+may remove or edit it.
|
|
+
|
|
+ The file `configure.ac' (or `configure.in') is used to create
|
|
+`configure' by a program called `autoconf'. You need `configure.ac' if
|
|
+you want to change it or regenerate `configure' using a newer version
|
|
+of `autoconf'.
|
|
+
|
|
+ The simplest way to compile this package is:
|
|
+
|
|
+ 1. `cd' to the directory containing the package's source code and type
|
|
+ `./configure' to configure the package for your system.
|
|
+
|
|
+ Running `configure' might take a while. While running, it prints
|
|
+ some messages telling which features it is checking for.
|
|
+
|
|
+ 2. Type `make' to compile the package.
|
|
+
|
|
+ 3. Optionally, type `make check' to run any self-tests that come with
|
|
+ the package, generally using the just-built uninstalled binaries.
|
|
+
|
|
+ 4. Type `make install' to install the programs and any data files and
|
|
+ documentation. When installing into a prefix owned by root, it is
|
|
+ recommended that the package be configured and built as a regular
|
|
+ user, and only the `make install' phase executed with root
|
|
+ privileges.
|
|
+
|
|
+ 5. Optionally, type `make installcheck' to repeat any self-tests, but
|
|
+ this time using the binaries in their final installed location.
|
|
+ This target does not install anything. Running this target as a
|
|
+ regular user, particularly if the prior `make install' required
|
|
+ root privileges, verifies that the installation completed
|
|
+ correctly.
|
|
+
|
|
+ 6. You can remove the program binaries and object files from the
|
|
+ source code directory by typing `make clean'. To also remove the
|
|
+ files that `configure' created (so you can compile the package for
|
|
+ a different kind of computer), type `make distclean'. There is
|
|
+ also a `make maintainer-clean' target, but that is intended mainly
|
|
+ for the package's developers. If you use it, you may have to get
|
|
+ all sorts of other programs in order to regenerate files that came
|
|
+ with the distribution.
|
|
+
|
|
+ 7. Often, you can also type `make uninstall' to remove the installed
|
|
+ files again. In practice, not all packages have tested that
|
|
+ uninstallation works correctly, even though it is required by the
|
|
+ GNU Coding Standards.
|
|
+
|
|
+ 8. Some packages, particularly those that use Automake, provide `make
|
|
+ distcheck', which can by used by developers to test that all other
|
|
+ targets like `make install' and `make uninstall' work correctly.
|
|
+ This target is generally not run by end users.
|
|
+
|
|
+Compilers and Options
|
|
+=====================
|
|
+
|
|
+ Some systems require unusual options for compilation or linking that
|
|
+the `configure' script does not know about. Run `./configure --help'
|
|
+for details on some of the pertinent environment variables.
|
|
+
|
|
+ You can give `configure' initial values for configuration parameters
|
|
+by setting variables in the command line or in the environment. Here
|
|
+is an example:
|
|
+
|
|
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
|
+
|
|
+ *Note Defining Variables::, for more details.
|
|
+
|
|
+Compiling For Multiple Architectures
|
|
+====================================
|
|
+
|
|
+ You can compile the package for more than one kind of computer at the
|
|
+same time, by placing the object files for each architecture in their
|
|
+own directory. To do this, you can use GNU `make'. `cd' to the
|
|
+directory where you want the object files and executables to go and run
|
|
+the `configure' script. `configure' automatically checks for the
|
|
+source code in the directory that `configure' is in and in `..'. This
|
|
+is known as a "VPATH" build.
|
|
+
|
|
+ With a non-GNU `make', it is safer to compile the package for one
|
|
+architecture at a time in the source code directory. After you have
|
|
+installed the package for one architecture, use `make distclean' before
|
|
+reconfiguring for another architecture.
|
|
+
|
|
+ On MacOS X 10.5 and later systems, you can create libraries and
|
|
+executables that work on multiple system types--known as "fat" or
|
|
+"universal" binaries--by specifying multiple `-arch' options to the
|
|
+compiler but only a single `-arch' option to the preprocessor. Like
|
|
+this:
|
|
+
|
|
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
|
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
|
+ CPP="gcc -E" CXXCPP="g++ -E"
|
|
+
|
|
+ This is not guaranteed to produce working output in all cases, you
|
|
+may have to build one architecture at a time and combine the results
|
|
+using the `lipo' tool if you have problems.
|
|
+
|
|
+Installation Names
|
|
+==================
|
|
+
|
|
+ By default, `make install' installs the package's commands under
|
|
+`/usr/local/bin', include files under `/usr/local/include', etc. You
|
|
+can specify an installation prefix other than `/usr/local' by giving
|
|
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
|
+absolute file name.
|
|
+
|
|
+ You can specify separate installation prefixes for
|
|
+architecture-specific files and architecture-independent files. If you
|
|
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
|
+PREFIX as the prefix for installing programs and libraries.
|
|
+Documentation and other data files still use the regular prefix.
|
|
+
|
|
+ In addition, if you use an unusual directory layout you can give
|
|
+options like `--bindir=DIR' to specify different values for particular
|
|
+kinds of files. Run `configure --help' for a list of the directories
|
|
+you can set and what kinds of files go in them. In general, the
|
|
+default for these options is expressed in terms of `${prefix}', so that
|
|
+specifying just `--prefix' will affect all of the other directory
|
|
+specifications that were not explicitly provided.
|
|
+
|
|
+ The most portable way to affect installation locations is to pass the
|
|
+correct locations to `configure'; however, many packages provide one or
|
|
+both of the following shortcuts of passing variable assignments to the
|
|
+`make install' command line to change installation locations without
|
|
+having to reconfigure or recompile.
|
|
+
|
|
+ The first method involves providing an override variable for each
|
|
+affected directory. For example, `make install
|
|
+prefix=/alternate/directory' will choose an alternate location for all
|
|
+directory configuration variables that were expressed in terms of
|
|
+`${prefix}'. Any directories that were specified during `configure',
|
|
+but not in terms of `${prefix}', must each be overridden at install
|
|
+time for the entire installation to be relocated. The approach of
|
|
+makefile variable overrides for each directory variable is required by
|
|
+the GNU Coding Standards, and ideally causes no recompilation.
|
|
+However, some platforms have known limitations with the semantics of
|
|
+shared libraries that end up requiring recompilation when using this
|
|
+method, particularly noticeable in packages that use GNU Libtool.
|
|
+
|
|
+ The second method involves providing the `DESTDIR' variable. For
|
|
+example, `make install DESTDIR=/alternate/directory' will prepend
|
|
+`/alternate/directory' before all installation names. The approach of
|
|
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
|
+does not work on platforms that have drive letters. On the other hand,
|
|
+it does better at avoiding recompilation issues, and works well even
|
|
+when some directory options were not specified in terms of `${prefix}'
|
|
+at `configure' time.
|
|
+
|
|
+Optional Features
|
|
+=================
|
|
+
|
|
+ If the package supports it, you can cause programs to be installed
|
|
+with an extra prefix or suffix on their names by giving `configure' the
|
|
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
|
+
|
|
+ Some packages pay attention to `--enable-FEATURE' options to
|
|
+`configure', where FEATURE indicates an optional part of the package.
|
|
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
|
+is something like `gnu-as' or `x' (for the X Window System). The
|
|
+`README' should mention any `--enable-' and `--with-' options that the
|
|
+package recognizes.
|
|
+
|
|
+ For packages that use the X Window System, `configure' can usually
|
|
+find the X include and library files automatically, but if it doesn't,
|
|
+you can use the `configure' options `--x-includes=DIR' and
|
|
+`--x-libraries=DIR' to specify their locations.
|
|
+
|
|
+ Some packages offer the ability to configure how verbose the
|
|
+execution of `make' will be. For these packages, running `./configure
|
|
+--enable-silent-rules' sets the default to minimal output, which can be
|
|
+overridden with `make V=1'; while running `./configure
|
|
+--disable-silent-rules' sets the default to verbose, which can be
|
|
+overridden with `make V=0'.
|
|
+
|
|
+Particular systems
|
|
+==================
|
|
+
|
|
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
|
+CC is not installed, it is recommended to use the following options in
|
|
+order to use an ANSI C compiler:
|
|
+
|
|
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
|
+
|
|
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
|
+
|
|
+ HP-UX `make' updates targets which have the same time stamps as
|
|
+their prerequisites, which makes it generally unusable when shipped
|
|
+generated files such as `configure' are involved. Use GNU `make'
|
|
+instead.
|
|
+
|
|
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
|
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
|
+a workaround. If GNU CC is not installed, it is therefore recommended
|
|
+to try
|
|
+
|
|
+ ./configure CC="cc"
|
|
+
|
|
+and if that doesn't work, try
|
|
+
|
|
+ ./configure CC="cc -nodtk"
|
|
+
|
|
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
|
+directory contains several dysfunctional programs; working variants of
|
|
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
|
+in your `PATH', put it _after_ `/usr/bin'.
|
|
+
|
|
+ On Haiku, software installed for all users goes in `/boot/common',
|
|
+not `/usr/local'. It is recommended to use the following options:
|
|
+
|
|
+ ./configure --prefix=/boot/common
|
|
+
|
|
+Specifying the System Type
|
|
+==========================
|
|
+
|
|
+ There may be some features `configure' cannot figure out
|
|
+automatically, but needs to determine by the type of machine the package
|
|
+will run on. Usually, assuming the package is built to be run on the
|
|
+_same_ architectures, `configure' can figure that out, but if it prints
|
|
+a message saying it cannot guess the machine type, give it the
|
|
+`--build=TYPE' option. TYPE can either be a short name for the system
|
|
+type, such as `sun4', or a canonical name which has the form:
|
|
+
|
|
+ CPU-COMPANY-SYSTEM
|
|
+
|
|
+where SYSTEM can have one of these forms:
|
|
+
|
|
+ OS
|
|
+ KERNEL-OS
|
|
+
|
|
+ See the file `config.sub' for the possible values of each field. If
|
|
+`config.sub' isn't included in this package, then this package doesn't
|
|
+need to know the machine type.
|
|
+
|
|
+ If you are _building_ compiler tools for cross-compiling, you should
|
|
+use the option `--target=TYPE' to select the type of system they will
|
|
+produce code for.
|
|
+
|
|
+ If you want to _use_ a cross compiler, that generates code for a
|
|
+platform different from the build platform, you should specify the
|
|
+"host" platform (i.e., that on which the generated programs will
|
|
+eventually be run) with `--host=TYPE'.
|
|
+
|
|
+Sharing Defaults
|
|
+================
|
|
+
|
|
+ If you want to set default values for `configure' scripts to share,
|
|
+you can create a site shell script called `config.site' that gives
|
|
+default values for variables like `CC', `cache_file', and `prefix'.
|
|
+`configure' looks for `PREFIX/share/config.site' if it exists, then
|
|
+`PREFIX/etc/config.site' if it exists. Or, you can set the
|
|
+`CONFIG_SITE' environment variable to the location of the site script.
|
|
+A warning: not all `configure' scripts look for a site script.
|
|
+
|
|
+Defining Variables
|
|
+==================
|
|
+
|
|
+ Variables not defined in a site shell script can be set in the
|
|
+environment passed to `configure'. However, some packages may run
|
|
+configure again during the build, and the customized values of these
|
|
+variables may be lost. In order to avoid this problem, you should set
|
|
+them in the `configure' command line, using `VAR=value'. For example:
|
|
+
|
|
+ ./configure CC=/usr/local2/bin/gcc
|
|
+
|
|
+causes the specified `gcc' to be used as the C compiler (unless it is
|
|
+overridden in the site shell script).
|
|
+
|
|
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
|
+an Autoconf limitation. Until the limitation is lifted, you can use
|
|
+this workaround:
|
|
+
|
|
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
|
|
+
|
|
+`configure' Invocation
|
|
+======================
|
|
+
|
|
+ `configure' recognizes the following options to control how it
|
|
+operates.
|
|
+
|
|
+`--help'
|
|
+`-h'
|
|
+ Print a summary of all of the options to `configure', and exit.
|
|
+
|
|
+`--help=short'
|
|
+`--help=recursive'
|
|
+ Print a summary of the options unique to this package's
|
|
+ `configure', and exit. The `short' variant lists options used
|
|
+ only in the top level, while the `recursive' variant lists options
|
|
+ also present in any nested packages.
|
|
+
|
|
+`--version'
|
|
+`-V'
|
|
+ Print the version of Autoconf used to generate the `configure'
|
|
+ script, and exit.
|
|
+
|
|
+`--cache-file=FILE'
|
|
+ Enable the cache: use and save the results of the tests in FILE,
|
|
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
|
|
+ disable caching.
|
|
+
|
|
+`--config-cache'
|
|
+`-C'
|
|
+ Alias for `--cache-file=config.cache'.
|
|
+
|
|
+`--quiet'
|
|
+`--silent'
|
|
+`-q'
|
|
+ Do not print messages saying which checks are being made. To
|
|
+ suppress all normal output, redirect it to `/dev/null' (any error
|
|
+ messages will still be shown).
|
|
+
|
|
+`--srcdir=DIR'
|
|
+ Look for the package's source code in directory DIR. Usually
|
|
+ `configure' can determine that directory automatically.
|
|
+
|
|
+`--prefix=DIR'
|
|
+ Use DIR as the installation prefix. *note Installation Names::
|
|
+ for more details, including other options available for fine-tuning
|
|
+ the installation locations.
|
|
+
|
|
+`--no-create'
|
|
+`-n'
|
|
+ Run the configure checks, but stop before creating any output
|
|
+ files.
|
|
+
|
|
+`configure' also accepts some other, not widely useful, options. Run
|
|
+`configure --help' for more details.
|
|
diff --git a/autogen.sh b/autogen.sh
|
|
index 3aef4d9..1613b6d 100644
|
|
--- a/autogen.sh
|
|
+++ b/autogen.sh
|
|
@@ -37,6 +37,6 @@ fi
|
|
|
|
aclocal
|
|
libtoolize --force --copy
|
|
-#autoheader
|
|
+autoheader
|
|
automake --add-missing --copy --gnu # -Wall
|
|
autoconf # -Wall
|
|
diff --git a/bootstrap b/bootstrap
|
|
index dde1a77..9f35619 100755
|
|
--- a/bootstrap
|
|
+++ b/bootstrap
|
|
@@ -3,8 +3,10 @@ rm -rf autom4te.cache configure Makefile stamp-h1
|
|
rm -rf src/Makefile src/.deps
|
|
rm -rf Makefile.in aclocal.m4 config.log config.h
|
|
rm -rf depcomp missing install-sh config.status
|
|
-aclocal
|
|
+mkdir -p m4
|
|
+aclocal -I m4
|
|
autoheader
|
|
+libtoolize --automake --copy
|
|
automake --gnu --add-missing -c
|
|
autoconf
|
|
rm -rf autom4te.cache config.log libtool stamp-h1*
|
|
diff --git a/configure.ac b/configure.ac
|
|
index bcbe911..80dec85 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -1,4 +1,4 @@
|
|
-AC_INIT(libtirpc, 0.2.5)
|
|
+AC_INIT(libtirpc, 0.2.4)
|
|
AM_INIT_AUTOMAKE([silent-rules])
|
|
AM_SILENT_RULES([yes])
|
|
AC_CONFIG_SRCDIR([src/auth_des.c])
|
|
@@ -15,6 +15,12 @@ if test x$enable_gssapi = xyes; then
|
|
AC_SUBST([GSSAPI_CFLAGS])
|
|
AC_SUBST([GSSAPI_LIBS])
|
|
fi
|
|
+
|
|
+AC_ARG_ENABLE(authdes,
|
|
+ [AC_HELP_STRING([--disable-authdes], [Disable DES authentication @<:@default=no@:>@])],
|
|
+ [],[enable_authdes=yes])
|
|
+AM_CONDITIONAL(AUTHDES, test x$enable_authdes = xyes)
|
|
+
|
|
AC_ARG_ENABLE(ipv6,
|
|
[AC_HELP_STRING([--disable-ipv6], [Disable IPv6 support @<:@default=no@:>@])],
|
|
[],[enable_ipv6=yes])
|
|
@@ -24,14 +30,16 @@ if test "x$enable_ipv6" != xno; then
|
|
fi
|
|
|
|
AC_PROG_CC
|
|
-m4_pattern_allow(AM_CONFIG_HEADERS(config.h))
|
|
+AC_CONFIG_HEADERS([config.h])
|
|
AC_PROG_LIBTOOL
|
|
AC_HEADER_DIRENT
|
|
AC_PREFIX_DEFAULT(/usr)
|
|
-AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h])
|
|
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h locale.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/ioctl.h sys/param.h sys/socket.h sys/time.h syslog.h unistd.h features.h])
|
|
AC_CHECK_LIB([pthread], [pthread_create])
|
|
AC_CHECK_LIB([nsl], [yp_get_default_domain])
|
|
-
|
|
+AC_CHECK_FUNCS([getrpcbyname getrpcbynumber])
|
|
|
|
AC_CONFIG_FILES([Makefile src/Makefile man/Makefile doc/Makefile])
|
|
AC_OUTPUT(libtirpc.pc)
|
|
+
|
|
+
|
|
diff --git a/libtirpc.pc.in b/libtirpc.pc.in
|
|
index ec4cf75..38034c5 100644
|
|
--- a/libtirpc.pc.in
|
|
+++ b/libtirpc.pc.in
|
|
@@ -8,4 +8,5 @@ Description: Transport Independent RPC Library
|
|
Requires:
|
|
Version: @PACKAGE_VERSION@
|
|
Libs: -L@libdir@ -ltirpc
|
|
+Libs.private: -lpthread
|
|
Cflags: -I@includedir@/tirpc
|
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
|
index de57c8f..26ccbdf 100644
|
|
--- a/src/Makefile.am
|
|
+++ b/src/Makefile.am
|
|
@@ -42,6 +42,7 @@ lib_LTLIBRARIES = libtirpc.la
|
|
# misunderstanding of the purpose of library versions."
|
|
#
|
|
libtirpc_la_LDFLAGS = -lpthread -version-info 1:10:0
|
|
+libtirpc_la_CFLAGS =
|
|
|
|
libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c clnt_bcast.c \
|
|
clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \
|
|
@@ -51,7 +52,7 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c bindresvport.c cln
|
|
rpc_callmsg.c rpc_generic.c rpc_soc.c rpcb_clnt.c rpcb_prot.c \
|
|
rpcb_st_xdr.c svc.c svc_auth.c svc_dg.c svc_auth_unix.c svc_auth_none.c \
|
|
svc_generic.c svc_raw.c svc_run.c svc_simple.c svc_vc.c getpeereid.c \
|
|
- auth_time.c auth_des.c authdes_prot.c debug.c
|
|
+ auth_time.c debug.c
|
|
|
|
## XDR
|
|
libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_reference.c xdr_stdio.c
|
|
@@ -60,9 +61,16 @@ libtirpc_la_SOURCES += xdr.c xdr_rec.c xdr_array.c xdr_float.c xdr_mem.c xdr_ref
|
|
if GSS
|
|
libtirpc_la_SOURCES += auth_gss.c authgss_prot.c svc_auth_gss.c
|
|
libtirpc_la_LDFLAGS += $(GSSAPI_LIBS)
|
|
- libtirpc_la_CFLAGS = -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
|
|
+ libtirpc_la_CFLAGS += -DHAVE_RPCSEC_GSS $(GSSAPI_CFLAGS)
|
|
endif
|
|
|
|
+## DES authentication
|
|
+if AUTHDES
|
|
+ libtirpc_la_SOURCES += auth_des.c authdes_prot.c
|
|
+ libtirpc_la_CFLAGS += -DHAVE_AUTHDES
|
|
+endif
|
|
+
|
|
+
|
|
## libtirpc_a_SOURCES += key_call.c key_prot_xdr.c getpublickey.c
|
|
## libtirpc_a_SOURCES += netname.c netnamer.c rpcdname.c \
|
|
## libtirpc_a_SOURCES += rtime.c \
|
|
diff --git a/src/auth_des.c b/src/auth_des.c
|
|
index cff777c..f8749b0 100644
|
|
--- a/src/auth_des.c
|
|
+++ b/src/auth_des.c
|
|
@@ -38,7 +38,6 @@
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
-#include <sys/cdefs.h>
|
|
#include <rpc/des_crypt.h>
|
|
#include <syslog.h>
|
|
#include <rpc/types.h>
|
|
@@ -52,7 +51,6 @@
|
|
|
|
#if defined(LIBC_SCCS) && !defined(lint)
|
|
#endif
|
|
-#include <sys/cdefs.h>
|
|
|
|
#include "debug.h"
|
|
|
|
@@ -66,7 +64,7 @@
|
|
|
|
extern bool_t xdr_authdes_cred( XDR *, struct authdes_cred *);
|
|
extern bool_t xdr_authdes_verf( XDR *, struct authdes_verf *);
|
|
-extern int key_encryptsession_pk();
|
|
+extern int key_encryptsession_pk( char *, netobj *, des_block *);
|
|
|
|
extern bool_t __rpc_get_time_offset(struct timeval *, nis_server *, char *,
|
|
char **, char **);
|
|
diff --git a/src/auth_none.c b/src/auth_none.c
|
|
index affc92b..0b0bbd1 100644
|
|
--- a/src/auth_none.c
|
|
+++ b/src/auth_none.c
|
|
@@ -31,7 +31,6 @@
|
|
static char *sccsid = "@(#)auth_none.c 1.19 87/08/11 Copyr 1984 Sun Micro";
|
|
static char *sccsid = "@(#)auth_none.c 2.1 88/07/29 4.0 RPCSRC";
|
|
#endif
|
|
-#include <sys/cdefs.h>
|
|
__FBSDID("$FreeBSD: src/lib/libc/rpc/auth_none.c,v 1.12 2002/03/22 23:18:35 obrien Exp $");
|
|
*/
|
|
|
|
diff --git a/src/auth_time.c b/src/auth_time.c
|
|
index 7cfbb7e..13717ff 100644
|
|
--- a/src/auth_time.c
|
|
+++ b/src/auth_time.c
|
|
@@ -25,15 +25,14 @@
|
|
* needed to deal with TCP connections.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
#include <stdio.h>
|
|
#include <syslog.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <netdb.h>
|
|
-#include <sys/signal.h>
|
|
-#include <sys/errno.h>
|
|
+#include <signal.h>
|
|
+#include <errno.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
diff --git a/src/auth_unix.c b/src/auth_unix.c
|
|
index 4b9b13f..3009543 100644
|
|
--- a/src/auth_unix.c
|
|
+++ b/src/auth_unix.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* auth_unix.c, Implements UNIX style authentication parameters.
|
|
diff --git a/src/authdes_prot.c b/src/authdes_prot.c
|
|
index ed061a5..227d08a 100644
|
|
--- a/src/authdes_prot.c
|
|
+++ b/src/authdes_prot.c
|
|
@@ -1,4 +1,3 @@
|
|
-#include <sys/cdefs.h>
|
|
/*
|
|
* Copyright (c) 2009, Sun Microsystems, Inc.
|
|
* All rights reserved.
|
|
diff --git a/src/authgss_prot.c b/src/authgss_prot.c
|
|
index 669eab7..d80ba17 100644
|
|
--- a/src/authgss_prot.c
|
|
+++ b/src/authgss_prot.c
|
|
@@ -37,6 +37,7 @@
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdarg.h>
|
|
+#include <string.h>
|
|
#include <rpc/types.h>
|
|
#include <rpc/xdr.h>
|
|
#include <rpc/auth.h>
|
|
diff --git a/src/authunix_prot.c b/src/authunix_prot.c
|
|
index bf76a9d..0a04336 100644
|
|
--- a/src/authunix_prot.c
|
|
+++ b/src/authunix_prot.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* authunix_prot.c
|
|
diff --git a/src/bindresvport.c b/src/bindresvport.c
|
|
index d6d9c14..2d8f2bc 100644
|
|
--- a/src/bindresvport.c
|
|
+++ b/src/bindresvport.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* Copyright (c) 1987 by Sun Microsystems, Inc.
|
|
@@ -37,6 +36,7 @@
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
|
|
+#include <netdb.h>
|
|
#include <netinet/in.h>
|
|
|
|
#include <errno.h>
|
|
diff --git a/src/clnt_bcast.c b/src/clnt_bcast.c
|
|
index 373d8a5..98cf061 100644
|
|
--- a/src/clnt_bcast.c
|
|
+++ b/src/clnt_bcast.c
|
|
@@ -28,7 +28,6 @@
|
|
/*
|
|
* Copyright (c) 1986-1991 by Sun Microsystems Inc.
|
|
*/
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* clnt_bcast.c
|
|
@@ -46,7 +45,7 @@
|
|
#include <net/if.h>
|
|
#include <netinet/in.h>
|
|
#include <ifaddrs.h>
|
|
-#include <sys/poll.h>
|
|
+#include <poll.h>
|
|
#include <rpc/rpc.h>
|
|
#ifdef PORTMAP
|
|
#include <rpc/pmap_prot.h>
|
|
@@ -142,7 +141,8 @@ __rpc_getbroadifs(int af, int proto, int socktype, broadlist_t *list)
|
|
return 0;
|
|
|
|
for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) {
|
|
- if (ifap->ifa_addr->sa_family != af ||
|
|
+ if (ifap->ifa_addr == NULL || /* happens for eg tuntap devices */
|
|
+ ifap->ifa_addr->sa_family != af ||
|
|
!(ifap->ifa_flags & IFF_UP))
|
|
continue;
|
|
bip = (struct broadif *)malloc(sizeof *bip);
|
|
@@ -222,6 +222,39 @@ __rpc_broadenable(int af, int s, struct broadif *bip)
|
|
return 0;
|
|
}
|
|
|
|
+/*
|
|
+ * Some rpcbind implementations use an IPv6 socket to serve both
|
|
+ * IPv4 and IPv6 messages, but neglect to check for the caller's
|
|
+ * address family when sending broadcast replies. These rpcbind
|
|
+ * implementations return an IPv6 address in reply to an IPv4
|
|
+ * broadcast. We can either ignore them, or try to patch them up.
|
|
+ */
|
|
+static struct netbuf *
|
|
+__ipv6v4_fixup(struct sockaddr_storage *ss, const char *uaddr)
|
|
+{
|
|
+ struct sockaddr_in sin;
|
|
+ struct netbuf *np;
|
|
+
|
|
+ /* ss is the remote rpcbind server's address */
|
|
+ if (ss->ss_family != AF_INET)
|
|
+ return NULL;
|
|
+ memcpy(&sin, ss, sizeof(sin));
|
|
+
|
|
+ np = __rpc_uaddr2taddr_af(AF_INET6, uaddr);
|
|
+ if (np == NULL)
|
|
+ return NULL;
|
|
+
|
|
+ /* Overwrite the port with that of the service we
|
|
+ * wanted to talk to. */
|
|
+ sin.sin_port = ((struct sockaddr_in6 *) np)->sin6_port;
|
|
+
|
|
+ /* We know netbuf holds a sockaddr_in6, so it can easily
|
|
+ * hold a sockaddr_in as well. */
|
|
+ memcpy(np->buf, &sin, sizeof(sin));
|
|
+ np->len = sizeof(sin);
|
|
+
|
|
+ return np;
|
|
+}
|
|
|
|
enum clnt_stat
|
|
rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp,
|
|
@@ -588,9 +621,18 @@ rpc_broadcast_exp(prog, vers, proc, xargs, argsp, xresults, resultsp,
|
|
LIBTIRPC_DEBUG(3, ("rpc_broadcast_exp: uaddr %s\n", uaddrp));
|
|
np = uaddr2taddr(
|
|
fdlist[i].nconf, uaddrp);
|
|
- done = (*eachresult)(resultsp,
|
|
- np, fdlist[i].nconf);
|
|
- free(np);
|
|
+ /* Some misguided rpcbind implemenations
|
|
+ * seem to return an IPv6 uaddr in IPv4
|
|
+ * responses. */
|
|
+ if (np == NULL)
|
|
+ np = __ipv6v4_fixup(
|
|
+ &fdlist[i].raddr,
|
|
+ uaddrp);
|
|
+ if (np != NULL) {
|
|
+ done = (*eachresult)(resultsp,
|
|
+ np, fdlist[i].nconf);
|
|
+ free(np);
|
|
+ }
|
|
#ifdef PORTMAP
|
|
}
|
|
#endif /* PORTMAP */
|
|
diff --git a/src/clnt_dg.c b/src/clnt_dg.c
|
|
index dcc621c..248138b 100644
|
|
--- a/src/clnt_dg.c
|
|
+++ b/src/clnt_dg.c
|
|
@@ -37,7 +37,7 @@
|
|
#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <stdint.h>
|
|
-#include <sys/poll.h>
|
|
+#include <poll.h>
|
|
|
|
#include <sys/time.h>
|
|
|
|
diff --git a/src/clnt_generic.c b/src/clnt_generic.c
|
|
index b9b07bc..3f3dabf 100644
|
|
--- a/src/clnt_generic.c
|
|
+++ b/src/clnt_generic.c
|
|
@@ -29,7 +29,7 @@
|
|
#include <pthread.h>
|
|
#include <reentrant.h>
|
|
#include <sys/types.h>
|
|
-#include <sys/fcntl.h>
|
|
+#include <fcntl.h>
|
|
#include <fcntl.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
diff --git a/src/clnt_perror.c b/src/clnt_perror.c
|
|
index bcd8af8..fb7fb80 100644
|
|
--- a/src/clnt_perror.c
|
|
+++ b/src/clnt_perror.c
|
|
@@ -27,9 +27,6 @@
|
|
*/
|
|
|
|
/*
|
|
-#include <sys/cdefs.h>
|
|
-*/
|
|
-/*
|
|
* clnt_perror.c
|
|
*
|
|
* Copyright (C) 1984, Sun Microsystems, Inc.
|
|
diff --git a/src/clnt_simple.c b/src/clnt_simple.c
|
|
index 7ee9542..1700060 100644
|
|
--- a/src/clnt_simple.c
|
|
+++ b/src/clnt_simple.c
|
|
@@ -29,7 +29,6 @@
|
|
* Copyright (c) 1986-1991 by Sun Microsystems Inc.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* clnt_simple.c
|
|
diff --git a/src/clnt_vc.c b/src/clnt_vc.c
|
|
index 61264d4..a72f9f7 100644
|
|
--- a/src/clnt_vc.c
|
|
+++ b/src/clnt_vc.c
|
|
@@ -48,7 +48,7 @@
|
|
|
|
#include <reentrant.h>
|
|
#include <sys/types.h>
|
|
-#include <sys/poll.h>
|
|
+#include <poll.h>
|
|
#include <sys/syslog.h>
|
|
#include <sys/un.h>
|
|
#include <sys/uio.h>
|
|
diff --git a/src/crypt_client.c b/src/crypt_client.c
|
|
index 670b253..f393926 100644
|
|
--- a/src/crypt_client.c
|
|
+++ b/src/crypt_client.c
|
|
@@ -30,7 +30,6 @@
|
|
* SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
#include <err.h>
|
|
#include <sys/types.h>
|
|
diff --git a/src/debug.h b/src/debug.h
|
|
index afc8d57..c971ac3 100644
|
|
--- a/src/debug.h
|
|
+++ b/src/debug.h
|
|
@@ -21,6 +21,8 @@
|
|
|
|
#ifndef _DEBUG_H
|
|
#define _DEBUG_H
|
|
+
|
|
+#include <stdarg.h>
|
|
#include <syslog.h>
|
|
|
|
extern int libtirpc_debug_level;
|
|
diff --git a/src/des_crypt.c b/src/des_crypt.c
|
|
index 37a1022..980a6cb 100644
|
|
--- a/src/des_crypt.c
|
|
+++ b/src/des_crypt.c
|
|
@@ -39,7 +39,6 @@
|
|
static char sccsid[] = "@(#)des_crypt.c 2.2 88/08/10 4.0 RPCSRC; from 1.13 88/02/08 SMI";
|
|
#endif
|
|
#endif
|
|
-#include <sys/cdefs.h>
|
|
|
|
static int common_crypt( char *, char *, unsigned, unsigned, struct desparams * );
|
|
int (*__des_crypt_LOCAL)() = 0;
|
|
diff --git a/src/getnetconfig.c b/src/getnetconfig.c
|
|
index 635c03a..92e7c43 100644
|
|
--- a/src/getnetconfig.c
|
|
+++ b/src/getnetconfig.c
|
|
@@ -32,7 +32,6 @@
|
|
|
|
#include <pthread.h>
|
|
#include <reentrant.h>
|
|
-#include <sys/cdefs.h>
|
|
#include <stdio.h>
|
|
#include <errno.h>
|
|
#include <netconfig.h>
|
|
diff --git a/src/getnetpath.c b/src/getnetpath.c
|
|
index cd80dca..7c19932 100644
|
|
--- a/src/getnetpath.c
|
|
+++ b/src/getnetpath.c
|
|
@@ -25,13 +25,11 @@
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* Copyright (c) 1989 by Sun Microsystems, Inc.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
#include <stdio.h>
|
|
#include <errno.h>
|
|
#include <netconfig.h>
|
|
diff --git a/src/getpeereid.c b/src/getpeereid.c
|
|
index 57ee197..dd85270 100644
|
|
--- a/src/getpeereid.c
|
|
+++ b/src/getpeereid.c
|
|
@@ -24,7 +24,6 @@
|
|
* SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
#include <sys/param.h>
|
|
#include <sys/socket.h>
|
|
diff --git a/src/getpublickey.c b/src/getpublickey.c
|
|
index 85935d8..764a5f9 100644
|
|
--- a/src/getpublickey.c
|
|
+++ b/src/getpublickey.c
|
|
@@ -25,9 +25,6 @@
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
-/*
|
|
-#include <sys/cdefs.h>
|
|
-*/
|
|
|
|
/*
|
|
* publickey.c
|
|
diff --git a/src/getrpcent.c b/src/getrpcent.c
|
|
index 1b54b6d..6da006a 100644
|
|
--- a/src/getrpcent.c
|
|
+++ b/src/getrpcent.c
|
|
@@ -50,6 +50,10 @@
|
|
#include <libc_private.h>
|
|
#endif
|
|
|
|
+#if HAVE_CONFIG_H
|
|
+#include "config.h"
|
|
+#endif
|
|
+
|
|
/*
|
|
* Internet version.
|
|
*/
|
|
@@ -89,7 +93,7 @@ _rpcdata()
|
|
return (d);
|
|
}
|
|
|
|
-#ifdef GQ
|
|
+#if !HAVE_GETRPCBYNYMBER
|
|
struct rpcent *
|
|
getrpcbynumber(number)
|
|
int number;
|
|
@@ -135,7 +139,9 @@ no_yp:
|
|
endrpcent();
|
|
return (p);
|
|
}
|
|
+#endif /* !HAVE_GETRPCBYNUMBER */
|
|
|
|
+#if !HAVE_GETRPCBYNAME
|
|
struct rpcent *
|
|
getrpcbyname(name)
|
|
const char *name;
|
|
@@ -158,7 +164,7 @@ done:
|
|
endrpcent();
|
|
return (rpc);
|
|
}
|
|
-#endif /* GQ */
|
|
+#endif /* !HAVE_GETRPCBYNAME */
|
|
|
|
void
|
|
setrpcent(f)
|
|
diff --git a/src/key_call.c b/src/key_call.c
|
|
index 8b9f388..589fd6f 100644
|
|
--- a/src/key_call.c
|
|
+++ b/src/key_call.c
|
|
@@ -30,7 +30,6 @@
|
|
*/
|
|
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* key_call.c, Interface to keyserver
|
|
@@ -57,7 +56,7 @@
|
|
#include <stdlib.h>
|
|
#include <signal.h>
|
|
#include <sys/wait.h>
|
|
-#include <sys/fcntl.h>
|
|
+#include <fcntl.h>
|
|
|
|
#include "dump.h"
|
|
|
|
diff --git a/src/key_prot_xdr.c b/src/key_prot_xdr.c
|
|
index df2842f..772f582 100644
|
|
--- a/src/key_prot_xdr.c
|
|
+++ b/src/key_prot_xdr.c
|
|
@@ -33,7 +33,6 @@
|
|
*/
|
|
/* Copyright (c) 1990, 1991 Sun Microsystems, Inc. */
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* Compiled from key_prot.x using rpcgen.
|
|
diff --git a/src/mt_misc.c b/src/mt_misc.c
|
|
index 093086e..a50f385 100644
|
|
--- a/src/mt_misc.c
|
|
+++ b/src/mt_misc.c
|
|
@@ -1,5 +1,4 @@
|
|
|
|
-#include <sys/cdefs.h>
|
|
#include <pthread.h>
|
|
#include <reentrant.h>
|
|
#include <rpc/rpc.h>
|
|
diff --git a/src/pmap_clnt.c b/src/pmap_clnt.c
|
|
index 1d5d153..4b5fd85 100644
|
|
--- a/src/pmap_clnt.c
|
|
+++ b/src/pmap_clnt.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* pmap_clnt.c
|
|
diff --git a/src/pmap_getmaps.c b/src/pmap_getmaps.c
|
|
index 54338f7..853f724 100644
|
|
--- a/src/pmap_getmaps.c
|
|
+++ b/src/pmap_getmaps.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* pmap_getmap.c
|
|
diff --git a/src/pmap_rmt.c b/src/pmap_rmt.c
|
|
index b81d771..1c76114 100644
|
|
--- a/src/pmap_rmt.c
|
|
+++ b/src/pmap_rmt.c
|
|
@@ -36,7 +36,7 @@
|
|
|
|
#include <sys/types.h>
|
|
#include <sys/ioctl.h>
|
|
-#include <sys/poll.h>
|
|
+#include <poll.h>
|
|
#include <sys/socket.h>
|
|
|
|
#include <net/if.h>
|
|
diff --git a/src/rpc_com.h b/src/rpc_com.h
|
|
index 38c2cfe..52a8c48 100644
|
|
--- a/src/rpc_com.h
|
|
+++ b/src/rpc_com.h
|
|
@@ -40,7 +40,6 @@
|
|
#ifndef _TIRPC_RPCCOM_H
|
|
#define _TIRPC_RPCCOM_H
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */
|
|
|
|
@@ -54,7 +53,9 @@
|
|
#define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \
|
|
(u_int32_t)(now)->tv_usec)
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern u_int __rpc_get_a_size(int);
|
|
extern int __rpc_dtbsize(void);
|
|
extern struct netconfig * __rpcgettp(int);
|
|
@@ -90,6 +91,8 @@ void __xprt_set_raddr(SVCXPRT *, const struct sockaddr_storage *);
|
|
SVCXPRT **__svc_xports;
|
|
int __svc_maxrec;
|
|
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* _TIRPC_RPCCOM_H */
|
|
diff --git a/src/rpc_generic.c b/src/rpc_generic.c
|
|
index a43906c..6148830 100644
|
|
--- a/src/rpc_generic.c
|
|
+++ b/src/rpc_generic.c
|
|
@@ -29,7 +29,6 @@
|
|
* Copyright (c) 1986-1991 by Sun Microsystems Inc.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* rpc_generic.c, Miscl routines for RPC.
|
|
@@ -608,6 +607,7 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
|
|
struct sockaddr_in6 *sin6;
|
|
char namebuf6[INET6_ADDRSTRLEN];
|
|
#endif
|
|
+ int path_len;
|
|
u_int16_t port;
|
|
|
|
if (nbuf->len <= 0)
|
|
@@ -638,13 +638,12 @@ __rpc_taddr2uaddr_af(int af, const struct netbuf *nbuf)
|
|
#endif
|
|
case AF_LOCAL:
|
|
sun = nbuf->buf;
|
|
- /* if (asprintf(&ret, "%.*s", (int)(sun->sun_len -
|
|
- offsetof(struct sockaddr_un, sun_path)),
|
|
- sun->sun_path) < 0)*/
|
|
- if (asprintf(&ret, "%.*s", (int)(sizeof(*sun) -
|
|
- offsetof(struct sockaddr_un, sun_path)),
|
|
- sun->sun_path) < 0)
|
|
|
|
+ path_len = nbuf->len - offsetof(struct sockaddr_un, sun_path);
|
|
+ if (path_len < 0)
|
|
+ return NULL;
|
|
+
|
|
+ if (asprintf(&ret, "%.*s", path_len, sun->sun_path) < 0)
|
|
return (NULL);
|
|
break;
|
|
default:
|
|
diff --git a/src/rpc_soc.c b/src/rpc_soc.c
|
|
index 338edbb..6574323 100644
|
|
--- a/src/rpc_soc.c
|
|
+++ b/src/rpc_soc.c
|
|
@@ -520,6 +520,7 @@ clnt_broadcast(prog, vers, proc, xargs, argsp, xresults, resultsp, eachresult)
|
|
(resultproc_t) rpc_wrap_bcast, "udp");
|
|
}
|
|
|
|
+#if HAVE_AUTHDES
|
|
/*
|
|
* Create the client des authentication object. Obsoleted by
|
|
* authdes_seccreate().
|
|
@@ -551,6 +552,7 @@ fallback:
|
|
dummy = authdes_seccreate(servername, window, NULL, ckey);
|
|
return (dummy);
|
|
}
|
|
+#endif
|
|
|
|
/*
|
|
* Create a client handle for a unix connection. Obsoleted by clnt_vc_create()
|
|
@@ -564,16 +566,12 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
|
|
u_int sendsz;
|
|
u_int recvsz;
|
|
{
|
|
- struct netbuf *svcaddr;
|
|
- CLIENT *cl;
|
|
+ struct netbuf svcaddr = {0, 0, NULL};
|
|
+ CLIENT *cl = NULL;
|
|
int len;
|
|
|
|
- cl = NULL;
|
|
- svcaddr = NULL;
|
|
- if (((svcaddr = malloc(sizeof(struct netbuf))) == NULL ) ||
|
|
- ((svcaddr->buf = malloc(sizeof(struct sockaddr_un))) == NULL)) {
|
|
- if (svcaddr != NULL)
|
|
- free(svcaddr);
|
|
+ memset(&svcaddr, 0, sizeof(svcaddr));
|
|
+ if (__rpc_set_netbuf(&svcaddr, raddr, sizeof(*raddr)) == NULL) {
|
|
rpc_createerr.cf_stat = RPC_SYSTEMERROR;
|
|
rpc_createerr.cf_error.re_errno = errno;
|
|
return(cl);
|
|
@@ -590,14 +588,10 @@ clntunix_create(raddr, prog, vers, sockp, sendsz, recvsz)
|
|
goto done;
|
|
}
|
|
}
|
|
- svcaddr->buf = raddr;
|
|
- svcaddr->len = sizeof(raddr);
|
|
- svcaddr->maxlen = sizeof (struct sockaddr_un);
|
|
- cl = clnt_vc_create(*sockp, svcaddr, prog,
|
|
+ cl = clnt_vc_create(*sockp, &svcaddr, prog,
|
|
vers, sendsz, recvsz);
|
|
done:
|
|
- free(svcaddr->buf);
|
|
- free(svcaddr);
|
|
+ free(svcaddr.buf);
|
|
return(cl);
|
|
}
|
|
|
|
diff --git a/src/rpcb_clnt.c b/src/rpcb_clnt.c
|
|
index a796593..78b1534 100644
|
|
--- a/src/rpcb_clnt.c
|
|
+++ b/src/rpcb_clnt.c
|
|
@@ -282,6 +282,18 @@ getclnthandle(host, nconf, targaddr)
|
|
struct address_cache *ad_cache;
|
|
char *tmpaddr;
|
|
|
|
+ if (nconf == NULL) {
|
|
+ rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ if (nconf->nc_protofmly != NULL &&
|
|
+ strcmp(nconf->nc_protofmly, NC_LOOPBACK) != 0 &&
|
|
+ host == NULL) {
|
|
+ rpc_createerr.cf_stat = RPC_UNKNOWNHOST;
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
/* VARIABLES PROTECTED BY rpcbaddr_cache_lock: ad_cache */
|
|
|
|
/* Get the address of the rpcbind. Check cache first */
|
|
@@ -291,6 +303,7 @@ getclnthandle(host, nconf, targaddr)
|
|
addr_to_delete.len = 0;
|
|
rwlock_rdlock(&rpcbaddr_cache_lock);
|
|
ad_cache = NULL;
|
|
+
|
|
if (host != NULL)
|
|
ad_cache = check_cache(host, nconf->nc_netid);
|
|
if (ad_cache != NULL) {
|
|
@@ -298,7 +311,7 @@ getclnthandle(host, nconf, targaddr)
|
|
client = clnt_tli_create(RPC_ANYFD, nconf, addr,
|
|
(rpcprog_t)RPCBPROG, (rpcvers_t)RPCBVERS4, 0, 0);
|
|
if (client != NULL) {
|
|
- if (targaddr)
|
|
+ if (targaddr && ad_cache->ac_uaddr)
|
|
*targaddr = strdup(ad_cache->ac_uaddr);
|
|
rwlock_unlock(&rpcbaddr_cache_lock);
|
|
return (client);
|
|
@@ -345,9 +358,11 @@ getclnthandle(host, nconf, targaddr)
|
|
} else {
|
|
struct sockaddr_un sun;
|
|
|
|
- *targaddr = malloc(sizeof(sun.sun_path));
|
|
- strncpy(*targaddr, _PATH_RPCBINDSOCK,
|
|
- sizeof(sun.sun_path));
|
|
+ if (targaddr) {
|
|
+ *targaddr = malloc(sizeof(sun.sun_path));
|
|
+ strncpy(*targaddr, _PATH_RPCBINDSOCK,
|
|
+ sizeof(sun.sun_path));
|
|
+ }
|
|
return (client);
|
|
}
|
|
} else {
|
|
@@ -387,7 +402,8 @@ getclnthandle(host, nconf, targaddr)
|
|
|
|
if (client) {
|
|
tmpaddr = targaddr ? taddr2uaddr(nconf, &taddr) : NULL;
|
|
- add_cache(host, nconf->nc_netid, &taddr, tmpaddr);
|
|
+ if (host)
|
|
+ add_cache(host, nconf->nc_netid, &taddr, tmpaddr);
|
|
if (targaddr)
|
|
*targaddr = tmpaddr;
|
|
break;
|
|
@@ -401,6 +417,44 @@ out_err:
|
|
return (client);
|
|
}
|
|
|
|
+/*
|
|
+ * Create a PMAP client handle.
|
|
+ */
|
|
+static CLIENT *
|
|
+getpmaphandle(nconf, hostname, tgtaddr)
|
|
+ const struct netconfig *nconf;
|
|
+ const char *hostname;
|
|
+ char **tgtaddr;
|
|
+{
|
|
+ CLIENT *client = NULL;
|
|
+ rpcvers_t pmapvers = 2;
|
|
+
|
|
+ /*
|
|
+ * Try UDP only - there are some portmappers out
|
|
+ * there that use UDP only.
|
|
+ */
|
|
+ if (nconf == NULL || strcmp(nconf->nc_proto, NC_TCP) == 0) {
|
|
+ struct netconfig *newnconf;
|
|
+
|
|
+ if ((newnconf = getnetconfigent("udp")) == NULL) {
|
|
+ rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
|
+ return NULL;
|
|
+ }
|
|
+ client = getclnthandle(hostname, newnconf, tgtaddr);
|
|
+ freenetconfigent(newnconf);
|
|
+ } else if (strcmp(nconf->nc_proto, NC_UDP) == 0) {
|
|
+ if (strcmp(nconf->nc_protofmly, NC_INET) != 0)
|
|
+ return NULL;
|
|
+ client = getclnthandle(hostname, nconf, tgtaddr);
|
|
+ }
|
|
+
|
|
+ /* Set version */
|
|
+ if (client != NULL)
|
|
+ CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers);
|
|
+
|
|
+ return client;
|
|
+}
|
|
+
|
|
/* XXX */
|
|
#define IN4_LOCALHOST_STRING "127.0.0.1"
|
|
#define IN6_LOCALHOST_STRING "::1"
|
|
@@ -733,34 +787,20 @@ __rpcb_findaddr_timed(program, version, nconf, host, clpp, tp)
|
|
if (strcmp(nconf->nc_protofmly, NC_INET) == 0) {
|
|
u_short port = 0;
|
|
struct netbuf remote;
|
|
- rpcvers_t pmapvers = 2;
|
|
struct pmap pmapparms;
|
|
|
|
- /*
|
|
- * Try UDP only - there are some portmappers out
|
|
- * there that use UDP only.
|
|
- */
|
|
- if (strcmp(nconf->nc_proto, NC_TCP) == 0) {
|
|
- struct netconfig *newnconf;
|
|
-
|
|
- if ((newnconf = getnetconfigent("udp")) == NULL) {
|
|
- rpc_createerr.cf_stat = RPC_UNKNOWNPROTO;
|
|
- return (NULL);
|
|
- }
|
|
- client = getclnthandle(host, newnconf, &parms.r_addr);
|
|
- freenetconfigent(newnconf);
|
|
- } else if (strcmp(nconf->nc_proto, NC_UDP) == 0)
|
|
- client = getclnthandle(host, nconf, &parms.r_addr);
|
|
- else
|
|
+ if (strcmp(nconf->nc_proto, NC_UDP) != 0
|
|
+ && strcmp(nconf->nc_proto, NC_TCP) != 0)
|
|
goto try_rpcbind;
|
|
+
|
|
+ client = getpmaphandle(nconf, host, &parms.r_addr);
|
|
if (client == NULL)
|
|
return (NULL);
|
|
|
|
/*
|
|
- * Set version and retry timeout.
|
|
+ * Set retry timeout.
|
|
*/
|
|
CLNT_CONTROL(client, CLSET_RETRY_TIMEOUT, (char *)&rpcbrmttime);
|
|
- CLNT_CONTROL(client, CLSET_VERS, (char *)&pmapvers);
|
|
|
|
pmapparms.pm_prog = program;
|
|
pmapparms.pm_vers = version;
|
|
diff --git a/src/rpcb_st_xdr.c b/src/rpcb_st_xdr.c
|
|
index c5d3575..08db745 100644
|
|
--- a/src/rpcb_st_xdr.c
|
|
+++ b/src/rpcb_st_xdr.c
|
|
@@ -35,7 +35,6 @@
|
|
* routines used with the rpcbind stats facility.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
#include <rpc/rpc.h>
|
|
|
|
diff --git a/src/rpcdname.c b/src/rpcdname.c
|
|
index 094cea3..3e6a988 100644
|
|
--- a/src/rpcdname.c
|
|
+++ b/src/rpcdname.c
|
|
@@ -25,7 +25,6 @@
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* rpcdname.c
|
|
diff --git a/src/svc.c b/src/svc.c
|
|
index 8afd15d..32c84f1 100644
|
|
--- a/src/svc.c
|
|
+++ b/src/svc.c
|
|
@@ -40,7 +40,7 @@
|
|
|
|
#include <reentrant.h>
|
|
#include <sys/types.h>
|
|
-#include <sys/poll.h>
|
|
+#include <poll.h>
|
|
#include <assert.h>
|
|
#include <errno.h>
|
|
#include <stdlib.h>
|
|
diff --git a/src/svc_dg.c b/src/svc_dg.c
|
|
index f8255cc..1fd6f92 100644
|
|
--- a/src/svc_dg.c
|
|
+++ b/src/svc_dg.c
|
|
@@ -31,7 +31,6 @@
|
|
* Copyright (c) 1986-1991 by Sun Microsystems Inc.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* svc_dg.c, Server side for connectionless RPC.
|
|
diff --git a/src/svc_simple.c b/src/svc_simple.c
|
|
index b6c371e..cb58002 100644
|
|
--- a/src/svc_simple.c
|
|
+++ b/src/svc_simple.c
|
|
@@ -29,7 +29,6 @@
|
|
* Copyright (c) 1986-1991 by Sun Microsystems Inc.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* svc_simple.c
|
|
diff --git a/src/svc_vc.c b/src/svc_vc.c
|
|
index 4c70de8..9824631 100644
|
|
--- a/src/svc_vc.c
|
|
+++ b/src/svc_vc.c
|
|
@@ -27,7 +27,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* svc_vc.c, Server side for Connection Oriented based RPC.
|
|
@@ -41,7 +40,7 @@
|
|
#include <sys/socket.h>
|
|
#include <sys/types.h>
|
|
#include <sys/param.h>
|
|
-#include <sys/poll.h>
|
|
+#include <poll.h>
|
|
#include <sys/un.h>
|
|
#include <sys/time.h>
|
|
#include <sys/uio.h>
|
|
@@ -559,20 +558,19 @@ write_vc(xprtp, buf, len)
|
|
cd->strm_stat = XPRT_DIED;
|
|
return (-1);
|
|
}
|
|
- if (cd->nonblock && i != cnt) {
|
|
- /*
|
|
- * For non-blocking connections, do not
|
|
- * take more than 2 seconds writing the
|
|
- * data out.
|
|
- *
|
|
- * XXX 2 is an arbitrary amount.
|
|
- */
|
|
- gettimeofday(&tv1, NULL);
|
|
- if (tv1.tv_sec - tv0.tv_sec >= 2) {
|
|
- cd->strm_stat = XPRT_DIED;
|
|
- return (-1);
|
|
- }
|
|
+ /*
|
|
+ * For non-blocking connections, do not
|
|
+ * take more than 2 seconds writing the
|
|
+ * data out.
|
|
+ *
|
|
+ * XXX 2 is an arbitrary amount.
|
|
+ */
|
|
+ gettimeofday(&tv1, NULL);
|
|
+ if (tv1.tv_sec - tv0.tv_sec >= 2) {
|
|
+ cd->strm_stat = XPRT_DIED;
|
|
+ return (-1);
|
|
}
|
|
+ i = 0; /* Don't change buf and cnt */
|
|
}
|
|
}
|
|
|
|
diff --git a/src/xdr.c b/src/xdr.c
|
|
index 1142a88..f3fb9ad 100644
|
|
--- a/src/xdr.c
|
|
+++ b/src/xdr.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr.c, Generic XDR routines implementation.
|
|
diff --git a/src/xdr_array.c b/src/xdr_array.c
|
|
index 216173d..7fc8fb8 100644
|
|
--- a/src/xdr_array.c
|
|
+++ b/src/xdr_array.c
|
|
@@ -27,7 +27,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr_array.c, Generic XDR routines impelmentation.
|
|
diff --git a/src/xdr_float.c b/src/xdr_float.c
|
|
index 90daf3f..26bc865 100644
|
|
--- a/src/xdr_float.c
|
|
+++ b/src/xdr_float.c
|
|
@@ -27,7 +27,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr_float.c, Generic XDR routines implementation.
|
|
diff --git a/src/xdr_mem.c b/src/xdr_mem.c
|
|
index bd86f00..ecdc932 100644
|
|
--- a/src/xdr_mem.c
|
|
+++ b/src/xdr_mem.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr_mem.h, XDR implementation using memory buffers.
|
|
diff --git a/src/xdr_rec.c b/src/xdr_rec.c
|
|
index 2aca623..7d535cf 100644
|
|
--- a/src/xdr_rec.c
|
|
+++ b/src/xdr_rec.c
|
|
@@ -27,8 +27,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr_rec.c, Implements TCP/IP based XDR streams with a "record marking"
|
|
diff --git a/src/xdr_reference.c b/src/xdr_reference.c
|
|
index affe19e..13f6410 100644
|
|
--- a/src/xdr_reference.c
|
|
+++ b/src/xdr_reference.c
|
|
@@ -26,8 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr_reference.c, Generic XDR routines impelmentation.
|
|
diff --git a/src/xdr_sizeof.c b/src/xdr_sizeof.c
|
|
index a805e31..cc5414b 100644
|
|
--- a/src/xdr_sizeof.c
|
|
+++ b/src/xdr_sizeof.c
|
|
@@ -34,7 +34,6 @@
|
|
* when serialized using XDR.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
#include <rpc/types.h>
|
|
#include <rpc/xdr.h>
|
|
diff --git a/src/xdr_stdio.c b/src/xdr_stdio.c
|
|
index 45b1150..4410262 100644
|
|
--- a/src/xdr_stdio.c
|
|
+++ b/src/xdr_stdio.c
|
|
@@ -26,7 +26,6 @@
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* xdr_stdio.c, XDR implementation on standard i/o file.
|
|
diff --git a/tirpc/netconfig.h b/tirpc/netconfig.h
|
|
index 7d6c2bc..3f1a685 100644
|
|
--- a/tirpc/netconfig.h
|
|
+++ b/tirpc/netconfig.h
|
|
@@ -1,7 +1,9 @@
|
|
#ifndef _NETCONFIG_H_
|
|
#define _NETCONFIG_H_
|
|
|
|
+#ifdef HAVE_FEATURES_H
|
|
#include <features.h>
|
|
+#endif
|
|
|
|
#define NETCONFIG "/etc/netconfig"
|
|
#define NETPATH "NETPATH"
|
|
@@ -74,7 +76,9 @@ typedef struct {
|
|
#define NC_UDP "udp"
|
|
#define NC_ICMP "icmp"
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
|
|
extern void *setnetconfig (void);
|
|
extern struct netconfig *getnetconfig (void *);
|
|
@@ -89,6 +93,8 @@ extern int endnetpath (void *);
|
|
extern void nc_perror (const char *);
|
|
extern char *nc_sperror (void);
|
|
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* _NETCONFIG_H_ */
|
|
diff --git a/tirpc/rpc/auth.h b/tirpc/rpc/auth.h
|
|
index 7c8f813..434d35c 100644
|
|
--- a/tirpc/rpc/auth.h
|
|
+++ b/tirpc/rpc/auth.h
|
|
@@ -48,7 +48,6 @@
|
|
|
|
#include <rpc/xdr.h>
|
|
#include <rpc/clnt_stat.h>
|
|
-#include <sys/cdefs.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/types.h>
|
|
|
|
@@ -164,9 +163,13 @@ union des_block {
|
|
char c[8];
|
|
};
|
|
typedef union des_block des_block;
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_des_block(XDR *, des_block *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Authentication info. Opaque to client.
|
|
@@ -277,9 +280,13 @@ auth_put(AUTH *auth)
|
|
xfunc, xwhere))
|
|
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern struct opaque_auth _null_auth;
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Any style authentication. These routines can be used by any
|
|
@@ -300,11 +307,15 @@ int authany_wrap(void), authany_unwrap(void);
|
|
* int len;
|
|
* int *aup_gids;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern AUTH *authunix_create(char *, uid_t, uid_t, int, uid_t *);
|
|
extern AUTH *authunix_create_default(void); /* takes no parameters */
|
|
extern AUTH *authnone_create(void); /* takes no parameters */
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
/*
|
|
* DES style authentication
|
|
* AUTH *authsecdes_create(servername, window, timehost, ckey)
|
|
@@ -313,15 +324,23 @@ __END_DECLS
|
|
* const char *timehost; - optional hostname to sync with
|
|
* des_block *ckey; - optional conversation key to use
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern AUTH *authdes_create (char *, u_int, struct sockaddr *, des_block *);
|
|
extern AUTH *authdes_seccreate (const char *, const u_int, const char *,
|
|
const des_block *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_opaque_auth (XDR *, struct opaque_auth *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#define authsys_create(c,i1,i2,i3,ip) authunix_create((c),(i1),(i2),(i3),(ip))
|
|
#define authsys_create_default() authunix_create_default()
|
|
@@ -329,36 +348,48 @@ __END_DECLS
|
|
/*
|
|
* Netname manipulation routines.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern int getnetname(char *);
|
|
extern int host2netname(char *, const char *, const char *);
|
|
extern int user2netname(char *, const uid_t, const char *);
|
|
extern int netname2user(char *, uid_t *, gid_t *, int *, gid_t *);
|
|
extern int netname2host(char *, char *, const int);
|
|
extern void passwd2des ( char *, char * );
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
*
|
|
* These routines interface to the keyserv daemon
|
|
*
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern int key_decryptsession(const char *, des_block *);
|
|
extern int key_encryptsession(const char *, des_block *);
|
|
extern int key_gendes(des_block *);
|
|
extern int key_setsecret(const char *);
|
|
extern int key_secretkey_is_set(void);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Publickey routines.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern int getpublickey (const char *, char *);
|
|
extern int getpublicandprivatekey (char *, char *);
|
|
extern int getsecretkey (char *, char *, char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#ifdef KERBEROS
|
|
/*
|
|
@@ -371,10 +402,14 @@ __END_DECLS
|
|
* const char *timehost; - optional hostname to sync with
|
|
* int *status; - kerberos status returned
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern AUTH *authkerb_seccreate(const char *, const char *, const char *,
|
|
const u_int, const char *, int *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Map a kerberos credential into a unix cred.
|
|
@@ -387,20 +422,28 @@ __END_DECLS
|
|
* int *groups;
|
|
*
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern int authkerb_getucred(/* struct svc_req *, uid_t *, gid_t *,
|
|
short *, int * */);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
#endif /* KERBEROS */
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
struct svc_req;
|
|
struct rpc_msg;
|
|
enum auth_stat _svcauth_none (struct svc_req *, struct rpc_msg *);
|
|
enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
|
|
enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
|
|
enum auth_stat _svcauth_gss (struct svc_req *, struct rpc_msg *, bool_t *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#define AUTH_NONE 0 /* no authentication */
|
|
#define AUTH_NULL 0 /* backward compatibility */
|
|
diff --git a/tirpc/rpc/auth_des.h b/tirpc/rpc/auth_des.h
|
|
index 39b5332..77e169d 100644
|
|
--- a/tirpc/rpc/auth_des.h
|
|
+++ b/tirpc/rpc/auth_des.h
|
|
@@ -114,17 +114,25 @@ struct authdes_verf {
|
|
* Map a des credential into a unix cred.
|
|
*
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern int authdes_getucred( struct authdes_cred *, uid_t *, gid_t *, int *, gid_t * );
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_authdes_cred(XDR *, struct authdes_cred *);
|
|
extern bool_t xdr_authdes_verf(XDR *, struct authdes_verf *);
|
|
extern int rtime(dev_t, struct netbuf *, int, struct timeval *,
|
|
struct timeval *);
|
|
extern void kgetnetname(char *);
|
|
extern enum auth_stat _svcauth_des(struct svc_req *, struct rpc_msg *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* ndef _TI_AUTH_DES_ */
|
|
diff --git a/tirpc/rpc/auth_gss.h b/tirpc/rpc/auth_gss.h
|
|
index d6f2bbd..a17b34b 100644
|
|
--- a/tirpc/rpc/auth_gss.h
|
|
+++ b/tirpc/rpc/auth_gss.h
|
|
@@ -104,28 +104,29 @@ struct rpc_gss_init_res {
|
|
#define MAXSEQ 0x80000000
|
|
|
|
/* Prototypes. */
|
|
-__BEGIN_DECLS
|
|
-bool_t xdr_rpc_gss_cred __P((XDR *xdrs, struct rpc_gss_cred *p));
|
|
-bool_t xdr_rpc_gss_init_args __P((XDR *xdrs, gss_buffer_desc *p));
|
|
-bool_t xdr_rpc_gss_init_res __P((XDR *xdrs, struct rpc_gss_init_res *p));
|
|
-bool_t xdr_rpc_gss_data __P((XDR *xdrs, xdrproc_t xdr_func,
|
|
- caddr_t xdr_ptr, gss_ctx_id_t ctx,
|
|
- gss_qop_t qop, rpc_gss_svc_t svc,
|
|
- u_int seq));
|
|
-
|
|
-AUTH *authgss_create __P((CLIENT *, gss_name_t,
|
|
- struct rpc_gss_sec *));
|
|
-AUTH *authgss_create_default __P((CLIENT *, char *, struct rpc_gss_sec *));
|
|
-bool_t authgss_service __P((AUTH *auth, int svc));
|
|
-bool_t authgss_get_private_data __P((AUTH *auth,
|
|
- struct authgss_private_data *));
|
|
-bool_t authgss_free_private_data __P((struct authgss_private_data *));
|
|
-
|
|
-void gss_log_debug __P((const char *fmt, ...));
|
|
-void gss_log_status __P((char *m, OM_uint32 major,
|
|
- OM_uint32 minor));
|
|
-void gss_log_hexdump __P((const u_char *buf, int len, int offset));
|
|
-
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
+bool_t xdr_rpc_gss_cred (XDR *xdrs, struct rpc_gss_cred *p);
|
|
+bool_t xdr_rpc_gss_init_args (XDR *xdrs, gss_buffer_desc *p);
|
|
+bool_t xdr_rpc_gss_init_res (XDR *xdrs, struct rpc_gss_init_res *p);
|
|
+bool_t xdr_rpc_gss_data (XDR *xdrs, xdrproc_t xdr_func,
|
|
+ caddr_t xdr_ptr, gss_ctx_id_t ctx,
|
|
+ gss_qop_t qop, rpc_gss_svc_t svc,
|
|
+ u_int seq);
|
|
+
|
|
+AUTH *authgss_create (CLIENT *, gss_name_t, struct rpc_gss_sec *);
|
|
+AUTH *authgss_create_default (CLIENT *, char *, struct rpc_gss_sec *);
|
|
+bool_t authgss_service (AUTH *auth, int svc);
|
|
+bool_t authgss_get_private_data (AUTH *auth, struct authgss_private_data *);
|
|
+bool_t authgss_free_private_data (struct authgss_private_data *);
|
|
+
|
|
+void gss_log_debug (const char *fmt, ...);
|
|
+void gss_log_status (char *m, OM_uint32 major, OM_uint32 minor);
|
|
+void gss_log_hexdump (const u_char *buf, int len, int offset);
|
|
+
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_TIRPC_AUTH_GSS_H */
|
|
diff --git a/tirpc/rpc/auth_unix.h b/tirpc/rpc/auth_unix.h
|
|
index 602889b..b10e71d 100644
|
|
--- a/tirpc/rpc/auth_unix.h
|
|
+++ b/tirpc/rpc/auth_unix.h
|
|
@@ -45,7 +45,6 @@
|
|
|
|
#ifndef _TIRPC_AUTH_UNIX_H
|
|
#define _TIRPC_AUTH_UNIX_H
|
|
-#include <sys/cdefs.h>
|
|
|
|
/* The machine name is part of a credential; it may not exceed 255 bytes */
|
|
#define MAX_MACHINE_NAME 255
|
|
@@ -67,9 +66,13 @@ struct authunix_parms {
|
|
|
|
#define authsys_parms authunix_parms
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_authunix_parms(XDR *, struct authunix_parms *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* If a response verifier has flavor AUTH_SHORT,
|
|
diff --git a/tirpc/rpc/clnt.h b/tirpc/rpc/clnt.h
|
|
index 9ee619e..05f2215 100644
|
|
--- a/tirpc/rpc/clnt.h
|
|
+++ b/tirpc/rpc/clnt.h
|
|
@@ -42,7 +42,6 @@
|
|
#include <rpc/clnt_stat.h>
|
|
#include <rpc/auth.h>
|
|
|
|
-#include <sys/cdefs.h>
|
|
#include <netconfig.h>
|
|
#include <sys/un.h>
|
|
|
|
@@ -267,7 +266,9 @@ struct rpc_timers {
|
|
* Generic client creation routine. Supported protocols are those that
|
|
* belong to the nettype namespace (/etc/netconfig).
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern CLIENT *clnt_create(const char *, const rpcprog_t, const rpcvers_t,
|
|
const char *);
|
|
/*
|
|
@@ -414,32 +415,46 @@ extern CLIENT *clnt_dg_create(const int, const struct netbuf *,
|
|
*/
|
|
extern CLIENT *clnt_raw_create(rpcprog_t, rpcvers_t);
|
|
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
* Print why creation failed
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void clnt_pcreateerror(const char *); /* stderr */
|
|
extern char *clnt_spcreateerror(const char *); /* string */
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Like clnt_perror(), but is more verbose in its output
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void clnt_perrno(enum clnt_stat); /* stderr */
|
|
extern char *clnt_sperrno(enum clnt_stat); /* string */
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Print an English error message, given the client error code
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void clnt_perror(CLIENT *, const char *); /* stderr */
|
|
extern char *clnt_sperror(CLIENT *, const char *); /* string */
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
@@ -450,9 +465,13 @@ struct rpc_createerr {
|
|
struct rpc_err cf_error; /* useful when cf_stat == RPC_PMAPFAILURE */
|
|
};
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern struct rpc_createerr *__rpc_createerr(void);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
#define get_rpc_createerr() (*(__rpc_createerr()))
|
|
#define rpc_createerr (*(__rpc_createerr()))
|
|
|
|
@@ -469,12 +488,16 @@ __END_DECLS
|
|
* char *out;
|
|
* const char *nettype;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern enum clnt_stat rpc_call(const char *, const rpcprog_t,
|
|
const rpcvers_t, const rpcproc_t,
|
|
const xdrproc_t, const char *,
|
|
const xdrproc_t, char *, const char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* RPC broadcast interface
|
|
@@ -522,7 +545,9 @@ __END_DECLS
|
|
|
|
typedef bool_t (*resultproc_t)(caddr_t, ...);
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern enum clnt_stat rpc_broadcast(const rpcprog_t, const rpcvers_t,
|
|
const rpcproc_t, const xdrproc_t,
|
|
caddr_t, const xdrproc_t, caddr_t,
|
|
@@ -532,7 +557,9 @@ extern enum clnt_stat rpc_broadcast_exp(const rpcprog_t, const rpcvers_t,
|
|
caddr_t, const xdrproc_t, caddr_t,
|
|
const resultproc_t, const int,
|
|
const int, const char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/* For backward compatibility */
|
|
#include <rpc/clnt_soc.h>
|
|
diff --git a/tirpc/rpc/clnt_soc.h b/tirpc/rpc/clnt_soc.h
|
|
index 82330a3..6ec545c 100644
|
|
--- a/tirpc/rpc/clnt_soc.h
|
|
+++ b/tirpc/rpc/clnt_soc.h
|
|
@@ -46,7 +46,6 @@
|
|
* with TS-RPC.
|
|
*/
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
#define UDPMSGSIZE 8800 /* rpc imposed limit on udp msg size */
|
|
|
|
@@ -61,27 +60,39 @@
|
|
* u_int sendsz;
|
|
* u_int recvsz;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern CLIENT *clnttcp_create(struct sockaddr_in *, u_long, u_long, int *,
|
|
u_int, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Raw (memory) rpc.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern CLIENT *clntraw_create(u_long, u_long);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
IPv6 socket version
|
|
*/
|
|
#ifdef INET6
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern CLIENT *clnttcp6_create(struct sockaddr_in6 *, u_long, u_long, int *,
|
|
u_int, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
#endif
|
|
|
|
/*
|
|
@@ -105,7 +116,9 @@ __END_DECLS
|
|
* u_int sendsz;
|
|
* u_int recvsz;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern CLIENT *clntudp_create(struct sockaddr_in *, u_long, u_long,
|
|
struct timeval, int *);
|
|
extern CLIENT *clntudp_bufcreate(struct sockaddr_in *, u_long, u_long,
|
|
@@ -116,7 +129,9 @@ extern CLIENT *clntudp6_create(struct sockaddr_in6 *, u_long, u_long,
|
|
extern CLIENT *clntudp6_bufcreate(struct sockaddr_in6 *, u_long, u_long,
|
|
struct timeval, int *, u_int, u_int);
|
|
#endif
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
#endif /* _RPC_CLNT_SOC_H */
|
|
diff --git a/tirpc/rpc/des_crypt.h b/tirpc/rpc/des_crypt.h
|
|
index 837088c..2358960 100644
|
|
--- a/tirpc/rpc/des_crypt.h
|
|
+++ b/tirpc/rpc/des_crypt.h
|
|
@@ -43,7 +43,6 @@
|
|
#ifndef _DES_DES_CRYPT_H
|
|
#define _DES_DES_CRYPT_H
|
|
|
|
-#include <sys/cdefs.h>
|
|
#include <rpc/rpc.h>
|
|
|
|
#define DES_MAXDATA 8192 /* max bytes encrypted in one call */
|
|
@@ -83,23 +82,35 @@
|
|
/*
|
|
* Cipher Block Chaining mode
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
int cbc_crypt( char *, char *, unsigned int, unsigned int, char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Electronic Code Book mode
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
int ecb_crypt( char *, char *, unsigned int, unsigned int );
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Set des parity for a key.
|
|
* DES parity is odd and in the low bit of each byte
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
void des_setparity( char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* _DES_DES_CRYPT_H */
|
|
diff --git a/tirpc/rpc/nettype.h b/tirpc/rpc/nettype.h
|
|
index 92063c6..926797a 100644
|
|
--- a/tirpc/rpc/nettype.h
|
|
+++ b/tirpc/rpc/nettype.h
|
|
@@ -53,11 +53,15 @@
|
|
#define _RPC_TCP 7
|
|
#define _RPC_UDP 8
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void *__rpc_setconf(const char *);
|
|
extern void __rpc_endconf(void *);
|
|
extern struct netconfig *__rpc_getconf(void *);
|
|
extern struct netconfig *__rpc_getconfip(const char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_TIRPC_NETTYPE_H */
|
|
diff --git a/tirpc/rpc/pmap_clnt.h b/tirpc/rpc/pmap_clnt.h
|
|
index 0d23908..6abd583 100644
|
|
--- a/tirpc/rpc/pmap_clnt.h
|
|
+++ b/tirpc/rpc/pmap_clnt.h
|
|
@@ -63,9 +63,10 @@
|
|
|
|
#ifndef _RPC_PMAP_CLNT_H_
|
|
#define _RPC_PMAP_CLNT_H_
|
|
-#include <sys/cdefs.h>
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t pmap_set(u_long, u_long, int, int);
|
|
extern bool_t pmap_unset(u_long, u_long);
|
|
extern struct pmaplist *pmap_getmaps(struct sockaddr_in *);
|
|
@@ -80,6 +81,8 @@ extern enum clnt_stat clnt_broadcast(u_long, u_long, u_long,
|
|
resultproc_t);
|
|
extern u_short pmap_getport(struct sockaddr_in *,
|
|
u_long, u_long, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_PMAP_CLNT_H_ */
|
|
diff --git a/tirpc/rpc/pmap_prot.h b/tirpc/rpc/pmap_prot.h
|
|
index c1a2546..75354ce 100644
|
|
--- a/tirpc/rpc/pmap_prot.h
|
|
+++ b/tirpc/rpc/pmap_prot.h
|
|
@@ -71,7 +71,6 @@
|
|
|
|
#ifndef _RPC_PMAP_PROT_H
|
|
#define _RPC_PMAP_PROT_H
|
|
-#include <sys/cdefs.h>
|
|
|
|
#define PMAPPORT ((u_short)111)
|
|
#define PMAPPROG ((u_long)100000)
|
|
@@ -97,10 +96,14 @@ struct pmaplist {
|
|
struct pmaplist *pml_next;
|
|
};
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_pmap(XDR *, struct pmap *);
|
|
extern bool_t xdr_pmaplist(XDR *, struct pmaplist **);
|
|
extern bool_t xdr_pmaplist_ptr(XDR *, struct pmaplist *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_PMAP_PROT_H */
|
|
diff --git a/tirpc/rpc/pmap_rmt.h b/tirpc/rpc/pmap_rmt.h
|
|
index dd59a15..2a385e7 100644
|
|
--- a/tirpc/rpc/pmap_rmt.h
|
|
+++ b/tirpc/rpc/pmap_rmt.h
|
|
@@ -41,7 +41,6 @@
|
|
|
|
#ifndef _RPC_PMAP_RMT_H
|
|
#define _RPC_PMAP_RMT_H
|
|
-#include <sys/cdefs.h>
|
|
|
|
struct rmtcallargs {
|
|
u_long prog, vers, proc, arglen;
|
|
@@ -56,9 +55,13 @@ struct rmtcallres {
|
|
xdrproc_t xdr_results;
|
|
};
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_rmtcall_args(XDR *, struct rmtcallargs *);
|
|
extern bool_t xdr_rmtcallres(XDR *, struct rmtcallres *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_PMAP_RMT_H */
|
|
diff --git a/tirpc/rpc/rpc.h b/tirpc/rpc/rpc.h
|
|
index 6c0222e..fac2fa9 100644
|
|
--- a/tirpc/rpc/rpc.h
|
|
+++ b/tirpc/rpc/rpc.h
|
|
@@ -79,9 +79,11 @@
|
|
#define UDPMSGSIZE 8800
|
|
#endif
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern int get_myaddress(struct sockaddr_in *);
|
|
-extern int bindresvport(int, struct sockaddr_in *) __THROW;
|
|
+extern int bindresvport(int, struct sockaddr_in *);
|
|
extern int registerrpc(int, int, int, char *(*)(char [UDPMSGSIZE]),
|
|
xdrproc_t, xdrproc_t);
|
|
extern int callrpc(const char *, int, int, int, xdrproc_t, void *,
|
|
@@ -93,18 +95,24 @@ struct netbuf *uaddr2taddr(const struct netconfig *, const char *);
|
|
|
|
struct sockaddr;
|
|
extern int bindresvport_sa(int, struct sockaddr *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* The following are not exported interfaces, they are for internal library
|
|
* and rpcbind use only. Do not use, they may change without notice.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
int __rpc_nconf2fd(const struct netconfig *);
|
|
int __rpc_nconf2fd_flags(const struct netconfig *, int);
|
|
int __rpc_nconf2sockinfo(const struct netconfig *, struct __rpc_sockinfo *);
|
|
int __rpc_fd2sockinfo(int, struct __rpc_sockinfo *);
|
|
u_int __rpc_get_t_size(int, int, int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_RPC_H */
|
|
diff --git a/tirpc/rpc/rpc_com.h b/tirpc/rpc/rpc_com.h
|
|
index cb3bbbb..236fcee 100644
|
|
--- a/tirpc/rpc/rpc_com.h
|
|
+++ b/tirpc/rpc/rpc_com.h
|
|
@@ -41,7 +41,6 @@
|
|
#ifndef _RPC_RPCCOM_H
|
|
#define _RPC_RPCCOM_H
|
|
|
|
-#include <sys/cdefs.h>
|
|
|
|
/* #pragma ident "@(#)rpc_com.h 1.11 93/07/05 SMI" */
|
|
|
|
@@ -55,7 +54,9 @@
|
|
#define __RPC_GETXID(now) ((u_int32_t)getpid() ^ (u_int32_t)(now)->tv_sec ^ \
|
|
(u_int32_t)(now)->tv_usec)
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern u_int __rpc_get_a_size(int);
|
|
extern int __rpc_dtbsize(void);
|
|
extern int _rpc_dtablesize(void);
|
|
@@ -77,6 +78,8 @@ bool_t rpc_control(int,void *);
|
|
|
|
char *_get_next_token(char *, int);
|
|
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* _RPC_RPCCOM_H */
|
|
diff --git a/tirpc/rpc/rpc_msg.h b/tirpc/rpc/rpc_msg.h
|
|
index 16d8eef..f7aabd8 100644
|
|
--- a/tirpc/rpc/rpc_msg.h
|
|
+++ b/tirpc/rpc/rpc_msg.h
|
|
@@ -161,7 +161,9 @@ struct rpc_msg {
|
|
#define acpted_rply ru.RM_rmb.ru.RP_ar
|
|
#define rjcted_rply ru.RM_rmb.ru.RP_dr
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
/*
|
|
* XDR routine to handle a rpc message.
|
|
* xdr_callmsg(xdrs, cmsg)
|
|
@@ -210,6 +212,8 @@ extern bool_t xdr_rejected_reply(XDR *, struct rejected_reply *);
|
|
* struct rpc_err *error;
|
|
*/
|
|
extern void _seterr_reply(struct rpc_msg *, struct rpc_err *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_TIRPC_RPC_MSG_H */
|
|
diff --git a/tirpc/rpc/rpcb_clnt.h b/tirpc/rpc/rpcb_clnt.h
|
|
index 7e64f8f..86d81f6 100644
|
|
--- a/tirpc/rpc/rpcb_clnt.h
|
|
+++ b/tirpc/rpc/rpcb_clnt.h
|
|
@@ -59,7 +59,9 @@
|
|
|
|
#include <rpc/types.h>
|
|
#include <rpc/rpcb_prot.h>
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t rpcb_set(const rpcprog_t, const rpcvers_t,
|
|
const struct netconfig *, const struct netbuf *);
|
|
extern bool_t rpcb_unset(const rpcprog_t, const rpcvers_t,
|
|
@@ -78,6 +80,8 @@ extern bool_t rpcb_getaddr(const rpcprog_t, const rpcvers_t,
|
|
extern bool_t rpcb_gettime(const char *, time_t *);
|
|
extern char *rpcb_taddr2uaddr(struct netconfig *, struct netbuf *);
|
|
extern struct netbuf *rpcb_uaddr2taddr(struct netconfig *, char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_RPCB_CLNT_H */
|
|
diff --git a/tirpc/rpc/rpcent.h b/tirpc/rpc/rpcent.h
|
|
index c865e51..147f909 100644
|
|
--- a/tirpc/rpc/rpcent.h
|
|
+++ b/tirpc/rpc/rpcent.h
|
|
@@ -44,10 +44,12 @@
|
|
/* #pragma ident "@(#)rpcent.h 1.13 94/04/25 SMI" */
|
|
/* @(#)rpcent.h 1.1 88/12/06 SMI */
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
|
|
/* These are defined in /usr/include/rpc/netdb.h */
|
|
-#if 0
|
|
+#if !defined(__GLIBC__)
|
|
struct rpcent {
|
|
char *r_name; /* name of server for this rpc program */
|
|
char **r_aliases; /* alias list */
|
|
@@ -60,8 +62,10 @@ extern struct rpcent *getrpcbynumber(int);
|
|
extern struct rpcent *getrpcent(void);
|
|
#endif
|
|
|
|
-extern void setrpcent(int) __THROW;
|
|
-extern void endrpcent(void) __THROW;
|
|
-__END_DECLS
|
|
+extern void setrpcent(int);
|
|
+extern void endrpcent(void);
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_CENT_H */
|
|
diff --git a/tirpc/rpc/svc.h b/tirpc/rpc/svc.h
|
|
index b9691a8..8273c95 100644
|
|
--- a/tirpc/rpc/svc.h
|
|
+++ b/tirpc/rpc/svc.h
|
|
@@ -40,7 +40,6 @@
|
|
|
|
#ifndef _TIRPC_SVC_H
|
|
#define _TIRPC_SVC_H
|
|
-#include <sys/cdefs.h>
|
|
|
|
/*
|
|
* This interface must manage two items concerning remote procedure calling:
|
|
@@ -200,11 +199,15 @@ struct svc_req {
|
|
* const struct netconfig *nconf;
|
|
*/
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t svc_reg(SVCXPRT *, const rpcprog_t, const rpcvers_t,
|
|
void (*)(struct svc_req *, SVCXPRT *),
|
|
const struct netconfig *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Service un-registration
|
|
@@ -214,9 +217,13 @@ __END_DECLS
|
|
* const rpcvers_t vers;
|
|
*/
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void svc_unreg(const rpcprog_t, const rpcvers_t);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Transport registration.
|
|
@@ -224,9 +231,13 @@ __END_DECLS
|
|
* xprt_register(xprt)
|
|
* SVCXPRT *xprt;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void xprt_register(SVCXPRT *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Transport un-register
|
|
@@ -234,9 +245,13 @@ __END_DECLS
|
|
* xprt_unregister(xprt)
|
|
* SVCXPRT *xprt;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void xprt_unregister(SVCXPRT *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
@@ -265,7 +280,9 @@ __END_DECLS
|
|
* deadlock the caller and server processes!
|
|
*/
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t svc_sendreply(SVCXPRT *, xdrproc_t, void *);
|
|
extern void svcerr_decode(SVCXPRT *);
|
|
extern void svcerr_weakauth(SVCXPRT *);
|
|
@@ -277,7 +294,9 @@ extern void svcerr_systemerr(SVCXPRT *);
|
|
extern int rpc_reg(rpcprog_t, rpcvers_t, rpcproc_t,
|
|
char *(*)(char *), xdrproc_t, xdrproc_t,
|
|
char *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Lowest level dispatching -OR- who owns this process anyway.
|
|
@@ -306,11 +325,17 @@ extern int svc_fds;
|
|
* a small program implemented by the svc_rpc implementation itself;
|
|
* also see clnt.h for protocol numbers.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void rpctest_service(void);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void svc_getreq(int);
|
|
extern void svc_getreqset(fd_set *);
|
|
extern void svc_getreq_common(int);
|
|
@@ -319,7 +344,9 @@ extern void svc_getreq_poll(struct pollfd *, int);
|
|
|
|
extern void svc_run(void);
|
|
extern void svc_exit(void);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Socket to use on svcxxx_create call to get default socket
|
|
@@ -331,7 +358,9 @@ __END_DECLS
|
|
* These are the existing service side transport implementations
|
|
*/
|
|
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
/*
|
|
* Transport independent svc_create routine.
|
|
*/
|
|
@@ -427,7 +456,9 @@ int svc_dg_enablecache(SVCXPRT *, const u_int);
|
|
|
|
int __rpc_get_local_uid(SVCXPRT *_transp, uid_t *_uid);
|
|
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/* for backward compatibility */
|
|
diff --git a/tirpc/rpc/svc_auth.h b/tirpc/rpc/svc_auth.h
|
|
index 723c989..67608d0 100644
|
|
--- a/tirpc/rpc/svc_auth.h
|
|
+++ b/tirpc/rpc/svc_auth.h
|
|
@@ -65,13 +65,17 @@ typedef struct SVCAUTH {
|
|
/*
|
|
* Server side authenticator
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern enum auth_stat _gss_authenticate(struct svc_req *, struct rpc_msg *,
|
|
bool_t *);
|
|
extern enum auth_stat _authenticate(struct svc_req *, struct rpc_msg *);
|
|
extern int svc_auth_reg(int, enum auth_stat (*)(struct svc_req *,
|
|
struct rpc_msg *));
|
|
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_SVC_AUTH_H */
|
|
diff --git a/tirpc/rpc/svc_soc.h b/tirpc/rpc/svc_soc.h
|
|
index 6148d7b..9b7befa 100644
|
|
--- a/tirpc/rpc/svc_soc.h
|
|
+++ b/tirpc/rpc/svc_soc.h
|
|
@@ -38,7 +38,6 @@
|
|
|
|
#ifndef _RPC_SVC_SOC_H
|
|
#define _RPC_SVC_SOC_H
|
|
-#include <sys/cdefs.h>
|
|
|
|
/* #pragma ident "@(#)svc_soc.h 1.11 94/04/25 SMI" */
|
|
/* svc_soc.h 1.8 89/05/01 SMI */
|
|
@@ -64,10 +63,14 @@
|
|
* void (*dispatch)();
|
|
* int protocol; like TCP or UDP, zero means do not register
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t svc_register(SVCXPRT *, u_long, u_long,
|
|
void (*)(struct svc_req *, SVCXPRT *), int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Service un-registration
|
|
@@ -76,44 +79,64 @@ __END_DECLS
|
|
* u_long prog;
|
|
* u_long vers;
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern void svc_unregister(u_long, u_long);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
* Memory based rpc for testing and timing.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern SVCXPRT *svcraw_create(void);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
* Udp based rpc.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern SVCXPRT *svcudp_create(int);
|
|
extern SVCXPRT *svcudp_bufcreate(int, u_int, u_int);
|
|
extern int svcudp_enablecache(SVCXPRT *, u_long);
|
|
extern SVCXPRT *svcudp6_create(int);
|
|
extern SVCXPRT *svcudp6_bufcreate(int, u_int, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
|
|
/*
|
|
* Tcp based rpc.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern SVCXPRT *svctcp_create(int, u_int, u_int);
|
|
extern SVCXPRT *svctcp6_create(int, u_int, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Fd based rpc.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern SVCXPRT *svcfd_create(int, u_int, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_RPC_SVC_SOC_H */
|
|
diff --git a/tirpc/rpc/xdr.h b/tirpc/rpc/xdr.h
|
|
index 613fab0..917c067 100644
|
|
--- a/tirpc/rpc/xdr.h
|
|
+++ b/tirpc/rpc/xdr.h
|
|
@@ -40,7 +40,6 @@
|
|
|
|
#ifndef _TIRPC_XDR_H
|
|
#define _TIRPC_XDR_H
|
|
-#include <sys/cdefs.h>
|
|
#include <stdio.h>
|
|
#include <netinet/in.h>
|
|
|
|
@@ -287,7 +286,9 @@ struct xdr_discrim {
|
|
/*
|
|
* These are the "generic" xdr routines.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
extern bool_t xdr_void(void);
|
|
extern bool_t xdr_int(XDR *, int *);
|
|
extern bool_t xdr_u_int(XDR *, u_int *);
|
|
@@ -330,7 +331,9 @@ extern bool_t xdr_hyper(XDR *, quad_t *);
|
|
extern bool_t xdr_u_hyper(XDR *, u_quad_t *);
|
|
extern bool_t xdr_longlong_t(XDR *, quad_t *);
|
|
extern bool_t xdr_u_longlong_t(XDR *, u_quad_t *);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
/*
|
|
* Common opaque bytes objects used by many rpc protocols;
|
|
@@ -348,7 +351,9 @@ extern bool_t xdr_netobj(XDR *, struct netobj *);
|
|
* These are the public routines for the various implementations of
|
|
* xdr streams.
|
|
*/
|
|
-__BEGIN_DECLS
|
|
+#ifdef __cplusplus
|
|
+extern "C" {
|
|
+#endif
|
|
/* XDR using memory buffers */
|
|
extern void xdrmem_create(XDR *, char *, u_int, enum xdr_op);
|
|
|
|
@@ -369,6 +374,8 @@ extern bool_t xdrrec_skiprecord(XDR *);
|
|
/* true if no more input */
|
|
extern bool_t xdrrec_eof(XDR *);
|
|
extern u_int xdrrec_readbytes(XDR *, caddr_t, u_int);
|
|
-__END_DECLS
|
|
+#ifdef __cplusplus
|
|
+}
|
|
+#endif
|
|
|
|
#endif /* !_TIRPC_XDR_H */
|