Comments (7)
To whomever ends up working on this: See haskell/cabal#2455 (comment) and haskell/cabal#2455 (comment) which may be a clue as to what's going wrong. In particular, it seems that something on @ChrisPenner 's network is causing the status line to be missing a space. (Which is non-compliant.)
from http.
Ref for it being non-compliant is RFC2616 section 6.1 ("Status line").
Still I guess HTTP could be "liberal in what it accepts".
The relevant code seems to be in parseResponseHead
in Network.HTTP.Base
- it calls words
to split up the three parts of the status line. That logic would need to be made more forgiving somehow.
from http.
Ref for it being non-compliant is RFC2616 section 6.1 ("Status line").
...as well as in the successor RFC7230: https://tools.ietf.org/html/rfc7230#section-3.1.2
from http.
Still I guess HTTP could be "liberal in what it accepts".
Generally, I've taken advice from people that know far better than me that this can be a dangerous edict in this day and age, and that it can lead to unforeseen security problems down the line. (Esp. if multiple "be liberal" instances conspire to interact badly.) I can't recall the specifics off-hand, but there have been instances where such things lead to completely breaking an authentication protocol (security-wise).
(Not that I'm saying that's the case here, I'm just saying: Be careful.)
I would be leaning towards finding out what's wrong with @ChrisPenner 's physical network (a bad proxy, I'm guessing). I'm not sure HTTP should accommodate a network/proxy that's this badly broken -- rather I think the network/proxy needs fixing.
Anyway...
from http.
Fair point - I can't think of any dangers in this case, but please do point out any that occur to you!
Absent that, and while I agree the misbehaving network should be fixed in any case, I'd be happy for HTTP to support this case.
I think it is a "patches welcome" situation though, I don't really have time or inclination to do it myself. Hopefully we'd also get a test, though I'm not sure if either web server the test harness uses can be easily persuaded to do malformed things.
from http.
If it helps anyone understand the issue, I have the same problem no matter which WiFi network I'm connected to. Also I do have a VPN installed, but the problem persists whether the VPN is active or not.
Anyone have a quick fix I can use while you decide what to do with the issue?
Thanks!
from http.
@ChrisPenner -- the newest cabal-install will attempt to use https via command line wget or curl, and so shouldn't be affected by this http bug if you ensure you're using one of the other transport options.
from http.
Related Issues (20)
- Typo in documentation of Network.HTTP.getResponseCode
- Add warning for lack of HTTPS support HOT 6
- Commits missing on github? HOT 1
- Bump bounds on win32? HOT 3
- Support for network 2.8.x? HOT 5
- Extract Code that Creates http Headers and Body HOT 2
- findHeader is case-sensitive for custom headers HOT 2
- Support for GHC-9.0 HOT 5
- Upcoming breakage with transformers-0.6 / mtl-2.3 HOT 6
- Ik
- Compatibility with mtl-2.3 HOT 1
- Better error message when HTTP_PROXY is down.
- cabal install gets stuck at Recovering connection to hackage.haskell.org HOT 2
- Custom instances of HStream impossible to write
- urlEncodeVars does not properly encode arrays HOT 1
- Not building with ghc 7.8 HOT 3
- Remove dep on old-time? HOT 4
- simpleHTTP raises exception on connection refused HOT 1
- GHC 8.0.1 support HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from http.