/* ssl/ssl_trc.h */ /* Copyright (C) 1995-1996 Eric Young (eay@mincom.oz.au) * All rights reserved. * * This file is part of an SSL implementation written * by Eric Young (eay@mincom.oz.au). * The implementation was written so as to conform with Netscapes SSL * specification. This library and applications are * FREE FOR COMMERCIAL AND NON-COMMERCIAL USE * as long as the following conditions are aheared to. * * Copyright remains Eric Young's, and as such any Copyright notices in * the code are not to be removed. If this code is used in a product, * Eric Young should be given attribution as the author of the parts used. * This can be in the form of a textual message at program startup or * in documentation (online or textual) provided with the package. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by Eric Young (eay@mincom.oz.au) * * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * The licence and distribution terms for any publically available version or * derivative of this code cannot be changed. i.e. this code cannot simply be * copied and put under another distribution licence * [including the GNU Public Licence.] */ /* ssl_trc.h - trace routines */ #ifndef HEADER_SSL_TRACE_H #define HEADER_SSL_TRACE_H #ifndef NOPROTO #define VAR_ANSI /* select ANSI version by default */ #endif #ifdef VAR_ANSI /* ANSI version of a "portable" macro set for variable length args */ #ifndef __STDARG_H__ /**/ #include #endif /**/ #define VAR_PLIST(arg1type,arg1) arg1type arg1, ... #define VAR_PLIST2(arg1type,arg1,arg2type,arg2) arg1type arg1,arg2type arg2,... #define VAR_ALIST #define VAR_BDEFN(args,arg1type,arg1) va_list args #define VAR_BDEFN2(args,arg1type,arg1,arg2type,arg2) va_list args #define VAR_INIT(args,arg1type,arg1) va_start(args,arg1); #define VAR_INIT2(args,arg1type,arg1,arg2type,arg2) va_start(args,arg2); #define VAR_ARG(args,type,arg) arg=va_arg(args,type) #define VAR_END(args) va_end(args); #else /* K&R version of a "portable" macro set for variable length args */ #ifndef __VARARGS_H__ #include #endif #define VAR_PLIST(arg1type,arg1) va_alist #define VAR_PLIST2(arg1type,arg1,arg2type,arg2) va_alist #define VAR_ALIST va_dcl #define VAR_BDEFN(args,arg1type,arg1) va_list args; arg1type arg1 #define VAR_BDEFN2(args,arg1type,arg1,arg2type,arg2) va_list args; \ arg1type arg1; arg2type arg2 #define VAR_INIT(args,arg1type,arg1) va_start(args); \ arg1=va_arg(args,arg1type); #define VAR_INIT2(args,arg1type,arg1,arg2type,arg2) va_start(args); \ arg1=va_arg(args,arg1type); arg2=va_arg(args,arg2type); #define VAR_ARG(args,type,arg) arg=va_arg(args,type) #define VAR_END(args) va_end(args); #endif #ifndef NOPROTO void SSL_TRACE( VAR_PLIST( FILE *, fp ) ); int SSL_fprintf( VAR_PLIST( SSL *, ssl_con ) ); int ssl_ddt_dump(char *s, int len); int ssl_ddt_dump_fd(int fd,char *s, int len); #else void SSL_TRACE(); int SSL_fprintf(); int ssl_ddt_dump(); int ssl_ddt_dump_fd(); #endif #ifdef undef extern char *ssl_trace_prog; extern int ssl_trace_pid; extern int ssl_trace_count; extern int ssl_trace_enabled; extern int ssl_trace_autoflush; extern int ssl_trace_no_header; #endif #endif /* HEADER_SSL_TRACE_H */ .