src/server/util/io.h

changeset 697
3ddfd45d4e47
parent 684
48da20bde908
equal deleted inserted replaced
696:27e42da5050f 697:3ddfd45d4e47
48 #define SYS_SOCKET SOCKET 48 #define SYS_SOCKET SOCKET
49 #endif 49 #endif
50 50
51 #define IO_MODE_BLOCKING 0 51 #define IO_MODE_BLOCKING 0
52 #define IO_MODE_NONBLOCKING 1 52 #define IO_MODE_NONBLOCKING 1
53 #define IO_MODE_RAW 2
53 54
54 #define IO_POLL_NONE 0 55 #define IO_POLL_NONE 0
55 #define IO_POLL_IN 1 56 #define IO_POLL_IN 1
56 #define IO_POLL_OUT 2 57 #define IO_POLL_OUT 2
57 58
178 WSBool read_eof; 179 WSBool read_eof;
179 /* 180 /*
180 * end of file indicator (write) 181 * end of file indicator (write)
181 */ 182 */
182 WSBool write_eof; 183 WSBool write_eof;
184 /*
185 * raw socket IO
186 */
187 WSBool raw;
183 }; 188 };
184 189
185 typedef struct SSLStream { 190 typedef struct SSLStream {
186 IOStream st; 191 IOStream st;
187 SSL *ssl; 192 SSL *ssl;
214 WSBool httpstream_eof(IOStream *st); 219 WSBool httpstream_eof(IOStream *st);
215 int64_t httpstream_written(IOStream *st); 220 int64_t httpstream_written(IOStream *st);
216 221
217 ssize_t net_http_write(HttpStream *st, const void *buf, size_t nbytes); 222 ssize_t net_http_write(HttpStream *st, const void *buf, size_t nbytes);
218 ssize_t net_http_writev(HttpStream *st, struct iovec *iovec, int iovcnt); 223 ssize_t net_http_writev(HttpStream *st, struct iovec *iovec, int iovcnt);
224 ssize_t net_http_write_raw(HttpStream *st, const void *buf, size_t nbytes);
225 ssize_t net_http_writev_raw(HttpStream *st, struct iovec *iovec, int iovcnt);
219 ssize_t net_http_read(HttpStream *st, void *buf, size_t nbytes); 226 ssize_t net_http_read(HttpStream *st, void *buf, size_t nbytes);
220 ssize_t net_http_read_buffered(HttpStream *st, void *buf, size_t nbytes); 227 ssize_t net_http_read_buffered(HttpStream *st, void *buf, size_t nbytes);
221 ssize_t net_http_read_chunked(HttpStream *st, void *buf, size_t nbytes); 228 ssize_t net_http_read_chunked(HttpStream *st, void *buf, size_t nbytes);
229 ssize_t net_http_read_raw(HttpStream *st, void *buf, size_t nbytes);
222 ssize_t net_http_sendfile(HttpStream *st, sendfiledata *sfd); 230 ssize_t net_http_sendfile(HttpStream *st, sendfiledata *sfd);
223 void net_http_close(HttpStream *st); 231 void net_http_close(HttpStream *st);
224 void net_http_finish(HttpStream *st); 232 void net_http_finish(HttpStream *st);
225 void net_http_setmode(HttpStream *st, int mode); 233 void net_http_setmode(HttpStream *st, int mode);
226 int net_http_poll(HttpStream *st, EventHandler *ev, int events, Event *cb); 234 int net_http_poll(HttpStream *st, EventHandler *ev, int events, Event *cb);

mercurial