Merge branch 'master' of https://github.com/sogou/workflow into nossl

This commit is contained in:
Xie Han
2025-05-21 20:39:48 +08:00
3 changed files with 13 additions and 1 deletions

View File

@@ -26,7 +26,10 @@ void WFHttpChunkedTask::task_extract(protocol::HttpMessageChunk *chunk,
t->chunk = chunk;
if (t->extract)
t->extract(t);
{
if (chunk || t->extract_flag)
t->extract(t);
}
}
void WFHttpChunkedTask::task_callback(WFHttpTask *task)

View File

@@ -65,6 +65,12 @@ public:
this->task->set_keep_alive(timeout);
}
public:
void extract_on_header(bool on)
{
this->extract_flag = on;
}
public:
void set_extract(std::function<void (WFHttpChunkedTask *)> ex)
{
@@ -102,6 +108,7 @@ protected:
protected:
WFHttpTask *task;
protocol::HttpMessageChunk *chunk;
bool extract_flag;
std::function<void (WFHttpChunkedTask *)> extract;
std::function<void (WFHttpChunkedTask *)> callback;
@@ -114,6 +121,7 @@ protected:
{
task->user_data = this;
this->task = task;
this->extract_flag = false;
}
virtual ~WFHttpChunkedTask()

View File

@@ -503,6 +503,7 @@ ComplexHttpChunkedTask::ChunkWrapper::next_in(ProtocolMessage *msg)
if (status_code / 100 != 3)
{
size = resp->get_size_limit();
task_->extract_(NULL, task_);
task_->chunk_.set_size_limit(size);
task_->chunking_ = true;
return &task_->chunk_;