/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2009 The OpenLDAP Foundation.
+ * Copyright 1999-2011 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
ber_str2bv( argv[ 1 ], 0, 1, &bi->sql_aliasing_quote );
+ } else if ( !strcasecmp( argv[ 0 ], "autocommit" ) ) {
+ if ( argc != 2 ) {
+ Debug( LDAP_DEBUG_TRACE,
+ "<==backsql_db_config (%s line %d): "
+ "missing arg "
+ "in \"autocommit {NO|yes}\" directive\n",
+ fname, lineno, 0 );
+ return 1;
+ }
+
+ if ( !strcasecmp( argv[ 1 ], "yes" ) ||
+ !strcasecmp( argv[ 1 ], "TRUE" ) ||
+ !strcasecmp( argv[ 1 ], "on" ) )
+ {
+ bi->sql_flags |= BSQLF_AUTOCOMMIT_ON;
+
+ } else if ( !strcasecmp( argv[ 1 ], "no" ) ||
+ !strcasecmp( argv[ 1 ], "FALSE" ) ||
+ !strcasecmp( argv[ 1 ], "off" ) )
+ {
+ bi->sql_flags &= ~BSQLF_AUTOCOMMIT_ON;
+
+ } else {
+ Debug( LDAP_DEBUG_TRACE,
+ "<==backsql_db_config (%s line %d): "
+ "invalid arg "
+ "in \"autocommit {NO|yes}\" directive\n",
+ fname, lineno, 0 );
+ return 1;
+ }
+
} else {
return SLAP_CONF_UNKNOWN;
}
{
backsql_info *bi = (backsql_info *)be->be_private;
LDIFFP *fp;
- int rc = 0, lineno = 0, lmax = 0;
+ int rc = 0, lineno = 0, lmax = 0, ldifrc;
char *buf = NULL;
assert( fname != NULL );
bi->sql_baseObject->e_nname = be->be_nsuffix[0];
bi->sql_baseObject->e_attrs = NULL;
- while ( ldif_read_record( fp, &lineno, &buf, &lmax ) ) {
+ while (( ldifrc = ldif_read_record( fp, &lineno, &buf, &lmax )) > 0 ) {
Entry *e = str2entry( buf );
Attribute *a;
"dn=\"%s\" (line=%d)\n",
e->e_name.bv_val, lineno );
entry_free( e );
- rc = EXIT_FAILURE;
+ rc = LDAP_OTHER;
break;
}
}
}
+ if ( ldifrc < 0 )
+ rc = LDAP_OTHER;
+
if ( rc ) {
entry_free( bi->sql_baseObject );
bi->sql_baseObject = NULL;