Diff for /servers/slapd/schemaparse.c between versions 1.79 and 1.80

version 1.79, 2006/01/03 22:12:16 version 1.80, 2006/01/21 09:41:41
Line 1 Line 1
 /* schemaparse.c - routines to parse config file objectclass definitions */  /* schemaparse.c - routines to parse config file objectclass definitions */
 /* $OpenLDAP: pkg/ldap/servers/slapd/schemaparse.c,v 1.78 2005/11/19 13:57:26 ando Exp $ */  /* $OpenLDAP: pkg/ldap/servers/slapd/schemaparse.c,v 1.79 2006/01/03 22:12:16 kurt Exp $ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *   *
  * Copyright 1998-2006 The OpenLDAP Foundation.   * Copyright 1998-2006 The OpenLDAP Foundation.
Line 124  cr_usage( void ) Line 124  cr_usage( void )
   
 int  int
 parse_cr(  parse_cr(
     const char  *fname,          const char      *fname,
     int         lineno,          int             lineno,
     char        *line,          char            *line,
     char        **argv,          char            **argv,
         ContentRule **scr )          ContentRule     **scr )
 {  {
         LDAPContentRule *cr;          LDAPContentRule *cr;
         int             code;          int             code;
         const char      *err;          const char      *err;
   
         cr = ldap_str2contentrule(line, &code, &err, LDAP_SCHEMA_ALLOW_ALL );          cr = ldap_str2contentrule( line, &code, &err, LDAP_SCHEMA_ALLOW_ALL );
         if ( !cr ) {          if ( !cr ) {
                 fprintf( stderr, "%s: line %d: %s before %s\n",                  fprintf( stderr, "%s: line %d: %s before %s\n",
                          fname, lineno, ldap_scherr2str(code), err );                           fname, lineno, ldap_scherr2str(code), err );
Line 147  parse_cr( Line 147  parse_cr(
                         "%s: line %d: Content rule has no OID\n",                          "%s: line %d: Content rule has no OID\n",
                         fname, lineno );                          fname, lineno );
                 cr_usage();                  cr_usage();
                 return 1;                  code = 1;
                   goto done;
         }          }
   
         code = cr_add(cr,1,scr,&err);          code = cr_add( cr, 1, scr, &err );
         if ( code ) {          if ( code ) {
                 fprintf( stderr, "%s: line %d: %s: \"%s\"\n",                  fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                          fname, lineno, scherr2str(code), err);                           fname, lineno, scherr2str( code ), err );
                 return 1;                  code = 1;
                   goto done;
         }          }
   
         ldap_memfree(cr);  done:;
         return 0;          if ( code ) {
                   ldap_contentrule_free( cr );
   
           } else {
                   ldap_memfree( cr );
           }
   
           return code;
 }  }
   
 int  int
 parse_oc(  parse_oc(
     const char  *fname,          const char      *fname,
     int         lineno,          int             lineno,
     char        *line,          char            *line,
     char        **argv,          char            **argv,
         ObjectClass **soc )          ObjectClass     **soc )
 {  {
         LDAPObjectClass *oc;          LDAPObjectClass *oc;
         int             code;          int             code;
Line 176  parse_oc( Line 185  parse_oc(
         oc = ldap_str2objectclass(line, &code, &err, LDAP_SCHEMA_ALLOW_ALL );          oc = ldap_str2objectclass(line, &code, &err, LDAP_SCHEMA_ALLOW_ALL );
         if ( !oc ) {          if ( !oc ) {
                 fprintf( stderr, "%s: line %d: %s before %s\n",                  fprintf( stderr, "%s: line %d: %s before %s\n",
                          fname, lineno, ldap_scherr2str(code), err );                           fname, lineno, ldap_scherr2str( code ), err );
                 oc_usage();                  oc_usage();
                 return 1;                  return 1;
         }          }
Line 186  parse_oc( Line 195  parse_oc(
                         "%s: line %d: objectclass has no OID\n",                          "%s: line %d: objectclass has no OID\n",
                         fname, lineno );                          fname, lineno );
                 oc_usage();                  oc_usage();
                 return 1;                  code = 1;
                   goto done;
         }          }
   
         code = oc_add(oc,1,soc,&err);          code = oc_add( oc, 1, soc, &err );
         if ( code ) {          if ( code ) {
                 fprintf( stderr, "%s: line %d: %s: \"%s\"\n",                  fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                          fname, lineno, scherr2str(code), err);                           fname, lineno, scherr2str( code ), err );
                 return 1;                  code = 1;
                   goto done;
         }          }
   
         ldap_memfree(oc);  done:;
         return 0;          if ( code ) {
                   ldap_objectclass_free( oc );
   
           } else {
                   ldap_memfree( oc );
           }
   
           return code;
 }  }
   
 static void  static void
Line 245  at_usage( void ) Line 263  at_usage( void )
   
 int  int
 parse_at(  parse_at(
     const char  *fname,          const char      *fname,
     int         lineno,          int             lineno,
     char        *line,          char            *line,
     char        **argv,          char            **argv,
         AttributeType **sat )          AttributeType   **sat )
 {  {
         LDAPAttributeType *at;          LDAPAttributeType *at;
         int             code;          int             code;
Line 268  parse_at( Line 286  parse_at(
                         "%s: line %d: attributeType has no OID\n",                          "%s: line %d: attributeType has no OID\n",
                         fname, lineno );                          fname, lineno );
                 at_usage();                  at_usage();
                 return 1;                  code = 1;
                   goto done;
         }          }
   
         /* operational attributes should be defined internally */          /* operational attributes should be defined internally */
         if ( at->at_usage ) {          if ( at->at_usage ) {
                 fprintf( stderr, "%s: line %d: attribute type \"%s\" is operational\n",                  fprintf( stderr, "%s: line %d: attribute type \"%s\" is operational\n",
                          fname, lineno, at->at_oid );                           fname, lineno, at->at_oid );
                 return 1;                  code = 1;
                   goto done;
         }          }
   
         code = at_add(at,1,sat,&err);          code = at_add( at, 1, sat, &err);
         if ( code ) {          if ( code ) {
                 ldap_attributetype_free( at );  
                 fprintf( stderr, "%s: line %d: %s: \"%s\"\n",                  fprintf( stderr, "%s: line %d: %s: \"%s\"\n",
                          fname, lineno, scherr2str(code), err);                           fname, lineno, scherr2str(code), err);
                 return 1;                  code = 1;
                   goto done;
         }          }
         ldap_memfree(at);  
         return 0;  done:;
           if ( code ) {
                   ldap_attributetype_free( at );
   
           } else {
                   ldap_memfree( at );
           }
   
           return code;
 }  }

Removed from v.1.79  
changed lines
  Added in v.1.80


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org