aboutsummaryrefslogtreecommitdiffstats
path: root/util
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>1999-02-11 01:39:30 +0000
committerDr. Stephen Henson <steve@openssl.org>1999-02-11 01:39:30 +0000
commit55a9cc6e474284d691e79820eaeb85f84892b2ae (patch)
treecd95d8685fa4fd19c8b96c7b8f26e92305f7165b /util
parent3773d138cefa8958a679094281d6b23af6eaf2b9 (diff)
downloadopenssl-55a9cc6e474284d691e79820eaeb85f84892b2ae.tar.gz
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-xutil/libeay.num22
-rwxr-xr-xutil/mkdef.pl63
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";
+ }
+ }