-#include "p5SSLeay.h"
+
+#include "openssl.h"
static int p5_bio_ex_bio_ptr=0;
static int p5_bio_ex_bio_callback=0;
SAVETMPS;
PUSHMARK(sp);
- XPUSHs(me);
+ XPUSHs(sv_2mortal(newSViv(me)));
XPUSHs(sv_2mortal(newSViv(state)));
XPUSHs(sv_2mortal(newSViv(cmd)));
if ((state == BIO_CB_READ) || (state == BIO_CB_WRITE))
int boot_bio()
{
p5_bio_ex_bio_ptr=
- BIO_get_ex_new_index(0,"SSLeay::BIO",ex_new,NULL,ex_cleanup);
+ BIO_get_ex_new_index(0,"OpenSSL::BIO",ex_new,NULL,
+ ex_cleanup);
p5_bio_ex_bio_callback=
BIO_get_ex_new_index(0,"bio_callback",NULL,NULL,
ex_cleanup);
return(1);
}
-MODULE = SSLeay::BIO PACKAGE = SSLeay::BIO PREFIX = p5_BIO_
+MODULE = OpenSSL::BIO PACKAGE = OpenSSL::BIO PREFIX = p5_BIO_
VERSIONCHECK: DISABLE
else
arg=NULL;
- if ((arg == NULL) || !(sv_derived_from(arg,"SSLeay::SSL::CTX")))
- croak("Usage: SSLeay::BIO::new_buffer_ssl_connect(SSL_CTX)");
+ if ((arg == NULL) || !(sv_derived_from(arg,"OpenSSL::SSL::CTX")))
+ croak("Usage: OpenSSL::BIO::new_buffer_ssl_connect(SSL_CTX)");
else
{
IV tmp=SvIV((SV *)SvRV(arg));
}
EXTEND(sp,1);
bio=BIO_new_buffer_ssl_connect(ctx);
- arg=new_ref("SSLeay::BIO",(char *)bio,0);
+ arg=(SV *)BIO_get_ex_data(bio,p5_bio_ex_bio_ptr);
PUSHs(arg);
- BIO_set_ex_data(bio,p5_bio_ex_bio_ptr,(char *)arg);
void
p5_BIO_new_ssl_connect(...)
else
arg=NULL;
- if ((arg == NULL) || !(sv_derived_from(arg,"SSLeay::SSL::CTX")))
- croak("Usage: SSLeay::BIO::new_ssl_connect(SSL_CTX)");
+ if ((arg == NULL) || !(sv_derived_from(arg,"OpenSSL::SSL::CTX")))
+ croak("Usage: OpenSSL::BIO::new_ssl_connect(SSL_CTX)");
else
{
IV tmp=SvIV((SV *)SvRV(arg));
}
EXTEND(sp,1);
bio=BIO_new_ssl_connect(ctx);
- arg=new_ref("SSLeay::BIO",(char *)bio,0);
+ arg=(SV *)BIO_get_ex_data(bio,p5_bio_ex_bio_ptr);
PUSHs(arg);
- BIO_set_ex_data(bio,p5_bio_ex_bio_ptr,(char *)arg);
void
p5_BIO_new(...)
else if ((items == 2) && SvPOK(ST(1)))
type=SvPV(ST(1),na);
else
- croak("Usage: SSLeay::BIO::new(type)");
+ croak("Usage: OpenSSL::BIO::new(type)");
EXTEND(sp,1);
if (strcmp(type,"connect") == 0)
bio=BIO_new(BIO_f_buffer());
else
croak("unknown BIO type");
- arg=new_ref("SSLeay::BIO",(char *)bio,0);
+ arg=(SV *)BIO_get_ex_data(bio,p5_bio_ex_bio_ptr);
PUSHs(arg);
- BIO_set_ex_data(bio,p5_bio_ex_bio_ptr,(char *)arg);
int
p5_BIO_hostname(bio,name)
BIO *bio;
char *name;
CODE:
- RETVAL=BIO_set_hostname(bio,name);
+ RETVAL=BIO_set_conn_hostname(bio,name);
OUTPUT:
RETVAL
CODE:
/* This reference will be reduced when the reference is
* let go, and then when the BIO_free_all() is called
- * inside the SSLeay library by the BIO with this
+ * inside the OpenSSL library by the BIO with this
* pushed into */
bio->references++;
RETVAL=BIO_push(b,bio);
/* This BIO will either be one created in the
* perl library, in which case it will have a perl
* SV, otherwise it will have been created internally,
- * inside SSLeay. For the 'pushed in', it needs
+ * inside OpenSSL. For the 'pushed in', it needs
* the reference count decememted. */
arg=(SV *)BIO_get_ex_data(bio,p5_bio_ex_bio_ptr);
if (arg == NULL)
{
- arg=new_ref("SSLeay::BIO",(char *)bio,0);
- PUSHs(arg);
+ arg=new_ref("OpenSSL::BIO",(char *)bio,0);
BIO_set_ex_data(bio,p5_bio_ex_bio_ptr,(char *)arg);
+ PUSHs(arg);
}
else
{
/* it was pushed in */
SvREFCNT_inc(arg);
PUSHs(arg);
+#if 0 /* This does not need to be done. */
if (bio->references < 1)
abort();
/* decrement the reference count */
BIO_free(bio);
+#endif
}
}
if (offset < 0)
{
if (-offset > olen)
- croad("Offset outside string");
+ croak("Offset outside string");
offset+=olen;
}
}
arg=(SV *)BIO_get_ex_data(bio,p5_bio_ex_bio_ptr);
if (arg == NULL)
{
- arg=new_ref("SSLeay::BIO",(char *)bio,0);
- PUSHs(arg);
+ arg=new_ref("OpenSSL::BIO",(char *)bio,0);
BIO_set_ex_data(bio,p5_bio_ex_bio_ptr,(char *)arg);
+ bio->references++;
+ PUSHs(arg);
}
else
{
SV *arg2=NULL;
CODE:
if (items > 3)
- croak("Usage: SSLeay::BIO::set_callback(bio,callback[,arg]");
+ croak("Usage: OpenSSL::BIO::set_callback(bio,callback[,arg]");
if (items == 3)
{
arg2=sv_mortalcopy(ST(2));
arg=sv_mortalcopy(ST(1));
SvREFCNT_inc(arg);
BIO_set_ex_data(bio,p5_bio_ex_bio_callback,(char *)arg);
+ printf("%08lx < bio_ptr\n",BIO_get_ex_data(bio,p5_bio_ex_bio_ptr));
BIO_set_callback(bio,p5_bio_callback);
void