Re: syntax not understood by LDAP

Mark Smith <mcs@umich.edu> Wed, 19 October 1994 23:03 UTC

Received: from ietf.nri.reston.va.us by IETF.CNRI.Reston.VA.US id aa08235; 19 Oct 94 19:03 EDT
Received: from CNRI.Reston.VA.US by IETF.CNRI.Reston.VA.US id aa08231; 19 Oct 94 19:03 EDT
Received: from haig.cs.ucl.ac.uk by CNRI.Reston.VA.US id aa20419; 19 Oct 94 19:03 EDT
Received: from bells.cs.ucl.ac.uk by haig.cs.ucl.ac.uk with local SMTP id <g.03989-0@haig.cs.ucl.ac.uk>; Wed, 19 Oct 1994 22:30:32 +0100
Received: from terminator.rs.itd.umich.edu by bells.cs.ucl.ac.uk with Internet SMTP id <g.01916-0@bells.cs.ucl.ac.uk>; Wed, 19 Oct 1994 22:30:14 +0100
Received: from terminator.rs.itd.umich.edu by terminator.rs.itd.umich.edu (8.6.9/2.3) with SMTP id RAA15283; Wed, 19 Oct 1994 17:30:01 -0400
Message-Id: <199410192130.RAA15283@terminator.rs.itd.umich.edu>
Sender: ietf-archive-request@IETF.CNRI.Reston.VA.US
From: Mark Smith <mcs@umich.edu>
To: Annick Consael <consael@fokus.berlin.gmd.d400.de>
cc: osi-ds@cs.ucl.ac.uk
Subject: Re: syntax not understood by LDAP
In-reply-to: Your message of "Wed, 19 Oct 1994 10:54:26 BST." <305*/S=consael/OU=fokus/OU=berlin/PRMD=gmd/ADMD=d400/C=de/@MHS>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="----- =_aaaaaaaaaa0"
Date: Wed, 19 Oct 1994 17:30:01 -0400
X-Orig-Sender: mcs@terminator.rs.itd.umich.edu

>From:     Annick Consael <consael@fokus.berlin.gmd.d400.de>
>  To:     osi-ds@cs.ucl.ac.uk
> 
> We have locally defined a new attribute "comment" of the syntax 
> "caseIgnoreList" and have noticed that is does not come correctly into the
> Directory using LDAP (3.0).
> We have written an LDAP-Client which creates an entry with this attribute.
> The supplied value "something $ something else" is put in the Direcctory as:
>    "{T.61}something \20 something else" and with DISH it comes as:
> 
>     comment - something $ something else
> 
> Has someone an idea why this happens? Are there any bugs known?


I assume you are using the University of Michigan LDAP implementation
(which has also been incorporated into the ISODE Consortium releases)?
This does indeed look like a bug -- the code in ldapd/syntax.c needs a
special case added for the caseIgnoreList syntax.  In the latest LDAP
code (not yet released) we handled it by adding code to find the syntax
for an attribute we use here called "multilineDescription" (which also
has caseIgnoreList syntax).  The correct fix is probably something more
like the patch I have attached; I haven't tried to run the code, so let
me know if it fixes the problem.  If so, I will incorporate it into the
next LDAP release.

-Mark


*** syntax.c-	Fri Oct 29 10:07:31 1993
--- syntax.c	Wed Oct 19 17:23:20 1994
***************
*** 31,36 ****
--- 31,37 ----
  short	ldap_mtai_syntax;
  short	ldap_rts_cred_syntax;
  short	ldap_rtl_syntax;
+ short	ldap_caseignorelist_syntax;
  
  AttributeValue	ldap_str2AttrV();
  static		de_t61();
***************
*** 68,73 ****
--- 69,75 ----
  	ldap_mtai_syntax = get_one_syntax( "mTAInfo", 0 );
  	ldap_rts_cred_syntax= get_one_syntax( "initiatingRTSCredentials", 0 );
  	ldap_rtl_syntax= get_one_syntax( "routingTreeList", 0 );
+ 	ldap_caseignorelist_syntax = str2syntax( "caseIgnoreListSyntax" );
  }
  
  #define SEPARATOR(c)	(c == ',' || c == ';')
***************
*** 802,808 ****
  
  	if ( type->oa_syntax == ldap_rts_cred_syntax ||
  	    type->oa_syntax == ldap_mtai_syntax ||
! 	    type->oa_syntax == ldap_rtl_syntax ) {
  		res = str;
  	} else {
  		res = (char *) malloc( max( 2 * strlen( str ), 10 ) );
--- 804,811 ----
  
  	if ( type->oa_syntax == ldap_rts_cred_syntax ||
  	    type->oa_syntax == ldap_mtai_syntax ||
! 	    type->oa_syntax == ldap_rtl_syntax ||
! 	    type->oa_syntax == ldap_caseignorelist_syntax ) {
  		res = str;
  	} else {
  		res = (char *) malloc( max( 2 * strlen( str ), 10 ) );