]> git.sur5r.net Git - openldap/blob - libraries/liblber/idtest.c
8294af711d3e17f48aff23db1e14f1e7f9a0e326
[openldap] / libraries / liblber / idtest.c
1 /* idtest.c - ber decoding test program using isode libraries */
2 /* $OpenLDAP$ */
3 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
4  *
5  * Copyright 1998-2017 The OpenLDAP Foundation.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted only as authorized by the OpenLDAP
10  * Public License.
11  *
12  * A copy of this license is available in the file LICENSE in the
13  * top-level directory of the distribution or, alternatively, at
14  * <http://www.OpenLDAP.org/license.html>.
15  */
16 /* Portions Copyright (c) 1990 Regents of the University of Michigan.
17  * All rights reserved.
18  *
19  * Redistribution and use in source and binary forms are permitted
20  * provided that this notice is preserved and that due credit is given
21  * to the University of Michigan at Ann Arbor. The name of the University
22  * may not be used to endorse or promote products derived from this
23  * software without specific prior written permission. This software
24  * is provided ``as is'' without express or implied warranty.
25  */
26 /* ACKNOWLEDGEMENTS:
27  * This work was originally developed by the University of Michigan
28  * (as part of U-MICH LDAP).
29  */
30
31 #include "portable.h"
32
33 #include <stdio.h>
34
35 #include <ac/stdlib.h>
36
37 #ifdef HAVE_PSAP_H
38 #include <psap.h>
39 #include <quipu/attr.h>
40 #endif
41
42 int
43 main( int argc, char **argv )
44 {
45 #ifdef HAVE_PSAP_H
46         PE      pe;
47         PS      psin, psout, pserr;
48
49         /* read the pe from standard in */
50         if ( (psin = ps_alloc( std_open )) == NULLPS ) {
51                 perror( "ps_alloc" );
52                 exit( EXIT_FAILURE );
53         }
54         if ( std_setup( psin, stdin ) == NOTOK ) {
55                 perror( "std_setup" );
56                 exit( EXIT_FAILURE );
57         }
58         /* write the pe to standard out */
59         if ( (psout = ps_alloc( std_open )) == NULLPS ) {
60                 perror( "ps_alloc" );
61                 exit( EXIT_FAILURE );
62         }
63         if ( std_setup( psout, stdout ) == NOTOK ) {
64                 perror( "std_setup" );
65                 exit( EXIT_FAILURE );
66         }
67         /* pretty print it to standard error */
68         if ( (pserr = ps_alloc( std_open )) == NULLPS ) {
69                 perror( "ps_alloc" );
70                 exit( EXIT_FAILURE );
71         }
72         if ( std_setup( pserr, stderr ) == NOTOK ) {
73                 perror( "std_setup" );
74                 exit( EXIT_FAILURE );
75         }
76
77         while ( (pe = ps2pe( psin )) != NULLPE ) {
78                 pe2pl( pserr, pe );
79                 pe2ps( psout, pe );
80         }
81
82         exit( EXIT_SUCCESS );
83 #else
84         fprintf(stderr, "requires ISODE X.500 distribution.\n");
85         return( EXIT_FAILURE );
86 #endif
87 }