--- sio_test.c 2002/11/05 13:23:36 1.2
+++ sio_test.c 2002/11/19 15:54:51 1.3
@@ -4,8 +4,11 @@
#include "sio.h"
#include "sa.h"
+#include <openssl/ssl.h>
+#include <openssl/bio.h>
+extern BIO_METHOD *BIO_s_socket();
-extern sio_module_t sio_module_sa;
+extern sio_module_t sio_module_bio;
extern sio_module_t sio_module_hello;
extern sio_module_t sio_module_buffer;
@@ -16,13 +19,16 @@
{
sio_rc_t rc;
sio_t *sio;
- sio_stage_t *sios_sa, *sios_hello, *sios_buffer;
+ sio_stage_t *sios_bio, *sios_hello, *sios_buffer;
sa_rc_t src;
sa_addr_t *saa;
sa_t *msa, *sa;
char *uri;
+ int fd;
+ BIO *bio;
+
char buf[] = "Hello world\n";
size_t actual;
@@ -39,12 +45,12 @@
uri = NULL;
e(sio_create(&sio));
- e(sio_create_stage(sio, &sio_module_sa, &sios_sa));
+ e(sio_create_stage(sio, &sio_module_bio, &sios_bio));
e(sio_create_stage(sio, &sio_module_hello, &sios_hello));
e(sio_create_stage(sio, &sio_module_buffer, &sios_buffer));
buflen = 256;
- e(sio_configure_stage(sio, sios_sa, "buflen", &buflen));
+ e(sio_configure_stage(sio, sios_bio, "inputsize", &buflen));
buflen = 1000;
e(sio_configure_stage(sio, sios_buffer, "outputsize", &buflen));
@@ -58,16 +64,21 @@
printf("Connection from %s\n",uri);
s(sa_addr_destroy(saa));
- e(sio_configure_stage(sio, sios_sa, "sa", sa));
+
+ bio = BIO_new(BIO_s_socket());
+ sa_getfd(sa, &fd);
+ BIO_set_fd(bio, fd, 0);
+
+ e(sio_configure_stage(sio, sios_bio, "bio", bio));
e(sio_attach(sio, sios_buffer, SIO_MODE_WRITE));
e(sio_attach(sio, sios_hello, SIO_MODE_READWRITE));
- e(sio_attach(sio, sios_sa, SIO_MODE_READWRITE));
+ e(sio_attach(sio, sios_bio, SIO_MODE_READWRITE));
e(sio_write(sio, buf, sizeof(buf)-1, &actual));
e(sio_push(sio));
- e(sio_detach(sio, sios_sa));
+ e(sio_detach(sio, sios_bio));
e(sio_detach(sio, sios_hello));
e(sio_detach(sio, sios_buffer));
@@ -77,7 +88,7 @@
e(sio_destroy_stage(sio, sios_buffer));
e(sio_destroy_stage(sio, sios_hello));
- e(sio_destroy_stage(sio, sios_sa));
+ e(sio_destroy_stage(sio, sios_bio));
e(sio_destroy(sio));
|