From: Chong Yidong <cyd@stupidchicken.com>
Subject: Fixing url-ldap.el
Date: Fri, 08 Apr 2005 22:34:09 -0700 [thread overview]
Message-ID: <m18y3sms32.fsf@partenope.stanford.edu> (raw)
This patch should fix the entry "Fix up url-ldap.el" in FOR-RELEASE.
Could someone review it?
*** c:/home/emacs/lisp/url/url-ldap.el~ Sat Apr 9 11:22:56 2005
--- c:/home/emacs/lisp/url/url-ldap.el Sat Apr 9 13:34:55 2005
***************
*** 1,5 ****
;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code
! ;; Copyright (c) 1998 - 1999, 2004 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
--- 1,5 ----
;;; url-ldap.el --- LDAP Uniform Resource Locator retrieval code
! ;; Copyright (c) 1998, 1999, 2004, 2005 Free Software Foundation, Inc.
;; Keywords: comm, data, processes
***************
*** 112,121 ****
(format "<img alt='JPEG Photo' src='data:image/jpeg;base64,%s'>"
(url-hexify-string (base64-encode-string data))))
- ;; FIXME: This needs sorting out for the Emacs LDAP functions, specifically
- ;; calls of ldap-open, ldap-close, ldap-search-internal
;;;###autoload
(defun url-ldap (url)
(save-excursion
(set-buffer (generate-new-buffer " *url-ldap*"))
(setq url-current-object url)
--- 112,126 ----
(format "<img alt='JPEG Photo' src='data:image/jpeg;base64,%s'>"
(url-hexify-string (base64-encode-string data))))
;;;###autoload
(defun url-ldap (url)
+ "Perform the LDAP search specified by URL, and display the result.
+ URL can be a URL string, or a URL vector of the type returned by
+ `url-generic-parse-url'."
+ (if (stringp url)
+ (setq url (url-generic-parse-url (url-unhex-string url)))
+ (if (not (vectorp url))
+ (error "Argument is not a valid URL")))
(save-excursion
(set-buffer (generate-new-buffer " *url-ldap*"))
(setq url-current-object url)
***************
*** 142,151 ****
(scope nil)
(filter nil)
(extensions nil)
! (connection nil)
! (results nil)
! (extract-dn (and (fboundp 'function-max-args)
! (= (function-max-args 'ldap-search-internal) 7))))
;; Get rid of leading /
(if (string-match "^/" data)
--- 147,153 ----
(scope nil)
(filter nil)
(extensions nil)
! (results nil))
;; Get rid of leading /
(if (string-match "^/" data)
***************
*** 163,169 ****
scope (intern (url-unhex-string (or scope "base")))
filter (url-unhex-string (or filter "(objectClass=*)")))
! (if (not (memq scope '(base one tree)))
(error "Malformed LDAP URL: Unknown scope: %S" scope))
;; Convert to the internal LDAP support scoping names.
--- 165,171 ----
scope (intern (url-unhex-string (or scope "base")))
filter (url-unhex-string (or filter "(objectClass=*)")))
! (if (not (memq scope '(base one sub)))
(error "Malformed LDAP URL: Unknown scope: %S" scope))
;; Convert to the internal LDAP support scoping names.
***************
*** 188,199 ****
(assoc "!bindname" extensions))))
;; Now, let's actually do something with it.
! (setq connection (ldap-open host (if binddn (list 'binddn binddn)))
! results (if extract-dn
! (ldap-search-internal connection filter base-object scope attributes nil t)
! (ldap-search-internal connection filter base-object scope attributes nil)))
!
! (ldap-close connection)
(insert "<html>\n"
" <head>\n"
" <title>LDAP Search Results</title>\n"
--- 190,203 ----
(assoc "!bindname" extensions))))
;; Now, let's actually do something with it.
! (setq results (ldap-search-internal
! (list 'host (concat host ":" (number-to-string port))
! 'base base-object
! 'attributes attributes
! 'scope scope
! 'filter filter
! 'binddn binddn)))
!
(insert "<html>\n"
" <head>\n"
" <title>LDAP Search Results</title>\n"
***************
*** 205,212 ****
(mapc (lambda (obj)
(insert " <hr>\n"
" <table border=1>\n")
- (if extract-dn
- (insert " <tr><th colspan=2>" (car obj) "</th></tr>\n"))
(mapc (lambda (attr)
(if (= (length (cdr attr)) 1)
;; single match, easy
--- 209,214 ----
***************
*** 225,231 ****
"<br>\n")
"</td>"
" </tr>\n")))
! (if extract-dn (cdr obj) obj))
(insert " </table>\n"))
results)
--- 227,233 ----
"<br>\n")
"</td>"
" </tr>\n")))
! obj)
(insert " </table>\n"))
results)
next reply other threads:[~2005-04-09 5:34 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-04-09 5:34 Chong Yidong [this message]
2005-04-09 14:25 ` Fixing url-ldap.el Stefan Monnier
-- strict thread matches above, loose matches on Subject: below --
2005-04-09 16:53 Chong Yidong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m18y3sms32.fsf@partenope.stanford.edu \
--to=cyd@stupidchicken.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).