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
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
8000
Diff view
11 changes: 9 additions & 2 deletions pkg/camo/proxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,10 +221,17 @@ func (p *Proxy) ServeHTTP(w http.ResponseWriter, req *http.Request) {

switch resp.StatusCode {
case 200:
// check content type
contentType := resp.Header.Get("Content-Type")

if contentType == "" {
D2C2 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. 👍

mlog.Debug("Empty content-type returned")
http.Error(w, "Empty content-type returned", http.StatusBadRequest)
return
}

match := false
for _, re := range p.acceptTypesRe {
if re.MatchString(resp.Header.Get("Content-Type")) {
if re.MatchString(contentType) {
match = true
break
}
Expand Down
0