diff --git a/dirmngr/Makefile.am b/dirmngr/Makefile.am index d154e5228..4018a5f8a 100644 --- a/dirmngr/Makefile.am +++ b/dirmngr/Makefile.am @@ -74,7 +74,7 @@ dirmngr_SOURCES += dns.c dns.h endif if USE_LDAP -dirmngr_SOURCES += ldapserver.h ldapserver.c ldap.c w32-ldap-help.h \ +dirmngr_SOURCES += ldapserver.h ldapserver.c ldap.c \ ldap-wrapper.h ldap-parse-uri.c ldap-parse-uri.h \ ldap-misc.c ldap-misc.h \ ks-engine-ldap.c $(ldap_url) ldap-wrapper.c diff --git a/dirmngr/cdblib.c b/dirmngr/cdblib.c index c40126396..dde9dfa0c 100644 --- a/dirmngr/cdblib.c +++ b/dirmngr/cdblib.c @@ -131,11 +131,7 @@ cdb_init(struct cdb *cdbp, int fd) } /* memory-map file */ #ifdef _WIN32 -# ifdef __MINGW32CE__ - hFile = fd; -# else hFile = (HANDLE) _get_osfhandle(fd); -# endif if (hFile == (HANDLE) -1) return -1; hMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL); diff --git a/dirmngr/w32-ldap-help.h b/dirmngr/w32-ldap-help.h deleted file mode 100644 index 566a34634..000000000 --- a/dirmngr/w32-ldap-help.h +++ /dev/null @@ -1,169 +0,0 @@ -/* w32-ldap-help.h - Map utf8 based API into a wchar_t API. - * Copyright (C) 2010 Free Software Foundation, Inc. - * - * This file is part of GnuPG. - * - * GnuPG is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * GnuPG 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 General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, see . - */ - -#ifndef W32_LDAP_HELP_H -#define W32_LDAP_HELP_H - -#ifndef HAVE_W32CE_SYSTEM -# error This is only required for W32CE. -#endif - - -static inline LDAP * -_dirmngr_ldap_init (const char *host, unsigned short port) -{ - LDAP *ld; - wchar_t *whost = NULL; - - if (host) - { - whost = utf8_to_wchar (host); - if (!whost) - return NULL; - } - ld = ldap_init (whost, port); - xfree (whost); - return ld; -} - - -static inline ULONG -_dirmngr_ldap_simple_bind_s (LDAP *ld, const char *user, const char *pass) -{ - ULONG ret; - wchar_t *wuser, *wpass; - - wuser = user? utf8_to_wchar (user) : NULL; - wpass = pass? utf8_to_wchar (pass) : NULL; - /* We can't easily map errnos to ldap_errno, thus we pass a NULL to - the function in the hope that the server will throw an error. */ - ret = ldap_simple_bind_s (ld, wuser, wpass); - xfree (wpass); - xfree (wuser); - return ret; -} - - -static inline ULONG -_dirmngr_ldap_search_st (LDAP *ld, const char *base, ULONG scope, - const char *filter, char **attrs, - ULONG attrsonly, struct timeval *timeout, - LDAPMessage **res) -{ - ULONG ret = LDAP_NO_MEMORY; - wchar_t *wbase = NULL; - wchar_t *wfilter = NULL; - wchar_t **wattrs = NULL; - int i; - - if (base) - { - wbase = utf8_to_wchar (base); - if (!wbase) - goto leave; - } - if (filter) - { - wfilter = utf8_to_wchar (filter); - if (!wfilter) - goto leave; - } - if (attrs) - { - for (i=0; attrs[i]; i++) - ; - wattrs = xtrycalloc (i+1, sizeof *wattrs); - if (!wattrs) - goto leave; - for (i=0; attrs[i]; i++) - { - wattrs[i] = utf8_to_wchar (attrs[i]); - if (!wattrs[i]) - goto leave; - } - } - - ret = ldap_search_st (ld, wbase, scope, wfilter, wattrs, attrsonly, - (struct l_timeval *)timeout, res); - - leave: - if (wattrs) - { - for (i=0; wattrs[i]; i++) - xfree (wattrs[i]); - xfree (wattrs); - } - xfree (wfilter); - xfree (wbase); - return ret; -} - - -static inline char * -_dirmngr_ldap_first_attribute (LDAP *ld, LDAPMessage *msg, BerElement **elem) -{ - wchar_t *wattr; - char *attr; - - wattr = ldap_first_attribute (ld, msg, elem); - if (!wattr) - return NULL; - attr = wchar_to_utf8 (wattr); - ldap_memfree (wattr); - return attr; -} - - -static inline char * -_dirmngr_ldap_next_attribute (LDAP *ld, LDAPMessage *msg, BerElement *elem) -{ - wchar_t *wattr; - char *attr; - - wattr = ldap_next_attribute (ld, msg, elem); - if (!wattr) - return NULL; - attr = wchar_to_utf8 (wattr); - ldap_memfree (wattr); - return attr; -} - -static inline BerValue ** -_dirmngr_ldap_get_values_len (LDAP *ld, LDAPMessage *msg, const char *attr) -{ - BerValue **ret; - wchar_t *wattr; - - if (attr) - { - wattr = utf8_to_wchar (attr); - if (!wattr) - return NULL; - } - else - wattr = NULL; - - ret = ldap_get_values_len (ld, msg, wattr); - xfree (wattr); - - return ret; -} - - -#endif /*W32_LDAP_HELP_H*/