From c4230a45c0daa8f65a3f777d183cba4b175a0c68 Mon Sep 17 00:00:00 2001 From: Thorsten Kukuk Date: Mon, 14 Mar 2016 11:57:08 +0100 Subject: [PATCH 2/2] libtirpc needs rpcsvc/nis.h for compiling, but does not provide this head file. It's only provided by glibc, if the sunrpc code is not marked as deprecated, and by libnsl. But libnsl needs libtirpc to compile ... Since we only need the nis_server * struct, the solution is to create an internal minimal nis.h which only contains this struct. Signed-off-by: Thorsten Kukuk --- src/auth_des.c | 4 ++-- src/auth_time.c | 4 ++-- src/nis.h | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/rpc_soc.c | 2 +- 4 files changed, 75 insertions(+), 5 deletions(-) create mode 100644 src/nis.h diff --git a/src/auth_des.c b/src/auth_des.c index 4d3639e..af2f61f 100644 --- a/src/auth_des.c +++ b/src/auth_des.c @@ -46,8 +46,8 @@ #include #include #include -#undef NIS -#include + +#include "nis.h" #if defined(LIBC_SCCS) && !defined(lint) #endif diff --git a/src/auth_time.c b/src/auth_time.c index 10e58eb..7f83ab4 100644 --- a/src/auth_time.c +++ b/src/auth_time.c @@ -44,8 +44,8 @@ #include //#include #include -#undef NIS -#include + +#include "nis.h" #ifdef TESTING diff --git a/src/nis.h b/src/nis.h new file mode 100644 index 0000000..588c041 --- /dev/null +++ b/src/nis.h @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2010, Oracle America, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials + * provided with the distribution. + * * Neither the name of the "Oracle America, Inc." nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _INTERNAL_NIS_H +#define _INTERNAL_NIS_H 1 + +/* This file only contains the definition of nis_server, to be + able to compile libtirpc without the need to have a glibc + with sunrpc or a libnsl already installed. */ + +#define NIS_PK_NONE 0 + +struct nis_attr { + char *zattr_ndx; + struct { + u_int zattr_val_len; + char *zattr_val_val; + } zattr_val; +}; +typedef struct nis_attr nis_attr; + +typedef char *nis_name; + +struct endpoint { + char *uaddr; + char *family; + char *proto; +}; +typedef struct endpoint endpoint; + +struct nis_server { + nis_name name; + struct { + u_int ep_len; + endpoint *ep_val; + } ep; + uint32_t key_type; + netobj pkey; +}; +typedef struct nis_server nis_server; + +#endif /* ! _INTERNAL_NIS_H */ diff --git a/src/rpc_soc.c b/src/rpc_soc.c index 1ec7b3f..ed0892a 100644 --- a/src/rpc_soc.c +++ b/src/rpc_soc.c @@ -61,8 +61,8 @@ #include #include #include -#include +#include "nis.h" #include "rpc_com.h" extern mutex_t rpcsoc_lock; -- 1.8.5.6