diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2006-10-12 11:01:56 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2006-10-12 11:01:56 +0000 |
commit | dba09bb1389491f82beb862323a5ccab428a7f2d (patch) | |
tree | e617b84715ab650b6cd162876f7ff6d0b897a05a /ldap-network.c | |
parent | 54845e6fb6d0fa0f7f77b4a7d8520897e0e98496 (diff) |
first round of cleanups, all non-glibc NSS stuff has been removed, because we are going to do some major restructuring it will not likely remain valid anyway and we can always re-add it later
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/libnss_ldapd@10 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'ldap-network.c')
-rw-r--r-- | ldap-network.c | 186 |
1 files changed, 15 insertions, 171 deletions
diff --git a/ldap-network.c b/ldap-network.c index ffbe514..bb94cb1 100644 --- a/ldap-network.c +++ b/ldap-network.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1997-2005 Luke Howard. +/* + Copyright (C) 1997-2005 Luke Howard This file is part of the nss_ldap library. Contributed by Luke Howard, <lukeh@padl.com>, 1997. @@ -18,13 +19,10 @@ Boston, MA 02111-1307, USA. $Id$ - */ +*/ /* parts based on nss_nis */ -static char rcsId[] = - "$Id$"; - #include "config.h" #ifdef HAVE_PORT_BEFORE_H @@ -58,33 +56,26 @@ static char rcsId[] = #include "ldap-network.h" #include "util.h" -#if defined(HAVE_IRS_H) || defined(HAVE_USERSEC_H) +#if defined(HAVE_USERSEC_H) #define MAXALIASES 35 #define MAXADDRSIZE 4 -#endif /* HAVE_IRS_H || HAVE_USERSEC_H */ +#endif /* HAVE_USERSEC_H */ #ifdef HAVE_PORT_AFTER_H #include <port_after.h> #endif -#ifdef HAVE_NSS_H static ent_context_t *net_context = NULL; -#endif -static NSS_STATUS +static enum nss_status _nss_ldap_parse_net (LDAPMessage * e, ldap_state_t * pvt, void *result, char *buffer, size_t buflen) { char *tmp; -#ifdef HAVE_IRS_H - struct nwent *network = (struct nwent *) result; - unsigned char *addr; -#else struct netent *network = (struct netent *) result; -#endif - NSS_STATUS stat; + enum nss_status stat; /* IPv6 support ? XXX */ network->n_addrtype = AF_INET; @@ -100,17 +91,7 @@ _nss_ldap_parse_net (LDAPMessage * e, if (stat != NSS_SUCCESS) return stat; -#ifdef HAVE_IRS_H - if (buflen < MAXADDRSIZE) - return NSS_TRYAGAIN; - addr = buffer; - buffer += MAXADDRSIZE; - buffer -= MAXADDRSIZE; - network->n_length = inet_net_pton (AF_INET, tmp, &addr, MAXADDRSIZE); - network->n_addr = addr; -#else network->n_net = inet_network (tmp); -#endif stat = _nss_ldap_assign_attrvals (e, ATM (LM_NETWORKS, cn), network->n_name, @@ -121,39 +102,12 @@ _nss_ldap_parse_net (LDAPMessage * e, return NSS_SUCCESS; } -#ifdef HAVE_NSSWITCH_H -static NSS_STATUS -_nss_ldap_getnetbyname_r (nss_backend_t * be, void *args) -{ - ldap_args_t a; - NSS_STATUS status; - - LA_INIT (a); - LA_STRING (a) = NSS_ARGS (args)->key.name; - LA_TYPE (a) = LA_TYPE_STRING; - - status = _nss_ldap_getbyname (&a, - NSS_ARGS (args)->buf.result, - NSS_ARGS (args)->buf.buffer, - NSS_ARGS (args)->buf.buflen, - &NSS_ARGS (args)->erange, - _nss_ldap_filt_getnetbyname, - LM_NETWORKS, _nss_ldap_parse_net); - - if (status == NSS_SUCCESS) - NSS_ARGS (args)->returnval = NSS_ARGS (args)->buf.result; - - MAP_H_ERRNO (status, NSS_ARGS (args)->h_errno); - - return status; -} -#elif defined(HAVE_NSS_H) -NSS_STATUS +enum nss_status _nss_ldap_getnetbyname_r (const char *name, struct netent * result, char *buffer, size_t buflen, int *errnop, int *herrnop) { - NSS_STATUS status; + enum nss_status status; ldap_args_t a; LA_INIT (a); @@ -172,48 +126,29 @@ _nss_ldap_getnetbyname_r (const char *name, struct netent * result, return status; } -#endif -#if defined(HAVE_NSSWITCH_H) || defined(HAVE_NSS_H) -#ifdef HAVE_NSSWITCH_H -static NSS_STATUS -_nss_ldap_getnetbyaddr_r (nss_backend_t * be, void *args) -#else -NSS_STATUS +enum nss_status _nss_ldap_getnetbyaddr_r (unsigned long addr, int type, struct netent * result, char *buffer, size_t buflen, int *errnop, int *herrnop) -#endif { struct in_addr in; char buf[256]; int blen; ldap_args_t a; - NSS_STATUS retval = NSS_NOTFOUND; + enum nss_status retval = NSS_NOTFOUND; LA_INIT (a); LA_TYPE (a) = LA_TYPE_STRING; -#ifdef HAVE_NSSWITCH_H - in = inet_makeaddr (NSS_ARGS (args)->key.netaddr.net, 0); -#else in = inet_makeaddr (addr, 0); -#endif strcpy (buf, inet_ntoa (in)); blen = strlen (buf); LA_STRING (a) = buf; while (1) { -#ifdef HAVE_NSSWITCH_H - retval = - _nss_ldap_getbyname (&a, NSS_ARGS (args)->buf.result, - NSS_ARGS (args)->buf.buffer, - NSS_ARGS (args)->buf.buflen, - &NSS_ARGS (args)->erange, -#else retval = _nss_ldap_getbyname (&a, result, buffer, buflen, errnop, -#endif _nss_ldap_filt_getnetbyaddr, LM_NETWORKS, _nss_ldap_parse_net); @@ -229,23 +164,13 @@ _nss_ldap_getnetbyaddr_r (unsigned long addr, int type, } else { -#ifdef HAVE_NSSWITCH_H - NSS_ARGS (args)->returnval = NULL; - MAP_H_ERRNO (retval, NSS_ARGS (args)->h_errno); -#else MAP_H_ERRNO (retval, *herrnop); -#endif return NSS_NOTFOUND; } } else { -#ifdef HAVE_NSSWITCH_H - NSS_ARGS (args)->returnval = NULL; - MAP_H_ERRNO (retval, NSS_ARGS (args)->h_errno); -#else MAP_H_ERRNO (retval, *herrnop); -#endif return retval; } } @@ -256,66 +181,26 @@ _nss_ldap_getnetbyaddr_r (unsigned long addr, int type, } } -#ifdef HAVE_NSSWITCH_H - NSS_ARGS (args)->returnval = NSS_ARGS (args)->buf.result; - MAP_H_ERRNO (retval, NSS_ARGS (args)->h_errno); -#else MAP_H_ERRNO (NSS_SUCCESS, *herrnop); -#endif return retval; } -#endif -#ifdef HAVE_NSSWITCH_H -static NSS_STATUS -_nss_ldap_setnetent_r (nss_backend_t * net_context, void *fakeargs) -#elif defined(HAVE_NSS_H) - NSS_STATUS _nss_ldap_setnetent (void) -#endif -#if defined(HAVE_NSS_H) || defined(HAVE_NSSWITCH_H) + enum nss_status _nss_ldap_setnetent (void) { LOOKUP_SETENT (net_context); } -#endif -#ifdef HAVE_NSSWITCH_H -static NSS_STATUS -_nss_ldap_endnetent_r (nss_backend_t * net_context, void *fakeargs) -#elif defined(HAVE_NSS_H) - NSS_STATUS _nss_ldap_endnetent (void) -#endif -#if defined(HAVE_NSS_H) || defined(HAVE_NSSWITCH_H) + enum nss_status _nss_ldap_endnetent (void) { LOOKUP_ENDENT (net_context); } -#endif -#ifdef HAVE_NSSWITCH_H -static NSS_STATUS -_nss_ldap_getnetent_r (nss_backend_t * net_context, void *args) -{ - NSS_STATUS status = - _nss_ldap_getent (&((nss_ldap_backend_t *) net_context)->state, - NSS_ARGS (args)->buf.result, - NSS_ARGS (args)->buf.buffer, - NSS_ARGS (args)->buf.buflen, - &NSS_ARGS (args)->erange, - _nss_ldap_filt_getnetent, - LM_NETWORKS, - _nss_ldap_parse_net); - - if (status == NSS_SUCCESS) - NSS_ARGS (args)->returnval = NSS_ARGS (args)->buf.result; - - return status; -} -#elif defined(HAVE_NSS_H) -NSS_STATUS +enum nss_status _nss_ldap_getnetent_r (struct netent * result, char *buffer, size_t buflen, int *errnop, int *herrnop) { - NSS_STATUS status; + enum nss_status status; status = _nss_ldap_getent (&net_context, result, @@ -329,44 +214,3 @@ _nss_ldap_getnetent_r (struct netent * result, char *buffer, size_t buflen, return status; } -#endif - -#ifdef HAVE_NSSWITCH_H -static NSS_STATUS -_nss_ldap_networks_destr (nss_backend_t * net_context, void *args) -{ - return _nss_ldap_default_destr (net_context, args); -} - -static nss_backend_op_t net_ops[] = { - _nss_ldap_networks_destr, - _nss_ldap_endnetent_r, - _nss_ldap_setnetent_r, - _nss_ldap_getnetent_r, - _nss_ldap_getnetbyname_r, - _nss_ldap_getnetbyaddr_r -}; - -nss_backend_t * -_nss_ldap_networks_constr (const char *db_name, - const char *src_name, const char *cfg_args) -{ - nss_ldap_backend_t *be; - - if (!(be = (nss_ldap_backend_t *) malloc (sizeof (*be)))) - return NULL; - - be->ops = net_ops; - be->n_ops = sizeof (net_ops) / sizeof (nss_backend_op_t); - - if (_nss_ldap_default_constr (be) != NSS_SUCCESS) - return NULL; - - return (nss_backend_t *) be; -} - -#endif /* !HAVE_NSS_H */ - -#ifdef HAVE_IRS_H -#include "irs-network.c" -#endif |