8000 proxy: Split out exception for missing content types by jacobbednarz · Pull Request #32 · cactus/go-camo · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

proxy: Split out exception for missing content types #32

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

jacobbednarz
Copy link
Contributor

This takes the current logic for checking whether the request is for a
valid HTTP content-type and splits it into two parts. The split moves to
allow differentiation between a content-type that we don't intend to
proxy and a missing content-type as they should be handled differently.

This takes the current logic for checking whether the request is for a
valid HTTP content-type and splits it into two parts. The split moves to
allow differentiation between a content-type that we don't intend to
proxy and a missing content-type as they should be handled differently.
@jacobbednarz
Copy link
Contributor Author

Looks like at least one of these failures is also happening on master.

$ make test
Running tests...
?   	github.com/cactus/go-camo/cmd/go-camo	[no test files]
?   	github.com/cactus/go-camo/cmd/url-tool	[no test files]
--- FAIL: Test404ImageLargerThan5MB (3.19s)
        Error Trace:    proxy_test.go:217
        Error:      	Expected nil, but got: &errors.errorString{s:"response code = 504, wanted 404"}
        Test:       	Test404ImageLargerThan5MB
FAIL
FAIL	github.com/cactus/go-camo/pkg/camo	11.278s
ok  	github.com/cactus/go-camo/pkg/camo/encoding	(cached)
ok  	github.com/cactus/go-camo/pkg/router	(cached)
ok  	github.com/cactus/go-camo/pkg/stats	(cached)
make: *** [test] Error 1

// check content type
contentType := resp.Header.Get("Content-Type")

if contentType == "" {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Am I correct in my assumption that this is an optimization?

The regex match /should/ fail (non-match) for empty content types, but not having to do the regex in cases where content-type is empty seems like a valid optimization case for sure. Just wanted to make sure the reasoning matched my expectation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not an optimisation but ability to differentiate an unsupported content type and a missing one. These are two different scenarios and while you could lump them together, you probably want to have insight into each case instead of treating both the same way.

Apologies for not being clear enough about that in my description.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah. That makes sense. Treating them differently here isn't really leaking anything of value either. 👍

@dropwhile
Copy link
Member

The tests currently rely on a few public servers for a couple of tests. A few of those tests sometimes fail, when the server it tests against breaks or has errors. I'll look into this one in particular and see if the test needs to be adjusted.

@dropwhile
Copy link
Member

lgtm. Thanks!

@dropwhile dropwhile merged commit 279c603 into cactus:master Jun 5, 2019
@jacobbednarz jacobbednarz deleted the split-out-missing-content-type branch June 5, 2019 01:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants
0