diff options
author | Ulf Möller <ulf@openssl.org> | 1999-04-24 17:49:02 +0000 |
---|---|---|
committer | Ulf Möller <ulf@openssl.org> | 1999-04-24 17:49:02 +0000 |
commit | 574e991aa5a95eabaf2efcb4af8981211c2f7fb2 (patch) | |
tree | 8c40e854bd9dfc6ea666543f8e3745a2cce657cc /crypto/err | |
parent | 4fd53220b66e5c6476e9d7dd3b43977d4bb02e37 (diff) |
Replaced by mkerr.pl
Diffstat (limited to 'crypto/err')
-rw-r--r-- | crypto/err/err_code.pl | 180 | ||||
-rw-r--r-- | crypto/err/err_genc.pl | 218 |
2 files changed, 0 insertions, 398 deletions
diff --git a/crypto/err/err_code.pl b/crypto/err/err_code.pl deleted file mode 100644 index 8b510c96fc..0000000000 --- a/crypto/err/err_code.pl +++ /dev/null @@ -1,180 +0,0 @@ -#!/usr/local/bin/perl -w - -# Modified by Steve Henson. It should now read in the .err -# file and only add new error codes, retaining the old -# numbers. - -# Before it re-sorted new codes and re-ordered the whole thing. -# This is the motivation for the change: the re numbering caused large -# patch files even if only one error or reason code was added. -# To force regeneration of all error codes (the old behaviour) use the -# -regen flag. - -$regen = 0; - -while (@ARGV) - { - $in=shift(@ARGV); - if ($in =~ /^-conf$/) - { - $in=shift(@ARGV); - open(IN,"<$in") || die "unable to open '$in'\n"; - while (<IN>) - { - s/#.*$//; - s/\s+$//; - next if (/^$/); - if (/^L\s+(\S+)\s+(\S+)$/) - { $errfile{$1}=$2; } - elsif (/^F\s+(\S+)$/) - { $function{$1}=1; } - elsif (/^R\s+(\S+)\s+(\S+)$/) - { $r_value{$1}=$2; } - else { die "bad input line: $in:$.\n"; } - } - close(IN); - next; - } - elsif ($in =~ /^-regen/) - { - $regen = 1; - next; - } - - open(IN,"<$in") || die "unable to open '$in'\n"; - $last=""; - while (<IN>) - { - if (/err\(([A-Z0-9]+_F_[0-9A-Z_]+)\s*,\s*([0-9A-Z]+_R_[0-9A-Z_]+)\s*\)/) - { -# Not sure what this was supposed to be for: it's broken anyway [steve] -# if ($1 != $last) -# { -# if ($function{$1} == 0) -# { -# printf STDERR "$. $1 is bad\n"; -# } -# } - $function{$1}++; - $last=$1; - $reason{$2}++; - } - } - close(IN); - } - -foreach (keys %function,keys %reason) - { - /^([A-Z0-9]+)_/; - $prefix{$1}++; - } - -@F=sort keys %function; -@R=sort keys %reason; -foreach $j (sort keys %prefix) - { - next if !defined $errfile{$j}; - next if $errfile{$j} eq "NONE"; - printf STDERR "doing %-6s - ",$j; - @f=grep(/^${j}_/,@F); - @r=grep(/^${j}_/,@R); - if (defined($errfile{$j})) - { - read_errcodes($errfile{$j}); - # Check to see if any new codes: if not ignore. - $new_codes = 0; - foreach (@f) { - if(!exists $func_codes{$_}) { - $new_codes = 1; - last; - } - } - if(!$new_codes) { - foreach (@r) { - if(!exists $reason_codes{$_}) { - $new_codes = 1; - last; - } - } - } - if(!$new_codes) { - print STDERR "No New Codes\n"; - next; - } - open(OUT,">$errfile{$j}") || - die "unable to open '$errfile{$j}':$!\n"; - $close_file=1; - } - else - { - $min_func = 100; - $min_reason = 100; - *OUT=*STDOUT; - $close_file=0; - } - $num=$min_func; - print OUT "/* Error codes for the $j functions. */\n\n"; - print OUT "/* Function codes. */\n"; - $f_count=0; - foreach $i (@f) - { - $z=6-int(length($i)/8); - if(exists $func_codes{$i}) { - printf OUT "#define $i%s $func_codes{$i}\n","\t" x $z; - } else { - printf OUT "#define $i%s $num\n","\t" x $z; - $num++; - } - $f_count++; - } - $num=$min_reason; - print OUT "\n/* Reason codes. */\n"; - $r_count=0; - foreach $i (@r) - { - $z=6-int(length($i)/8); - if (exists $reason_codes{$i}) { - printf OUT "#define $i%s $reason_codes{$i}\n","\t" x $z; - } elsif (exists $r_value{$i}) { - printf OUT "#define $i%s $r_value{$i}\n","\t" x $z; - } else { - printf OUT "#define $i%s $num\n","\t" x $z; - $num++; - } - $r_count++; - } - close(OUT) if $close_file; - - printf STDERR "%3d functions, %3d reasons\n",$f_count,$r_count; - } - -# Read in the error codes and populate %function and %reason with the -# old codes. Also define $min_func and $min_reason with the smallest -# unused function and reason codes. Care is needed because the -# config file can define larger reason codes and these should be -# ignored. - -sub read_errcodes { -$file = $_[0]; -$min_func = 100; -$min_reason = 100; -undef %func_codes; -undef %reason_codes; -return if ($regen); -if (open IN, $file) { - while(<IN>) { - if(/^#define\s*(\S*)\s*(\S*)/) { - if (exists $function{$1} ) { - if($2 >= $min_func) {$min_func = $2 + 1;} - $func_codes{$1} = $2; - } elsif ((defined %reason) && exists $reason{$1}) { - $reason_codes{$1} = $2; - if( !(exists $r_value{$1}) && - ($2 >= $min_reason)) - {$min_reason = $2 + 1;} - } - } - } - close IN; -} -} diff --git a/crypto/err/err_genc.pl b/crypto/err/err_genc.pl deleted file mode 100644 index af4d5155e7..0000000000 --- a/crypto/err/err_genc.pl +++ /dev/null @@ -1,218 +0,0 @@ -#!/usr/local/bin/perl - -if ($ARGV[0] eq "-s") { $static=1; shift @ARGV; } - -($#ARGV == 1) || die "usage: $0 [-s] <header file> <output C file>\n"; -open(IN,"<$ARGV[0]") || die "unable to open $ARGV[0]:$!\n"; -open(STDOUT,">$ARGV[1]") || die "unable to open $ARGV[1]:$!\n"; - -$Func=0; -$Reas=0; -$fuction{'FOPEN'}='fopen'; -while (<IN>) - { - if (/(\S+)\s*\(\);/) - { - $t=$1; - $t =~ s/\*//; - ($upper=$t) =~ tr/a-z/A-Z/; - $fuction{$upper}=$t; - } - next unless (/^#define\s+(\S+)\s/); - - $o=$1; - if ($o =~ /^([^_]+)_F_(.*)/) - { - $type=$1; - $Func++; - $n=$2; - $n=$fuction{$n} if (defined($fuction{$n})); - $out{$1."_str_functs"}.= - sprintf("{ERR_PACK(0,%s,0),\t\"$n\"},\n",$o); - } - elsif ($o =~ /^([^_]+)_R_(.*)/) - { - $type=$1; - $Reas++; - $r=$2; - $r =~ tr/A-Z_/a-z /; - $pkg{$type."_str_reasons"}=$type; - $out{$type."_str_reasons"}.=sprintf("{%-40s,\"$r\"},\n",$o); - } - elsif ($ARGV[0] =~ /rsaref/ && $o =~ /^RE_(.*)/) - { - $type="RSAREF"; - $Reas++; - $r=$1; - $r =~ tr/A-Z_/a-z /; - $pkg{$type."_str_reasons"}=$type; - $out{$type."_str_reasons"}.=sprintf("{%-40s,\"$r\"},\n",$o); - } - } -close(IN); - -&header($type,$ARGV[0]); - -foreach (sort keys %out) - { - print "static ERR_STRING_DATA ${_}\[\]=\n\t{\n"; - print $out{$_}; - print "{0,NULL},\n"; - print "\t};\n\n"; - } -print "#endif\n"; - -if ($static) - { $lib="ERR_LIB_$type"; } -else - { - print <<"EOF"; - -#ifdef ${type}_LIB_NAME -static ERR_STRING_DATA ${type}_lib_name[]= - { -{0 ,${type}_LIB_NAME}, -{0,NULL} - }; -#endif - -EOF - $lib="${type}_lib_error_code"; - - - - } - -$str=""; -$str.="#ifndef NO_ERR\n"; -$str.="\t\tERR_load_strings($lib,${type}_str_functs);\n" if $Func; -$str.="\t\tERR_load_strings($lib,${type}_str_reasons);\n" if $Reas; -$str.="#endif\n"; - -if (!$static) - { -print <<"EOF"; - -int ${type}_lib_error_code=0; - -void ERR_load_${type}_strings() - { - static int init=1; - - if (${type}_lib_error_code == 0) - ${type}_lib_error_code=ERR_get_next_error_library(); - - if (init) - { - init=0; -$str -#ifdef ${type}_LIB_NAME - ${type}_lib_name->error = ERR_PACK(${type}_lib_error_code,0,0); - ERR_load_strings(0,${type}_lib_name); -#endif; - } - } - -void ERR_${type}_error(function,reason,file,line) -int function; -int reason; -char *file; -int line; - { - if (${type}_lib_error_code == 0) - ${type}_lib_error_code=ERR_get_next_error_library(); - ERR_PUT_error(${type}_lib_error_code,function,reason,file,line); - } -EOF - } -else # $static - { - print <<"EOF"; - -void ERR_load_${type}_strings() - { - static int init=1; - - if (init) - { - init=0; -$str - } - } -EOF - } - -sub header - { - ($type,$header)=@_; - - ($lc=$type) =~ tr/A-Z/a-z/; - $header =~ s/^.*\///; - - print "/* lib/$lc/${lc}\_err.c */\n"; - print <<'EOF'; -/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) - * All rights reserved. - * - * This package is an SSL implementation written - * by Eric Young (eay@cryptsoft.com). - * The implementation was written so as to conform with Netscapes SSL. - * - * This library is free for commercial and non-commercial use as long as - * the following conditions are aheared to. The following conditions - * apply to all code found in this distribution, be it the RC4, RSA, - * lhash, DES, etc., code; not just the SSL code. The SSL documentation - * included with this distribution is covered by the same copyright terms - * except that the holder is Tim Hudson (tjh@cryptsoft.com). - * - * Copyright remains Eric Young's, and as such any Copyright notices in - * the code are not to be removed. - * If this package is used in a product, Eric Young should be given attribution - * as the author of the parts of the library 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 cryptographic software written by - * Eric Young (eay@cryptsoft.com)" - * The word 'cryptographic' can be left out if the rouines from the library - * being used are not cryptographic related :-). - * 4. If you include any Windows specific code (or a derivative thereof) from - * the apps directory (application code) you must include an acknowledgement: - * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" - * - * 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.] - */ -EOF - - print "#include <stdio.h>\n"; - print "#include <openssl/err.h>\n"; - print "#include <openssl/$header>\n"; - print "\n/* BEGIN ERROR CODES */\n"; - print "#ifndef NO_ERR\n"; - } - |