]> git.sur5r.net Git - openldap/blobdiff - libraries/liblber/etest.c
ITS#7182 Enable operation and connection monitoring.
[openldap] / libraries / liblber / etest.c
index 0dcf7d71117c780ad42e990dcac3183cf2cf54fb..d5ad1d31ad6df9bf5c18f570eebfe854f496da72 100644 (file)
@@ -1,12 +1,31 @@
-/* test.c - lber encoding test program */
+/* etest.c - lber encoding test program */
 /* $OpenLDAP$ */
-/*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 1998-2012 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
  */
-/* Portions
- * Copyright (c) 1990 Regents of the University of Michigan.
+/* Portions Copyright (c) 1990 Regents of the University of Michigan.
  * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that this notice is preserved and that due credit is given
+ * to the University of Michigan at Ann Arbor. The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission. This software
+ * is provided ``as is'' without express or implied warranty.
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was originally developed by the University of Michigan
+ * (as part of U-MICH LDAP).
  */
 
 #include "portable.h"
 
 #include "lber.h"
 
-static void usage( char *name )
+static void usage( const char *name )
 {
        fprintf( stderr, "usage: %s fmtstring\n", name );
 }
 
-static char* getbuf() {
+static char* getbuf( void ) {
        char *p;
-       static char buf[128];
+       static char buf[1024];
 
-       if ( fgets( buf, sizeof(buf), stdin ) == NULL )
-               return NULL;
+       if ( fgets( buf, sizeof(buf), stdin ) == NULL ) return NULL;
 
-       if ( (p = strchr( buf, '\n' )) != NULL )
-               *p = '\0';
+       if ( (p = strchr( buf, '\n' )) != NULL ) *p = '\0';
 
        return buf;
 }
@@ -47,6 +64,7 @@ int
 main( int argc, char **argv )
 {
        char    *s;
+       int tag;
 
        int                     fd, rc;
        BerElement      *ber;
@@ -75,7 +93,9 @@ main( int argc, char **argv )
        fd = fileno(stdout);
 #endif
 
-       sb = ber_sockbuf_alloc_fd( fd );
+       sb = ber_sockbuf_alloc();
+       ber_sockbuf_add_io( sb, &ber_sockbuf_io_fd, LBER_SBIOD_LEVEL_PROVIDER,
+               (void *)&fd );
 
        if( sb == NULL ) {
                perror( "ber_sockbuf_alloc_fd" );
@@ -124,10 +144,14 @@ main( int argc, char **argv )
                        break;
 
                case 's':       /* string */
-               case 't':       /* tag for the next element */
                        buf = getbuf();
                        rc = ber_printf( ber, fmt, buf );
                        break;
+               case 't':       /* tag for the next element */
+                       buf = getbuf();
+                       tag = atoi(buf);
+                       rc = ber_printf( ber, fmt, tag );
+                       break;
 
                default:
                        fprintf( stderr, "encode: unknown fmt %c\n", *fmt );
@@ -142,13 +166,13 @@ main( int argc, char **argv )
        }
 
        fprintf(stderr, "encode: end\n" );
-       if( ber_printf( ber, /*{*/ "}" ) == -1 ) {
+       if( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
                perror( /*{*/ "ber_printf }" );
                return( EXIT_FAILURE );
        }
 
-       if ( ber_flush( sb, ber, 1 ) == -1 ) {
-               perror( "ber_flush" );
+       if ( ber_flush2( sb, ber, LBER_FLUSH_FREE_ALWAYS ) == -1 ) {
+               perror( "ber_flush2" );
                return( EXIT_FAILURE );
        }