# HG changeset patch # User Peter Marschall # Date 1299359607 -3600 # Node ID 7d170d1bc17b5d55c7aac3b06d24d338c09957ce # Parent 68318d115f6cfb2029a00c9ce3a6dac98ec29004 run_list: new argument syntax: [] [] [] From 232fbd24ff43c9c0d0691cf0e1b51a82ef099489 Mon Sep 17 00:00:00 2001 Make run_list work with a properly defined argument syntax: - start with (optional) options: -R -l - continue with filter ['(objectclass=*)' as fallback if none given] - end with attributes (also optional) Add method is_valid_filter() to check whether a strig is a legal LDAP filter. diff -r 68318d115f6c -r 7d170d1bc17b shelldap --- a/shelldap Sat Mar 05 20:56:20 2011 +0100 +++ b/shelldap Sat Mar 05 22:13:27 2011 +0100 @@ -775,6 +775,18 @@ return $filter; } + +# check whether a given string may be a filter +# Synopsis: $yesNo = $self->is_valid_filter($string); +sub is_valid_filter +{ + my $self = shift; + my $filter = shift or return; + my $filterObject = Net::LDAP::Filter->new($filter); + + return $filterObject ? 1 : 0 +} + # little. yellow. different. better. # sub debug @@ -1404,35 +1416,50 @@ sub run_list { - my $self = shift; - my @filters = @_; - my $base = $self->base(); - my $attrs = [ 'hasSubordinates' ]; + my $self = shift; + my @args = @_; + my $base = $self->base(); + my @attrs = (); + my $flags = ''; + my $filter = '(objectclass=*)'; + + # parse arguments: [