| Index: openssl/ms/uplink-common.pl
|
| ===================================================================
|
| --- openssl/ms/uplink-common.pl (revision 0)
|
| +++ openssl/ms/uplink-common.pl (revision 0)
|
| @@ -0,0 +1,22 @@
|
| +#!/usr/bin/env perl
|
| +#
|
| +# pull APPLINK_MAX value from applink.c...
|
| +$applink_c=$0;
|
| +$applink_c=~s|[^/\\]+$||g;
|
| +$applink_c.="applink.c";
|
| +open(INPUT,$applink_c) || die "can't open $applink_c: $!";
|
| +@max=grep {/APPLINK_MAX\s+(\d+)/} <INPUT>;
|
| +close(INPUT);
|
| +($#max==0) or die "can't find APPLINK_MAX in $applink_c";
|
| +
|
| +$max[0]=~/APPLINK_MAX\s+(\d+)/;
|
| +$N=$1; # number of entries in OPENSSL_UplinkTable not including
|
| + # OPENSSL_UplinkTable[0], which contains this value...
|
| +
|
| +1;
|
| +
|
| +# Idea is to fill the OPENSSL_UplinkTable with pointers to stubs
|
| +# which invoke 'void OPENSSL_Uplink (ULONG_PTR *table,int index)';
|
| +# and then dereference themselves. Latter shall result in endless
|
| +# loop *unless* OPENSSL_Uplink does not replace 'table[index]' with
|
| +# something else, e.g. as 'table[index]=unimplemented;'...
|
|
|