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-2011 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 42int 43main( 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} 88