[openssl-users] compiling cups-1.4.3 w/ OpenSSL 1.10 && BIO_METHOD

Matt Caswell matt at openssl.org
Fri Mar 2 09:40:08 UTC 2018



On 01/03/18 12:07, Matthias Apitz wrote:
> 
> Hello,
> 
> Compiling cups-1.4.3 against OpenSSL 1.10 gives the following error:
> 
> ...
> Compiling http.c...
> http.c:216: error: variable `http_bio_methods' has initializer but
> incomplete type
> 
> the code in question is:
> 
> #if defined(HAVE_SSL) && defined(HAVE_LIBSSL)
> /*
>  * BIO methods for OpenSSL...
>  */
> 
> static int              http_bio_write(BIO *h, const char *buf, int num);
> static int              http_bio_read(BIO *h, char *buf, int size);
> static int              http_bio_puts(BIO *h, const char *str);
> static long             http_bio_ctrl(BIO *h, int cmd, long arg1, void *arg2);
> static int              http_bio_new(BIO *h);
> static int              http_bio_free(BIO *data);
> 
> static BIO_METHOD       http_bio_methods =
>                         {
>                           BIO_TYPE_SOCKET,
>                           "http",
>                           http_bio_write,
>                           http_bio_read,
>                           http_bio_puts,
>                           NULL, /* http_bio_gets, */
>                           http_bio_ctrl,
>                           http_bio_new,
>                           http_bio_free,
>                           NULL,
>                         };
> 
> Can I fix this somehow within the cups' code?
> Thanks

Yes, construct the BIO_METHOD at run time using the functions here:

https://www.openssl.org/docs/man1.1.0/crypto/BIO_meth_new.html

Matt



More information about the openssl-users mailing list