summaryrefslogtreecommitdiff
path: root/server/ldap-parse.h
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2006-11-01 09:23:10 +0000
committerArthur de Jong <arthur@arthurdejong.org>2006-11-01 09:23:10 +0000
commit3fcd73560c9d83dd9c816f3a2d86d1b01a7af8ab (patch)
tree28509cef8d55d480d7965f54b61b82835f48dae2 /server/ldap-parse.h
parent909352b52a35508ee8d76afed7b8003900a9ff41 (diff)
move some remaining files into the server/ directory
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/libnss_ldapd@39 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'server/ldap-parse.h')
-rw-r--r--server/ldap-parse.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/server/ldap-parse.h b/server/ldap-parse.h
new file mode 100644
index 0000000..c1e1f1f
--- /dev/null
+++ b/server/ldap-parse.h
@@ -0,0 +1,68 @@
+/*
+ Copyright (C) 1997-2005 Luke Howard
+ This file is part of the nss_ldap library.
+ Contributed by Luke Howard, <lukeh@padl.com>, 1997.
+
+ The nss_ldap library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The nss_ldap library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the nss_ldap library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ $Id$
+*/
+
+
+#ifndef _LDAP_NSS_LDAP_LDAP_PARSE_H
+#define _LDAP_NSS_LDAP_LDAP_PARSE_H
+
+#define LOOKUP_NAME(name, result, buffer, buflen, errnop, filter, selector, parser, req_buflen) \
+ struct ldap_args a; \
+ if (buflen < req_buflen) { \
+ *errnop = ERANGE; \
+ return NSS_STATUS_TRYAGAIN; \
+ } \
+ LA_INIT(a); \
+ LA_STRING(a) = name; \
+ LA_TYPE(a) = LA_TYPE_STRING; \
+ return _nss_ldap_getbyname(&a, result, buffer, buflen, errnop, filter, selector, parser);
+
+#define LOOKUP_NUMBER(number, result, buffer, buflen, errnop, filter, selector, parser, req_buflen) \
+ struct ldap_args a; \
+ if (buflen < req_buflen) { \
+ *errnop = ERANGE; \
+ return NSS_STATUS_TRYAGAIN; \
+ } \
+ LA_INIT(a); \
+ LA_NUMBER(a) = number; \
+ LA_TYPE(a) = LA_TYPE_NUMBER; \
+ return _nss_ldap_getbyname(&a, result, buffer, buflen, errnop, filter, selector, parser)
+
+#define LOOKUP_SETENT(key) \
+ if (_nss_ldap_ent_context_init(&key) == NULL) \
+ return NSS_STATUS_UNAVAIL; \
+ return NSS_STATUS_SUCCESS
+
+#define LOOKUP_GETENT(key, result, buffer, buflen, errnop, filter, selector, parser, req_buflen) \
+ if (buflen < req_buflen) { \
+ *errnop = ERANGE; \
+ return NSS_STATUS_TRYAGAIN; \
+ } \
+ return _nss_ldap_getent(&key, result, buffer, buflen, errnop, filter, selector, parser)
+
+#define LOOKUP_ENDENT(key) \
+ _nss_ldap_enter(); \
+ _nss_ldap_ent_context_release(key); \
+ _nss_ldap_leave(); \
+ return NSS_STATUS_SUCCESS
+
+#endif /* _LDAP_NSS_LDAP_LDAP_PARSE_H */