28 |
28 |
29 #ifndef SERVICE_H |
29 #ifndef SERVICE_H |
30 #define SERVICE_H |
30 #define SERVICE_H |
31 |
31 |
32 #include "../public/nsapi.h" |
32 #include "../public/nsapi.h" |
|
33 #include "../util/systems.h" |
33 |
34 |
34 #ifdef __cplusplus |
35 #ifdef __cplusplus |
35 extern "C" { |
36 extern "C" { |
36 #endif |
37 #endif |
37 |
38 |
|
39 #define AIO_BUF_SIZE 16384 |
|
40 |
38 typedef struct HttpRange HttpRange; |
41 typedef struct HttpRange HttpRange; |
39 |
42 |
40 struct HttpRange { |
43 struct HttpRange { |
41 off_t begin; |
44 off_t begin; |
42 off_t end; |
45 off_t end; |
43 HttpRange *next; |
46 HttpRange *next; |
44 }; |
47 }; |
45 |
48 |
|
49 typedef struct AsyncSendRange { |
|
50 Session *sn; |
|
51 Request *rq; |
|
52 SYS_FILE in; |
|
53 SYS_NETFD out; |
|
54 off_t offset; |
|
55 off_t end; |
|
56 //off_t length; |
|
57 off_t pos; |
|
58 char *header; |
|
59 int headerlen; |
|
60 size_t headerpos; |
|
61 Event *readev; |
|
62 Event *writeev; |
|
63 aiocb_s *aio; |
|
64 size_t wpos; |
|
65 WSBool read_complete; |
|
66 WSBool read_inprogress; |
|
67 WSBool write_inprogress; |
|
68 WSBool error; |
|
69 } AsyncSendRange; |
46 |
70 |
47 int send_file(pblock *pb, Session *sn, Request *rq); |
71 int send_file(pblock *pb, Session *sn, Request *rq); |
48 |
72 |
49 int service_hello(pblock *pb, Session *sn, Request *rq); |
73 int service_hello(pblock *pb, Session *sn, Request *rq); |
50 int service_ws_hello(pblock *pb, Session *sn, Request *rq); |
74 int service_ws_hello(pblock *pb, Session *sn, Request *rq); |