X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a359f0e0ff878285654e2f0bcc7bd3b4340c778c..a971635315e259c076de020b3676c04d1dcc415e:/lisp/net/ldap.el diff --git a/lisp/net/ldap.el b/lisp/net/ldap.el index 16af42ffc2..6cf96f3fe0 100644 --- a/lisp/net/ldap.el +++ b/lisp/net/ldap.el @@ -1,18 +1,19 @@ ;;; ldap.el --- client interface to LDAP for Emacs -;; Copyright (C) 1998, 1999, 2000, 02, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, +;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc. ;; Author: Oscar Figueiredo -;; Maintainer: Pavel Janík +;; Maintainer: FSF ;; Created: April 1998 ;; Keywords: comm ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs 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 2, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -20,9 +21,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, -;; Boston, MA 02111-1307, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -153,7 +152,7 @@ Valid properties include: :type '(string :tag "`ldapsearch' Program") :group 'ldap) -(defcustom ldap-ldapsearch-args '("-LL" "-tt" "-x") +(defcustom ldap-ldapsearch-args '("-LL" "-tt") "*A list of additional arguments to pass to `ldapsearch'." :type '(repeat :tag "`ldapsearch' Arguments" (string :tag "Argument")) @@ -489,9 +488,11 @@ to try to connect to. Each host name may optionally be of the form HOST:PORT. for each matching entry. If nil, return all available attributes. `attrsonly', if non-nil, indicates that only attributes are retrieved, not their associated values. + `auth' is one of the symbols `simple', `krbv41' or `krbv42'. `base' is the base for the search as described in RFC 1779. `scope' is one of the three symbols `sub', `base' or `one'. `binddn' is the distinguished name of the user to bind as (in RFC 1779 syntax). + `auth' is one of the symbols `simple', `krbv41' or `krbv42' `passwd' is the password to use for simple authentication. `deref' is one of the symbols `never', `always', `search' or `find'. `timelimit' is the timeout limit for the connection in seconds. @@ -511,6 +512,7 @@ an alist of attribute/value pairs." ldap-default-base)) (scope (plist-get search-plist 'scope)) (binddn (plist-get search-plist 'binddn)) + (auth (plist-get search-plist 'auth)) (passwd (plist-get search-plist 'passwd)) (deref (plist-get search-plist 'deref)) (timelimit (plist-get search-plist 'timelimit)) @@ -540,6 +542,9 @@ an alist of attribute/value pairs." (if (and binddn (not (equal "" binddn))) (setq arglist (nconc arglist (list (format "-D%s" binddn))))) + (if (and auth + (equal 'simple auth)) + (setq arglist (nconc arglist (list "-x")))) (if (and passwd (not (equal "" passwd))) (setq arglist (nconc arglist (list (format "-w%s" passwd))))) @@ -554,7 +559,7 @@ an alist of attribute/value pairs." (setq arglist (nconc arglist (list (format "-z%s" sizelimit))))) (eval `(call-process ldap-ldapsearch-prog nil - `(,buf nil) + buf nil ,@arglist ,@ldap-ldapsearch-args @@ -579,7 +584,9 @@ an alist of attribute/value pairs." (end-of-line) (point)))) (forward-line 1) - (while (looking-at "^\\(\\w*\\)\\(;\\w*\\)?[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") + (while (looking-at "^\\([A-Za-z][-A-Za-z0-9]*\ +\\|[0-9]+\\(?:\\.[0-9]+\\)*\\)\\(;[-A-Za-z0-9]+\\)*[=:\t ]+\ +\\(<[\t ]*file://\\)\\(.*\\)$") (setq name (match-string 1) value (match-string 4)) ;; Need to handle file:///D:/... as generated by OpenLDAP @@ -612,5 +619,5 @@ an alist of attribute/value pairs." (provide 'ldap) -;;; arch-tag: 47913a76-6155-42e6-ac58-6d28b5d50eb0 +;; arch-tag: 47913a76-6155-42e6-ac58-6d28b5d50eb0 ;;; ldap.el ends here