diff options
author | Dr. Stephen Henson <steve@openssl.org> | 1999-02-11 01:39:30 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 1999-02-11 01:39:30 +0000 |
commit | 55a9cc6e474284d691e79820eaeb85f84892b2ae (patch) | |
tree | cd95d8685fa4fd19c8b96c7b8f26e92305f7165b /util | |
parent | 3773d138cefa8958a679094281d6b23af6eaf2b9 (diff) |
Make the 'crypto' and 'ssl' options in the perl script mkdef.pl really work,
also add an 'update' option to automatically append any new functions to the
ssleay.num and libeay.num files.
Diffstat (limited to 'util')
-rwxr-xr-x | util/libeay.num | 22 | ||||
-rwxr-xr-x | util/mkdef.pl | 63 |
2 files changed, 79 insertions, 6 deletions
diff --git a/util/libeay.num b/util/libeay.num index e8b636cf96..271a5c9c70 100755 --- a/util/libeay.num +++ b/util/libeay.num @@ -1174,3 +1174,25 @@ i2d_BASIC_CONSTRAINTS 1199 i2d_NETSCAPE_CERT_SEQUENCE 1200 i2d_ext_ku 1201 EVP_MD_CTX_copy 1202 +i2d_ASN1_ENUMERATED 1203 +d2i_ASN1_ENUMERATED 1204 +ASN1_ENUMERATED_set 1205 +ASN1_ENUMERATED_get 1206 +BN_to_ASN1_ENUMERATED 1207 +ASN1_ENUMERATED_to_BN 1208 +i2a_ASN1_ENUMERATED 1209 +a2i_ASN1_ENUMERATED 1210 +i2d_GENERAL_NAME 1211 +d2i_GENERAL_NAME 1212 +GENERAL_NAME_new 1213 +GENERAL_NAME_free 1214 +GENERAL_NAMES_new 1215 +GENERAL_NAMES_free 1216 +d2i_GENERAL_NAMES 1217 +i2d_GENERAL_NAMES 1218 +i2v_GENERAL_NAMES 1219 +i2s_ASN1_OCTET_STRING 1220 +s2i_ASN1_OCTET_STRING 1221 +X509V3_EXT_check_conf 1222 +hex_to_string 1223 +string_to_hex 1224 diff --git a/util/mkdef.pl b/util/mkdef.pl index 5b2f355bb4..e1f2ca99a1 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -15,7 +15,10 @@ foreach (@ARGV) $NT=1 if $_ eq "32"; $NT=0 if $_ eq "16"; $do_ssl=1 if $_ eq "ssleay"; + $do_ssl=1 if $_ eq "ssl"; $do_crypto=1 if $_ eq "libeay"; + $do_crypto=1 if $_ eq "crypto"; + $do_update=1 if $_ eq "update"; } if (!$do_ssl && !$do_crypto) @@ -25,7 +28,9 @@ if (!$do_ssl && !$do_crypto) } %ssl_list=&load_numbers($ssl_num); +$max_ssl = $max_num; %crypto_list=&load_numbers($crypto_num); +$max_crypto = $max_num; $ssl="ssl/ssl.h"; @@ -74,11 +79,33 @@ $crypto.=" crypto/tmdiff.h"; $match{'NOPROTO'}=1; $match2{'PERL5'}=1; -&print_def_file(*STDOUT,"SSLEAY",*ssl_list,&do_defs("SSLEAY",$ssl)) - if $do_ssl == 1; +@ssl_func = &do_defs("SSLEAY", $ssl); +@crypto_func = &do_defs("LIBEAY", $crypto); + +if ($do_update) { + +if ($do_ssl == 1) { + open(OUT, ">>$ssl_num"); + &update_numbers(*OUT,"SSLEAY",*ssl_list,$max_ssl, @ssl_func); + close OUT; +} + +if($do_crypto == 1) { + open(OUT, ">>$crypto_num"); + &update_numbers(*OUT,"LIBEAY",*crypto_list,$max_crypto, @crypto_func); + close OUT; +} + +} else { + + &print_def_file(*STDOUT,"SSLEAY",*ssl_list,@ssl_func) + if $do_ssl == 1; + + &print_def_file(*STDOUT,"LIBEAY",*crypto_list,@crypto_func) + if $do_crypto == 1; + +} -&print_def_file(*STDOUT,"LIBEAY",*crypto_list,&do_defs("LIBEAY",$crypto)) - if $do_crypto == 1; sub do_defs { @@ -98,7 +125,7 @@ sub do_defs while (($i=index($a,"/*")) >= 0) { $j=index($a,"*/"); - break unless ($j >= 0); + last unless ($j >= 0); $a=substr($a,0,$i).substr($a,$j+2); # print "$i $j\n"; } @@ -265,7 +292,8 @@ EOF { if (!defined($nums{$func})) { - printf STDERR "$func does not have a number assigned\n"; + printf STDERR "$func does not have a number assigned\n" + if(!$do_update); } else { @@ -281,6 +309,8 @@ sub load_numbers local($name)=@_; local($j,@a,%ret); + $max_num = 0; + open(IN,"<$name") || die "unable to open $name:$!\n"; while (<IN>) { @@ -289,7 +319,28 @@ sub load_numbers next if /^\s*$/; @a=split; $ret{$a[0]}=$a[1]; + $max_num = $a[1] if $a[1] > $max_num; } close(IN); return(%ret); } + +sub update_numbers + { + local(*OUT,$name,*nums,$start_num, @functions)=@_; + my $new_funcs = 0; + print STDERR "Updating $name\n"; + foreach $func (@functions) + { + if (!defined($nums{$func})) + { + $new_funcs++; + printf OUT "%s%-40s%d\n","",$func, ++$start_num; + } + } + if($new_funcs) { + print STDERR "$new_funcs New Functions added\n"; + } else { + print STDERR "No New Functions Added\n"; + } + } |