* Does anybody have EUDC and OpenLDAP working? @ 2004-01-15 14:22 Bruce S. Skinner 2004-01-16 8:15 ` Dmitry Astapov 0 siblings, 1 reply; 4+ messages in thread From: Bruce S. Skinner @ 2004-01-15 14:22 UTC (permalink / raw) When doing a directory search I get the error: Opening input file: no such file or directory, /home/skinner/unrecognized option -B My environment is Emacs v21.2.1, OpenLDAP 2.1.22 regards :-) BruceS -- Bruce S. Skinner Defence R&D Canada - Atlantic 9 Grove St. <mailto:Bruce.Skinner@drdc-rddc.gc.ca> P.O. Box 1012 <http://www.drdc-rddc.dnd.ca> Dartmouth NS CANADA tel: (902) 426-3100 x205 B2Y 3Z7 fax: (902) 426-9654 ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Does anybody have EUDC and OpenLDAP working? 2004-01-15 14:22 Does anybody have EUDC and OpenLDAP working? Bruce S. Skinner @ 2004-01-16 8:15 ` Dmitry Astapov 2004-01-16 18:41 ` Martin Morgan 0 siblings, 1 reply; 4+ messages in thread From: Dmitry Astapov @ 2004-01-16 8:15 UTC (permalink / raw) Evening, Bruce. Bruce.Skinner@drdc-rddc.gc.ca (Bruce S. Skinner) 14:22 15/1/2004 wrote: BSS> When doing a directory search I get the error: BSS> Opening input file: no such file or directory, BSS> /home/skinner/unrecognized option -B BSS> My environment is Emacs v21.2.1, OpenLDAP 2.1.22 Lucky you. I (with xemacs 21.4.14 and openldap 2.1.23) often get my xemacs crashed on the first (after reboot) eudc search. It goes on for quite a long time and I honestly dont know what to do about it ... -- Dmitry Astapov //ADEpt GPG KeyID/fprint: F5D7639D/CA36 E6C4 815D 434D 0498 2B08 7867 4860 F5D7 639D ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Does anybody have EUDC and OpenLDAP working? 2004-01-16 8:15 ` Dmitry Astapov @ 2004-01-16 18:41 ` Martin Morgan 2004-01-18 14:49 ` Bruce S. Skinner 0 siblings, 1 reply; 4+ messages in thread From: Martin Morgan @ 2004-01-16 18:41 UTC (permalink / raw) > Bruce.Skinner@drdc-rddc.gc.ca (Bruce S. Skinner) 14:22 15/1/2004 wrote: > > BSS> When doing a directory search I get the error: > > BSS> Opening input file: no such file or directory, > BSS> /home/skinner/unrecognized option -B > > BSS> My environment is Emacs v21.2.1, OpenLDAP 2.1.22 I've just been struggling with this. I think there are two things. First, the variable ldap-host-parameters-alist has a default option -B, but I think openldap doesn't recognize this option. So use customize-variable ldap-host-parameters-alist and delete this. Second and more problematic is in the ldap.el file. The function ldap-search-internal parses the info that comes back from ldapsearch with this snippet: (while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") (setq name (match-string 1) value (match-string 3)) (save-excursion (set-buffer bufval) (erase-buffer) (insert-file-contents-literally value) (delete-file value) (setq value (buffer-substring (point-min) (point-max)))) (setq record (cons (list name value) record)) (forward-line 1)) although written otherwise, the regexp is designed for ldapsearch storing each search key in a temporary file (with OpenLDAP this would be accomplished by the variable -tt), and the search itself returning a list of keys and the file they're stored in. The regexp extracts the file tag and file name, and then, in the save-excursion retrieves the info from the file. What actually happens with the default arguments is that the keys are not saved to file, but are returned as key: value pairs. The regexp picks up the value, but the value is treated as a file name. Here's my kludge: (while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") (setq name (match-string 1) file (match-string 2) ; mtm -- only match with binary files value (match-string 3)) (if file ; mtm -- read any binary files (save-excursion (set-buffer bufval) (erase-buffer) (insert-file-contents-literally value) (delete-file value) (setq value (buffer-substring (point-min) (point-max)))) ) ; mtm -- end if Basically, only replace the value with file contents when a value is actually returned in a file (apparently, this can happen with the -t option if, for instance, the LDAP server stores, e.g., pictures of each entry). It's not enough just to feed -tt as an option in ldap-host-parameters-alist (which would be overkill anyway, storing all values in temporary files) because earlier in the ldap-search-internal routine there's an assumption about the format of the output (that the first line after blank is dn: value) that isn't true for the default ldapsearch parameters (where the first line after a blank is a comment). I *think* the non-coding solution is to customize the ldap-host-parameters-alist to -LLL and -tt. If you go with this option, you might need to make ensure file naming conventions so that OpenLDAP deals with spaces in file names correctly. Hope that helps! Dmitry Astapov <adept@ukr.net> writes: > Evening, Bruce. > > > Lucky you. I (with xemacs 21.4.14 and openldap 2.1.23) often get my xemacs > crashed on the first (after reboot) eudc search. It goes on for quite a > long time and I honestly dont know what to do about it ... This, unfortunately, I cannot help with. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Does anybody have EUDC and OpenLDAP working? 2004-01-16 18:41 ` Martin Morgan @ 2004-01-18 14:49 ` Bruce S. Skinner 0 siblings, 0 replies; 4+ messages in thread From: Bruce S. Skinner @ 2004-01-18 14:49 UTC (permalink / raw) Hello Martin, I have it working now thanks to Dan Katz (see his post). Your fix is pretty much what he did (see his post in this thread). I would have headed down the -tt option route if I had known about it. The manpage for ldapsearch v2.1.22 is mis-leading " -t Write retrieved values to a set of temporary files. This is useful for dealing with non-ASCII values such as jpegPhoto or audio. " and it doesn't mention option '-tt' anywhere. Thanks very much and regards :-) BruceS Martin Morgan <mmorgan@wsu.edu> writes: > > Bruce.Skinner@drdc-rddc.gc.ca (Bruce S. Skinner) 14:22 15/1/2004 wrote: > > > > BSS> When doing a directory search I get the error: > > > > BSS> Opening input file: no such file or directory, > > BSS> /home/skinner/unrecognized option -B > > > > BSS> My environment is Emacs v21.2.1, OpenLDAP 2.1.22 > > I've just been struggling with this. > > I think there are two things. First, the variable > ldap-host-parameters-alist has a default option -B, but I think > openldap doesn't recognize this option. So use customize-variable > ldap-host-parameters-alist and delete this. > > Second and more problematic is in the ldap.el file. The function > ldap-search-internal parses the info that comes back from ldapsearch > with this snippet: > > (while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") > (setq name (match-string 1) > value (match-string 3)) > (save-excursion > (set-buffer bufval) > (erase-buffer) > (insert-file-contents-literally value) > (delete-file value) > (setq value (buffer-substring (point-min) (point-max)))) > (setq record (cons (list name value) > record)) > (forward-line 1)) > > although written otherwise, the regexp is designed for ldapsearch > storing each search key in a temporary file (with OpenLDAP this would > be accomplished by the variable -tt), and the search itself returning > a list of keys and the file they're stored in. The regexp extracts the > file tag and file name, and then, in the save-excursion retrieves the > info from the file. What actually happens with the default arguments > is that the keys are not saved to file, but are returned as key: value > pairs. The regexp picks up the value, but the value is treated as a > file name. Here's my kludge: > > (while (looking-at "^\\(\\w*\\)[=:\t ]+\\(<[\t ]*file://\\)?\\(.*\\)$") > (setq name (match-string 1) > file (match-string 2) ; mtm -- only match with binary files > value (match-string 3)) > (if file ; mtm -- read any binary files > (save-excursion > (set-buffer bufval) > (erase-buffer) > (insert-file-contents-literally value) > (delete-file value) > (setq value (buffer-substring (point-min) (point-max)))) > ) ; mtm -- end if > > Basically, only replace the value with file contents when a value is > actually returned in a file (apparently, this can happen with the -t > option if, for instance, the LDAP server stores, e.g., pictures of > each entry). > > It's not enough just to feed -tt as an option in > ldap-host-parameters-alist (which would be overkill anyway, storing > all values in temporary files) because earlier in the > ldap-search-internal routine there's an assumption about the format of > the output (that the first line after blank is dn: value) that isn't > true for the default ldapsearch parameters (where the first line after > a blank is a comment). I *think* the non-coding solution is to > customize the ldap-host-parameters-alist to -LLL and -tt. If you go > with this option, you might need to make ensure file naming > conventions so that OpenLDAP deals with spaces in file names > correctly. > > Hope that helps! > > Dmitry Astapov <adept@ukr.net> writes: > > > Evening, Bruce. > > > > > > Lucky you. I (with xemacs 21.4.14 and openldap 2.1.23) often get my xemacs > > crashed on the first (after reboot) eudc search. It goes on for quite a > > long time and I honestly dont know what to do about it ... > > This, unfortunately, I cannot help with. -- Bruce S. Skinner Defence R&D Canada - Atlantic 9 Grove St. <mailto:Bruce.Skinner@drdc-rddc.gc.ca> P.O. Box 1012 <http://www.drdc-rddc.dnd.ca> Dartmouth NS CANADA tel: (902) 426-3100 x205 B2Y 3Z7 fax: (902) 426-9654 ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2004-01-18 14:49 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-01-15 14:22 Does anybody have EUDC and OpenLDAP working? Bruce S. Skinner 2004-01-16 8:15 ` Dmitry Astapov 2004-01-16 18:41 ` Martin Morgan 2004-01-18 14:49 ` Bruce S. Skinner
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).