]> git.sur5r.net Git - openldap/blobdiff - clients/tools/ldapmodify.c
Fix sasl passwd handling (needs to be copied to other tools)
[openldap] / clients / tools / ldapmodify.c
index eed0b3f1810c9757663f585fa4bf56d7b7bbec32..86343417ce105bbf48d86cd471c1256dc143a872 100644 (file)
@@ -1,6 +1,6 @@
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /* ldapmodify.c - generic program to modify or add entries using LDAP */
@@ -300,23 +300,34 @@ main( int argc, char **argv )
 
        if ( ( authmethod == LDAP_AUTH_KRBV4 ) || ( authmethod ==
                        LDAP_AUTH_KRBV41 ) ) {
-               if( version != LDAP_VERSION2 ) {
+               if( version > LDAP_VERSION2 ) {
                        fprintf( stderr, "Kerberos requires LDAPv2\n" );
                        return( EXIT_FAILURE );
                }
+               version = LDAP_VERSION2;
        }
        else if ( authmethod == LDAP_AUTH_SASL ) {
-               if( version != LDAP_VERSION3 ) {
+               if( version != -1 && version != LDAP_VERSION3 ) {
                        fprintf( stderr, "SASL requires LDAPv3\n" );
                        return( EXIT_FAILURE );
                }
+               version = LDAP_VERSION3;
        }
 
        if( manageDSAit ) {
-               if( version != LDAP_VERSION3 ) {
+               if( version != -1 && version != LDAP_VERSION3 ) {
                        fprintf(stderr, "manage DSA control requires LDAPv3\n");
                        return EXIT_FAILURE;
                }
+               version = LDAP_VERSION3;
+       }
+
+       if( use_tls ) {
+               if( version != -1 && version != LDAP_VERSION3 ) {
+                       fprintf(stderr, "Start TLS requires LDAPv3\n");
+                       return EXIT_FAILURE;
+               }
+               version = LDAP_VERSION3;
        }
 
     if ( infile != NULL ) {