Revert an old LCS edge case fix in favor of a better one.
Update for v1.5.1 release.
Fix sasl for DIGEST-MD5, PLAIN, and LOGIN mechanisms, which I don't think ever actually worked properly.

Add a sasluser argument if a specific identity is required for the
backend, which if unsupplied, tries to guess if a binddn is present.

(Uwe's previous commit fixed EXTERNAL and GSSAPI, which did work, but
randomly failed due to hash ordering.)

Minor style cleanups, remove duplicate/unecessary logic for anonymous
af3c3c0a1f3b — Uwe Kleine-König 1 year, 9 months ago
Don't provide a password for sasl authentication.

When a sasl parameter is given (and used) the password parameter is not
used by Net::LDAP. If indeed a password is required it has to be passed
in the Authen::SASL object, not as parameter to bind.

So drop the password parameter which stops trying (and failing) to use
password authentication sometimes if in Net/ the iteration over
%ptype hits its 'password' member before the 'sasl' member.
Minor pod formatting correction.
Changelog updates for v1.5.0.
Merged in docelic/shelldap (pull request #2)

Reset isearch state on ctrl+c when using Readline 7

Approved-by: Mahlon E. Smith <>
c1d8da18e65d — Davor Ocelic 2 years ago
Reset isearch state on ctrl+c when using Readline 7

This change does not affect Readline versions below 7.
A fix for RL<7 would be to modify readline_state to turn off
ISEARCH and set DONE, but changing these values through the
Perl module does not appear to have visible effect.
Added tag v1.5.0 for changeset d6a75d14db12
Update CONTRIBUTORS and bump version.
6c14c49fe429 — Davor Ocelic 2 years ago
Improve defining aliases with = or ' '
7f804e1f903c — Davor Ocelic 2 years ago
Multiple configfile-related changes

- Print current configfile in the output of 'env' (this also makes configfile changeable in runtime via 'setenv')
- In 'configfile' commands, print which config file is being used
- Fix behavior of existing 'more_conf'
- Make load_config() return filename and hash, rather than unconditionally overwrite $conf
- Bring back %conf2 into implementation of save_config; it is necessary to be there or 'configfile' is getting lost/deleted in the runtime config

Other changes

- Add 'set' as alias for 'setenv'
- Add unsetenv/unset (opposite of setenv/set)
- Do not print unset/undefined values in 'env'
a6c211de24f0 — Davor Ocelic 2 years ago
Support separating aliases by space too
2d7f16eff198 — Davor Ocelic 2 years ago
Use local implementation of slurp()
eb1bcbaf9763 — Davor Ocelic 2 years ago
Improve accepted command line options

This commit enables getopt case sensitivity and adds all command line
options/abbreviations typically supported by LDAP clients:

-w/-y, -p, -x, -Z/-ZZ, -v
6a0b1209dafa — Davor Ocelic 2 years ago
Support arrays/hashes in 'env' (WIP)

- 'env' now prints 'attributes' array
- 'env' output now supports any data type, not just strings
- option --attributes on command line properly overrides config values

The remaining thing to do is to support 'setenv' to work with non-strings too.
5ace587c3ea3 — Davor Ocelic 2 years ago
Add alias, unalias, configfile

- Add commands 'alias' and 'unalias'.
  Behavior is almost identical to shell.
  Aliases currently cannot override commands.

- Add command 'configfile'.
  Allows loading / saving config files from command line.
35b7143830e8 — Davor Ocelic 2 years ago
With ls -l, print file type ('-' or 'd') as first field of output

This change brings output of 'ls -l' closer to the actual shell command.