[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#6247)



I've enabled <g-differential> format as default for the Root-DSE's 
serverTime attribute (and thus removed the #ifdef 
CTM_G_DIFFERENTIAL_SERVERTIME).

The updated patch can be downloaded from here: 
ftp://ftp.openldap.org/incoming/daniel-pluta-100503.patch
Please use -DCTM during compilation.

Below is a sample schema file called "example.schema" and some sample 
data called "example.ldif". In addition also some sample ldif change 
files and filter statements are provided to:
- offer you some first, quick and easy testing possibilities regarding
  "LDAP server side current time matching"'s matching rules in action
- and to give us a chance to get more detailed feedback regarding
  problems concerning the LDAP specification in common (e.g.
  violation of the standard) and slapd in detail.

Many thanks!

Depending on your feedback and the current status of the discussion on 
ldapext the code will be updated accordingly.

It's currently just a prototype, the obviously open implementation TODOs 
are:
    - use operation's time-stamp instead of system calls (OpenLDAP 2.5?)
    - X.680 duration-syntax (instead of custom offset fun: "n#n#n#n#n#n")
    - further cleanups: function aggregation / coding style / ...
    - integration into "make test"?
      e.g. using FTPL: http://www.code-wizards.com/projects/libfaketime (?!)


#=========================================
$: cat example.schema
attributetype ( 1.3.6.1.4.1.7650.666.1.1.1
 NAME 'demoTs1'
 DESC 'draft-pluta-ldap-srv-side-current-time-match: 1st demo attribute'
 EQUALITY nowMatch
 ORDERING nowOrderingMatch
 SYNTAX 1.3.6.1.4.1.7650.6.2.3.1.0
 )

attributetype ( 1.3.6.1.4.1.7650.666.1.1.2
 NAME 'demoTs2'
 DESC 'draft-pluta-ldap-srv-side-current-time-match: 2nd demo attribute'
 EQUALITY nowMatch
 ORDERING nowOrderingMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
 )

attributetype ( 1.3.6.1.4.1.7650.666.1.1.3
 NAME 'demoTs3'
 DESC 'draft-pluta-ldap-srv-side-current-time-match: 3rd demo attribute 
(violat
 es RFC4517)'
 EQUALITY generalizedTimeMatch
 ORDERING generalizedTimeOrderingMatch
 SYNTAX 1.3.6.1.4.1.1466.115.121.1.24
 )

objectclass ( 1.3.6.1.4.1.7650.666.1.2.1
 NAME 'ctmDemo'
 DESC 'draft-pluta-ldap-srv-side-current-time-match: demo objectClass'
 AUXILIARY
 MAY ( demoTs1 $ demoTs2 $ demoTs3 )
 )

#==DATA=======================================
$: cat example.ldif
dn: dc=example,dc=com
objectClass: domain
objectClass: extensibleObject
objectClass: top

dn: ou=dev,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
objectClass: ctmDemo
ou: dev
demoTs1: 20100101000000Z
demoTs2: 20100101000000Z
demoTs3: 20100101000000Z

#==LDIF=CHANGE=FILES==========================
$: cat add_delete.ldif
dn: ou=dev,dc=example,dc=com
changetype: modify
delete: demoTs1
demoTs1: 20100101000000Z
-
add: demoTs1
demoTs1: 20100201000001Z

dn: ou=dev,dc=example,dc=com
changetype: modify
delete: demoTs2
demoTs2: 20100101000000Z
-
add: demoTs2
demoTs2: 20100201000001Z

dn: ou=dev,dc=example,dc=com
changetype: modify
delete: demoTs3
demoTs3: 20100101000000Z
-
add: demoTs3
demoTs3: 20100201000001Z

#-----------------------------------------
$: cat add_mv.ldif
dn: ou=dev,dc=example,dc=com
changetype: modify
add: demoTs1
demoTs1: 20110201000000Z
-
add: demoTs1
demoTs1: 20120201000000Z
-
add: demoTs1
demoTs1: 20130201000000Z
-
add: demoTs1
demoTs1: 20100201000000Z

dn: ou=dev,dc=example,dc=com
changetype: modify
add: demoTs2
demoTs2: 20110201000000Z
-
add: demoTs2
demoTs2: 20120201000000Z
-
add: demoTs2
demoTs2: 20130201000000Z
-
add: demoTs2
demoTs2: 20100201000000Z

dn: ou=dev,dc=example,dc=com
changetype: modify
add: demoTs3
demoTs3: 20110201000000Z
-
add: demoTs3
demoTs3: 20120201000000Z
-
add: demoTs3
demoTs3: 20130201000000Z
-
add: demoTs3
demoTs3: 20100201000000Z

#-----------------------------------------
$: cat reset.ldif
dn: ou=dev,dc=example,dc=com
changetype: modify
delete: demoTs1
-
add: demoTs1
demoTs1: 20100101000000Z

dn: ou=dev,dc=example,dc=com
changetype: modify
delete: demoTs2
-
add: demoTs2
demoTs2: 20100101000000Z

dn: ou=dev,dc=example,dc=com
changetype: modify
delete: demoTs3
-
add: demoTs3
demoTs3: 20100101000000Z

#==FILTER=STATEMENTS======================
#BTW: You can use the FakeTime Preload Library
#(link above) to easily fake slapd's time to
#get constant results for automatic testing

(demoTs1=20100101000000Z)
(demoTs1<=NOW)
(demoTs1>=NOW)
(demoTs1>=-2#0#0#0#0#0)

(demoTs2=20100101000000Z)
(demoTs2<=NOW)
(demoTs2>=NOW)
(demoTs2<=0#-1#0#0#0#0)

(demoTs3=20100101000000Z)

#Only possible if compiled using:
#-DRFC4517_ASSERTION_SYNTAX_VIOLATION
(demoTs3<=NOW)
(demoTs3>=NOW)