src/server/util/io.h

changeset 106
b122f34ddc80
parent 80
0de4a90979e1
child 110
43a746e905f6
child 111
c93be34fde76
--- a/src/server/util/io.h	Wed Oct 28 17:59:34 2015 +0100
+++ b/src/server/util/io.h	Sat Oct 31 15:01:07 2015 +0100
@@ -29,6 +29,8 @@
 #ifndef IOSTREAM_H
 #define	IOSTREAM_H
 
+#include <openssl/ssl.h> 
+
 #include "../public/nsapi.h"
 
 #ifdef	__cplusplus
@@ -67,6 +69,11 @@
     int      buffered;
 } NetIOStream;
 
+typedef struct SSLStream {
+    IOStream st;
+    SSL      *ssl; 
+} SSLStream;
+
 
 /* net_ functions */
 ssize_t net_read(SYS_NETFD fd, void *buf, size_t nbytes);
@@ -102,6 +109,15 @@
 void    net_stream_close(NetIOStream *st);
 void    net_stream_finish(NetIOStream *st);
 
+/* ssl stream */
+IOStream* net_ssl_stream(pool_handle_t *pool, SSL *ssl);
+
+ssize_t net_ssl_write(SSLStream *st, void *buf, size_t nbytes);
+ssize_t net_ssl_writev(SSLStream *st, struct iovec *iovec, int iovcnt);
+ssize_t net_ssl_read(SSLStream *st, void *buf, size_t nbytes);
+void    net_ssl_close(SSLStream *st);
+void    net_ssl_finish(SSLStream *st);
+
 /* iovec buffer */
 iovec_buf_t *iovec_buf_create(pool_handle_t *pool);
 void iovec_buf_write(iovec_buf_t *io, void *buf, size_t nbyte);

mercurial