| 854 | |
| 855 | private: |
| 856 | static int on_message_begin(http_parser* p) |
| 857 | { |
| 858 | StreamingRequestDecoder* decoder = (StreamingRequestDecoder*) p->data; |
| 859 | |
| 860 | CHECK(!decoder->failure); |
| 861 | |
| 862 | decoder->header = HEADER_FIELD; |
| 863 | decoder->field.clear(); |
| 864 | decoder->value.clear(); |
| 865 | decoder->query.clear(); |
| 866 | decoder->url.clear(); |
| 867 | |
| 868 | CHECK(decoder->request == nullptr); |
| 869 | CHECK_NONE(decoder->writer); |
| 870 | |
| 871 | decoder->request = new http::Request(); |
| 872 | decoder->request->type = http::Request::PIPE; |
| 873 | decoder->writer = None(); |
| 874 | decoder->decompressor.reset(); |
| 875 | |
| 876 | return http_parsing::SUCCESS; |
| 877 | } |
| 878 | |
| 879 | static int on_chunk_complete(http_parser* p) |
| 880 | { |