]> git.sur5r.net Git - openldap/commitdiff
more about ITS#6645
authorPierangelo Masarati <ando@openldap.org>
Sat, 1 Jan 2011 20:50:00 +0000 (20:50 +0000)
committerPierangelo Masarati <ando@openldap.org>
Sat, 1 Jan 2011 20:50:00 +0000 (20:50 +0000)
clients/tools/common.c
clients/tools/common.h
doc/devel/args
libraries/liblutil/ldif.c

index 0723514389956eca6f04a1dd81853359cf38bc62..31ea8b972f55a2ec000267f567513162a23d7653 100644 (file)
@@ -66,6 +66,7 @@ int           nocanon = 0;
 int            referrals = 0;
 int            verbose = 0;
 int            ldif = 0;
+ber_len_t      ldif_wrap = LDIF_LINE_WIDTH;
 char           *prog = NULL;
 
 /* connection */
@@ -312,6 +313,7 @@ N_("  -N         do not use reverse DNS to canonicalize SASL host name\n"),
 N_("  -O props   SASL security properties\n"),
 N_("  -o <opt>[=<optparam] general options\n"),
 N_("             nettimeout=<timeout> (in seconds, or \"none\" or \"max\")\n"),
+N_("             ldif-wrap=<width> (in columns, or \"no\" for no wrapping)\n"),
 N_("  -p port    port on LDAP server\n"),
 N_("  -Q         use SASL Quiet mode\n"),
 N_("  -R realm   SASL realm\n"),
@@ -775,11 +777,30 @@ tool_args( int argc, char **argv )
                                                prog, (long)nettimeout.tv_sec );
                                        exit( EXIT_FAILURE );
                                }
+
+                       } else if ( strcasecmp( control, "ldif-wrap" ) == 0 ) {
+                               if ( cvalue == 0 ) {
+                                       ldif_wrap = LDIF_LINE_WIDTH;
+
+                               } else if ( strcasecmp( cvalue, "no" ) == 0 ) {
+                                       ldif_wrap = LDIF_LINE_WIDTH_MAX;
+
+                               } else {
+                                       unsigned int u;
+                                       if ( lutil_atou( &u, cvalue ) ) {
+                                               fprintf( stderr,
+                                                       _("Unable to parse ldif-wrap=\"%s\"\n"), cvalue );
+                                               exit( EXIT_FAILURE );
+                                       }
+                                       ldif_wrap = (ber_len_t)u;
+                               }
+
                        } else {
                                fprintf( stderr, "Invalid general option name: %s\n",
                                        control );
                                usage();
                        }
+                       ber_memfree(control);
                        break;
                case 'O':
 #ifdef HAVE_CYRUS_SASL
@@ -2273,7 +2294,7 @@ tool_write_ldif( int type, char *name, char *value, ber_len_t vallen )
 {
        char    *ldif;
 
-       if (( ldif = ldif_put( type, name, value, vallen )) == NULL ) {
+       if (( ldif = ldif_put_wrap( type, name, value, vallen, ldif_wrap )) == NULL ) {
                return( -1 );
        }
 
index a668004adc032367f3f4ffbe79e3fad14d2136aa..a0267219c824cd98c009e093255a6241e57e5f9b 100644 (file)
@@ -56,6 +56,7 @@ extern int            dont;
 extern int             referrals;
 extern int             verbose;
 extern int             ldif;
+extern ber_len_t       ldif_wrap;
 extern char            *prog;
 
 /* connection */
index 271eed951c6f8d0ee4c5f7688ebf7b69b436e0f5..7805eff1c9444d6fb5d85cd2458a4eb96cb00760 100644 (file)
@@ -27,7 +27,7 @@ ldapwhoami       * DE**HI**  NO QR  UVWXYZ   def*h*** *nop*    vwxy
        -h host
        -n no-op
        -N no (SASLprep) normalization of simple bind password
-       -o general connection options (currently nettimeout only)
+       -o general options (currently nettimeout and ldif-wrap only)
        -p port
        -v verbose
        -V version
index c0801991514c79fe1b187416ae18506147a584bf..7f009245fc4ea50f83e230c6ab3a26fdd9c4717d 100644 (file)
@@ -742,7 +742,7 @@ ldif_put_wrap(
     }
 
     p = buf;
-    ldif_sput( &p, type, name, val, vlen );
+    ldif_sput_wrap( &p, type, name, val, vlen, wrap );
     *p = '\0';
 
     return( buf );