summaryrefslogtreecommitdiff
path: root/ldap-network.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2006-10-12 11:01:56 +0000
committerArthur de Jong <arthur@arthurdejong.org>2006-10-12 11:01:56 +0000
commitdba09bb1389491f82beb862323a5ccab428a7f2d (patch)
treee617b84715ab650b6cd162876f7ff6d0b897a05a /ldap-network.c
parent54845e6fb6d0fa0f7f77b4a7d8520897e0e98496 (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.c186
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