diff --git a/extensions/pipelines/http/net-http/pipeline.go b/extensions/pipelines/http/net-http/pipeline.go index db7d576..fd5fa98 100644 --- a/extensions/pipelines/http/net-http/pipeline.go +++ b/extensions/pipelines/http/net-http/pipeline.go @@ -46,6 +46,7 @@ func (t *HttpRequestPipeline) UnpackRequestCtx( okTr, transport := GetTransportCtx(ctx) if (!okC || !okR) || (!okT || !okL || !okTr) { + logger.Errorf("client: %t , request: %t, transport: %t", okC, okR, okTr) return false, nil, nil, nil, nil, nil } @@ -63,16 +64,16 @@ func (t *HttpRequestPipeline) Run( return } - ok, taskInstance, logger, client, request, transport := t.UnpackRequestCtx(context) - - if !ok { - reject(t, Errors.PipelineContexFailed) - t.Cancel(context, logger, Errors.PipelineContexFailed) - return - } + _, logger := log.Get(context) t.SafeRun(context, logger, func() error { + ok, taskInstance, logger, client, request, transport := t.UnpackRequestCtx(context) + + if !ok { + return Errors.PipelineContexFailed + } + err, newContext := t.Fn(context, taskInstance, logger, client, request, transport) if err != nil { return err diff --git a/extensions/servers/gin/domains/proxy/server_test.go b/extensions/servers/gin/domains/proxy/server_test.go index 654b736..f6d6cb0 100644 --- a/extensions/servers/gin/domains/proxy/server_test.go +++ b/extensions/servers/gin/domains/proxy/server_test.go @@ -2,6 +2,7 @@ package proxy import ( "fmt" + net_http "github.com/vortex14/gotyphoon/extensions/pipelines/http/net-http" "net/http" "net/url" "os" @@ -16,7 +17,7 @@ import ( "github.com/vortex14/gotyphoon/elements/models/timer" "github.com/vortex14/gotyphoon/extensions/data/fake" - net_http "github.com/vortex14/gotyphoon/extensions/pipelines/http/net-http" + netHttp "github.com/vortex14/gotyphoon/extensions/pipelines/text/html" net_html "github.com/vortex14/gotyphoon/extensions/pipelines/text/html" "github.com/vortex14/gotyphoon/interfaces" "github.com/vortex14/gotyphoon/log" @@ -442,3 +443,18 @@ func TestGetConcurrentProxyCollection(t *testing.T) { }) }) } + +func TestMakeBlockProxy(t *testing.T) { + Convey("block the proxy", t, func() { + task := fake.CreateDefaultTask() + + task.SetFetcherUrl("https://google.com") + + err := netHttp.MakeRequestThroughProxy(task, func(logger interfaces.LoggerInterface, + response *http.Response, doc *goquery.Document) bool { + + return !(response.StatusCode > 400) + }) + So(err, ShouldBeNil) + }) +}