src/server/util/io.h

changeset 106
b122f34ddc80
parent 80
0de4a90979e1
child 110
43a746e905f6
child 111
c93be34fde76
equal deleted inserted replaced
105:63d9051fe35c 106:b122f34ddc80
26 * POSSIBILITY OF SUCH DAMAGE. 26 * POSSIBILITY OF SUCH DAMAGE.
27 */ 27 */
28 28
29 #ifndef IOSTREAM_H 29 #ifndef IOSTREAM_H
30 #define IOSTREAM_H 30 #define IOSTREAM_H
31
32 #include <openssl/ssl.h>
31 33
32 #include "../public/nsapi.h" 34 #include "../public/nsapi.h"
33 35
34 #ifdef __cplusplus 36 #ifdef __cplusplus
35 extern "C" { 37 extern "C" {
65 size_t read; 67 size_t read;
66 int chunked_enc; 68 int chunked_enc;
67 int buffered; 69 int buffered;
68 } NetIOStream; 70 } NetIOStream;
69 71
72 typedef struct SSLStream {
73 IOStream st;
74 SSL *ssl;
75 } SSLStream;
76
70 77
71 /* net_ functions */ 78 /* net_ functions */
72 ssize_t net_read(SYS_NETFD fd, void *buf, size_t nbytes); 79 ssize_t net_read(SYS_NETFD fd, void *buf, size_t nbytes);
73 ssize_t net_write(SYS_NETFD fd, void *buf, size_t nbytes); 80 ssize_t net_write(SYS_NETFD fd, void *buf, size_t nbytes);
74 ssize_t net_printf(SYS_NETFD fd, char *format, ...); 81 ssize_t net_printf(SYS_NETFD fd, char *format, ...);
100 ssize_t net_stream_read(NetIOStream *st, void *buf, size_t nbytes); 107 ssize_t net_stream_read(NetIOStream *st, void *buf, size_t nbytes);
101 ssize_t net_stream_sendfile(NetIOStream *st, sendfiledata *sfd); 108 ssize_t net_stream_sendfile(NetIOStream *st, sendfiledata *sfd);
102 void net_stream_close(NetIOStream *st); 109 void net_stream_close(NetIOStream *st);
103 void net_stream_finish(NetIOStream *st); 110 void net_stream_finish(NetIOStream *st);
104 111
112 /* ssl stream */
113 IOStream* net_ssl_stream(pool_handle_t *pool, SSL *ssl);
114
115 ssize_t net_ssl_write(SSLStream *st, void *buf, size_t nbytes);
116 ssize_t net_ssl_writev(SSLStream *st, struct iovec *iovec, int iovcnt);
117 ssize_t net_ssl_read(SSLStream *st, void *buf, size_t nbytes);
118 void net_ssl_close(SSLStream *st);
119 void net_ssl_finish(SSLStream *st);
120
105 /* iovec buffer */ 121 /* iovec buffer */
106 iovec_buf_t *iovec_buf_create(pool_handle_t *pool); 122 iovec_buf_t *iovec_buf_create(pool_handle_t *pool);
107 void iovec_buf_write(iovec_buf_t *io, void *buf, size_t nbyte); 123 void iovec_buf_write(iovec_buf_t *io, void *buf, size_t nbyte);
108 ssize_t iovec_buf_flush(iovec_buf_t *io, int fd); 124 ssize_t iovec_buf_flush(iovec_buf_t *io, int fd);
109 125

mercurial