require '_h2ph_pre.ph';

no warnings qw(redefine misc);

unless(defined(&OPENSSL_BUFFER_H)) {
    eval 'sub OPENSSL_BUFFER_H () {1;}' unless defined(&OPENSSL_BUFFER_H);
    require 'openssl/macros.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub HEADER_BUFFER_H () {1;}' unless defined(&HEADER_BUFFER_H);
    }
    require 'openssl/types.ph';
    unless(defined(&OPENSSL_CRYPTO_H)) {
	require 'openssl/crypto.ph';
    }
    require 'openssl/buffererr.ph';
    if(defined(&__cplusplus)) {
    }
    require 'stddef.ph';
    require 'sys/types.ph';
    unless(defined(&OPENSSL_NO_DEPRECATED_3_0)) {
	eval 'sub BUF_strdup {
	    my($s) = @_;
    	    eval q( &OPENSSL_strdup($s));
	}' unless defined(&BUF_strdup);
	eval 'sub BUF_strndup {
	    my($s, $size) = @_;
    	    eval q( &OPENSSL_strndup($s, $size));
	}' unless defined(&BUF_strndup);
	eval 'sub BUF_memdup {
	    my($data, $size) = @_;
    	    eval q( &OPENSSL_memdup($data, $size));
	}' unless defined(&BUF_memdup);
	eval 'sub BUF_strlcpy {
	    my($dst, $src, $size) = @_;
    	    eval q( &OPENSSL_strlcpy($dst, $src, $size));
	}' unless defined(&BUF_strlcpy);
	eval 'sub BUF_strlcat {
	    my($dst, $src, $size) = @_;
    	    eval q( &OPENSSL_strlcat($dst, $src, $size));
	}' unless defined(&BUF_strlcat);
	eval 'sub BUF_strnlen {
	    my($str, $maxlen) = @_;
    	    eval q( &OPENSSL_strnlen($str, $maxlen));
	}' unless defined(&BUF_strnlen);
    }
    eval 'sub BUF_MEM_FLAG_SECURE () {0x1;}' unless defined(&BUF_MEM_FLAG_SECURE);
    if(defined(&__cplusplus)) {
    }
}
1;
