diff options
-rw-r--r-- | include/netinet/ether.h | 9 | ||||
-rw-r--r-- | include/rpc/auth.h | 14 | ||||
-rw-r--r-- | include/rpc/auth_des.h | 17 | ||||
-rw-r--r-- | inet/ether_hton.c | 10 | ||||
-rw-r--r-- | inet/ether_ntoh.c | 9 | ||||
-rw-r--r-- | nis/nss_nis/nis-ethers.c | 17 | ||||
-rw-r--r-- | nis/nss_nisplus/nisplus-ethers.c | 11 | ||||
-rw-r--r-- | sunrpc/publickey.c | 1 |
8 files changed, 47 insertions, 41 deletions
diff --git a/include/netinet/ether.h b/include/netinet/ether.h index c0b1e2beee..fc3460df8e 100644 --- a/include/netinet/ether.h +++ b/include/netinet/ether.h @@ -1,7 +1,14 @@ #ifndef _NETINET_ETHER_H #include <inet/netinet/ether.h> -struct etherent; +/* Because the `ethers' lookup does not fit so well in the scheme we + define a dummy struct here which helps us to use the available + functions. */ +struct etherent +{ + const char *e_name; + struct ether_addr e_addr; +}; #define DECLARE_NSS_PROTOTYPES(service) \ extern enum nss_status _nss_ ## service ## _setetherent (void); \ diff --git a/include/rpc/auth.h b/include/rpc/auth.h index 5721091a56..40e95011d6 100644 --- a/include/rpc/auth.h +++ b/include/rpc/auth.h @@ -1 +1,15 @@ +#ifndef _RPC_AUTH_H #include <sunrpc/rpc/auth.h> + +#define DECLARE_NSS_PROTOTYPES(service) \ +extern enum nss_status _nss_ ##service ## _netname2user \ + (char netname[MAXNETNAMELEN + 1], uid_t *uidp, \ + gid_t *gidp, int *gidlenp, gid_t *gidlist, \ + int *errnop); + +DECLARE_NSS_PROTOTYPES (nis) +DECLARE_NSS_PROTOTYPES (nisplus) + +#undef DECLARE_NSS_PROTOTYPES + +#endif diff --git a/include/rpc/auth_des.h b/include/rpc/auth_des.h index 02736aa03b..fa3622728b 100644 --- a/include/rpc/auth_des.h +++ b/include/rpc/auth_des.h @@ -1 +1,18 @@ +#ifndef _RPC_AUTH_DES_H + #include <sunrpc/rpc/auth_des.h> + +#define DECLARE_NSS_PROTOTYPES(service) \ +extern enum nss_status _nss_ ## service ## _getpublickey \ + (const char *netname, char *pkey, int *errnop); \ +extern enum nss_status _nss_ ## service ## _getsecretkey \ + (const char *netname, char *skey, char *passwd, \ + int *errnop); + +DECLARE_NSS_PROTOTYPES (files) +DECLARE_NSS_PROTOTYPES (nis) +DECLARE_NSS_PROTOTYPES (nisplus) + +#undef DECLARE_NSS_PROTOTYPES + +#endif diff --git a/inet/ether_hton.c b/inet/ether_hton.c index 8a1325b728..66ec866780 100644 --- a/inet/ether_hton.c +++ b/inet/ether_hton.c @@ -24,16 +24,6 @@ #include "../nss/nsswitch.h" -/* Because the `ethers' lookup does not fit so well in the scheme so - we define a dummy struct here which helps us to use the available - functions. */ -struct etherent -{ - const char *e_name; - struct ether_addr e_addr; -}; - - /* Type of the lookup function we need here. */ typedef int (*lookup_function) (const char *, struct etherent *, char *, int, int *); diff --git a/inet/ether_ntoh.c b/inet/ether_ntoh.c index 6937201c03..d26ec3b317 100644 --- a/inet/ether_ntoh.c +++ b/inet/ether_ntoh.c @@ -23,15 +23,6 @@ #include <nss/nsswitch.h> -/* Because the `ethers' lookup does not fit so well in the scheme so - we define a dummy struct here which helps us to use the available - functions. */ -struct etherent -{ - const char *e_name; - struct ether_addr e_addr; -}; - /* Type of the lookup function we need here. */ typedef int (*lookup_function) (const struct ether_addr *, struct etherent *, diff --git a/nis/nss_nis/nis-ethers.c b/nis/nss_nis/nis-ethers.c index c90091748e..f7ff50578e 100644 --- a/nis/nss_nis/nis-ethers.c +++ b/nis/nss_nis/nis-ethers.c @@ -24,6 +24,7 @@ #include <bits/libc-lock.h> #include <rpcsvc/yp.h> #include <rpcsvc/ypclnt.h> +#include <netinet/ether.h> #include <netinet/if_ether.h> #include "nss-nis.h" @@ -31,15 +32,9 @@ /* Protect global state against multiple changers */ __libc_lock_define_initialized (static, lock) -struct ether -{ - const char *e_name; - struct ether_addr e_addr; -}; - /* Get the declaration of the parser function. */ #define ENTNAME etherent -#define STRUCTURE ether +#define STRUCTURE etherent #define EXTERN_PARSER #include <nss/nss_files/files-parse.c> @@ -149,7 +144,7 @@ _nss_nis_endetherent (void) } static enum nss_status -internal_nis_getetherent_r (struct ether *eth, char *buffer, size_t buflen, +internal_nis_getetherent_r (struct etherent *eth, char *buffer, size_t buflen, int *errnop) { struct parser_data *data = (void *) buffer; @@ -184,7 +179,7 @@ internal_nis_getetherent_r (struct ether *eth, char *buffer, size_t buflen, } enum nss_status -_nss_nis_getetherent_r (struct ether *result, char *buffer, size_t buflen, +_nss_nis_getetherent_r (struct etherent *result, char *buffer, size_t buflen, int *errnop) { int status; @@ -199,7 +194,7 @@ _nss_nis_getetherent_r (struct ether *result, char *buffer, size_t buflen, } enum nss_status -_nss_nis_gethostton_r (const char *name, struct ether *eth, +_nss_nis_gethostton_r (const char *name, struct etherent *eth, char *buffer, size_t buflen, int *errnop) { struct parser_data *data = (void *) buffer; @@ -256,7 +251,7 @@ _nss_nis_gethostton_r (const char *name, struct ether *eth, } enum nss_status -_nss_nis_getntohost_r (struct ether_addr *addr, struct ether *eth, +_nss_nis_getntohost_r (const struct ether_addr *addr, struct etherent *eth, char *buffer, size_t buflen, int *errnop) { struct parser_data *data = (void *) buffer; diff --git a/nis/nss_nisplus/nisplus-ethers.c b/nis/nss_nisplus/nisplus-ethers.c index ddf6f7f128..a8af4569b8 100644 --- a/nis/nss_nisplus/nisplus-ethers.c +++ b/nis/nss_nisplus/nisplus-ethers.c @@ -35,15 +35,6 @@ static nis_result *result = NULL; static nis_name tablename_val = NULL; static u_long tablename_len = 0; -/* Because the `ethers' lookup does not fit so well in the scheme so - we define a dummy struct here which helps us to use the available - functions. */ -struct etherent -{ - const char *e_name; - struct ether_addr e_addr; -}; -struct etherent_data {}; #define NISENTRYVAL(idx,col,res) \ ((res)->objects.objects_val[(idx)].zo_data.objdata_u.en_data.en_cols.en_cols_val[(col)].ec_value.ec_value_val) @@ -53,7 +44,7 @@ struct etherent_data {}; static int _nss_nisplus_parse_etherent (nis_result *result, struct etherent *ether, - char *buffer, size_t buflen, int *errnop) + char *buffer, size_t buflen, int *errnop) { char *p = buffer; size_t room_left = buflen; diff --git a/sunrpc/publickey.c b/sunrpc/publickey.c index 94d5499b98..ee51e3c60e 100644 --- a/sunrpc/publickey.c +++ b/sunrpc/publickey.c @@ -20,6 +20,7 @@ #include <errno.h> #include <rpc/netdb.h> +#include <rpc/auth_des.h> #include "nsswitch.h" |