From b8f6f37298bb8cf5c6d96ab190c8645bc6dd9702 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga <kurt@openldap.org> Date: Sat, 26 Nov 2005 17:19:40 +0000 Subject: [PATCH] partial sync --- clients/tools/ldapmodify.c | 86 +++++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/clients/tools/ldapmodify.c b/clients/tools/ldapmodify.c index d1941e3bb8..dd599288f9 100644 --- a/clients/tools/ldapmodify.c +++ b/clients/tools/ldapmodify.c @@ -475,7 +475,7 @@ process_ldif_rec( char *rbuf, int count ) { use_record = 1; } - } else if ( count == 1 && linenum == 1 && + } else if ( count == 1 && linenum == 1 && strcasecmp( type, T_VERSION_STR ) == 0 ) { if( val.bv_len == 0 || atoi(val.bv_val) != 1 ) { @@ -647,6 +647,12 @@ process_ldif_rec( char *rbuf, int count ) prog, linenum, dn ); rc = LDAP_PARAM_ERROR; } else { + if ( new_entry && strcasecmp( type, T_DN_STR ) == 0 ) { + fprintf( stderr, _("%s: attributeDescription \"%s\":" + " (possible missing newline" + " after line %d of entry \"%s\"?)\n"), + prog, type, linenum - 1, dn ); + } addmodifyop( &pmods, modop, type, &val ); } @@ -960,47 +966,51 @@ domodify( } if ( pmods == NULL ) { - fprintf( stderr, - _("%s: no attributes to change or add (entry=\"%s\")\n"), - prog, dn ); - return( LDAP_PARAM_ERROR ); - } + /* implement "touch" (empty sequence) + * modify operation (note that there + * is no symmetry with the UNIX command, + * since \"touch\" on a non-existent entry + * will fail)*/ + printf( "warning: no attributes to %sadd (entry=\"%s\")\n", + newentry ? "" : "change or ", dn ); - for ( i = 0; pmods[ i ] != NULL; ++i ) { - op = pmods[ i ]->mod_op & ~LDAP_MOD_BVALUES; - if( op == LDAP_MOD_ADD && ( pmods[i]->mod_bvalues == NULL )) { - fprintf( stderr, - _("%s: attribute \"%s\" has no values (entry=\"%s\")\n"), - prog, pmods[i]->mod_type, dn ); - return LDAP_PARAM_ERROR; - } - } - - if ( verbose ) { + } else { for ( i = 0; pmods[ i ] != NULL; ++i ) { op = pmods[ i ]->mod_op & ~LDAP_MOD_BVALUES; - printf( "%s %s:\n", - op == LDAP_MOD_REPLACE ? _("replace") : - op == LDAP_MOD_ADD ? _("add") : - op == LDAP_MOD_INCREMENT ? _("increment") : - op == LDAP_MOD_DELETE ? _("delete") : - _("unknown"), - pmods[ i ]->mod_type ); - - if ( pmods[ i ]->mod_bvalues != NULL ) { - for ( j = 0; pmods[ i ]->mod_bvalues[ j ] != NULL; ++j ) { - bvp = pmods[ i ]->mod_bvalues[ j ]; - notascii = 0; - for ( k = 0; (unsigned long) k < bvp->bv_len; ++k ) { - if ( !isascii( bvp->bv_val[ k ] )) { - notascii = 1; - break; + if( op == LDAP_MOD_ADD && ( pmods[i]->mod_bvalues == NULL )) { + fprintf( stderr, + _("%s: attribute \"%s\" has no values (entry=\"%s\")\n"), + prog, pmods[i]->mod_type, dn ); + return LDAP_PARAM_ERROR; + } + } + + if ( verbose ) { + for ( i = 0; pmods[ i ] != NULL; ++i ) { + op = pmods[ i ]->mod_op & ~LDAP_MOD_BVALUES; + printf( "%s %s:\n", + op == LDAP_MOD_REPLACE ? _("replace") : + op == LDAP_MOD_ADD ? _("add") : + op == LDAP_MOD_INCREMENT ? _("increment") : + op == LDAP_MOD_DELETE ? _("delete") : + _("unknown"), + pmods[ i ]->mod_type ); + + if ( pmods[ i ]->mod_bvalues != NULL ) { + for ( j = 0; pmods[ i ]->mod_bvalues[ j ] != NULL; ++j ) { + bvp = pmods[ i ]->mod_bvalues[ j ]; + notascii = 0; + for ( k = 0; (unsigned long) k < bvp->bv_len; ++k ) { + if ( !isascii( bvp->bv_val[ k ] )) { + notascii = 1; + break; + } + } + if ( notascii ) { + printf( _("\tNOT ASCII (%ld bytes)\n"), bvp->bv_len ); + } else { + printf( "\t%s\n", bvp->bv_val ); } - } - if ( notascii ) { - printf( _("\tNOT ASCII (%ld bytes)\n"), bvp->bv_len ); - } else { - printf( "\t%s\n", bvp->bv_val ); } } } -- GitLab