Commit Graph

64 Commits

Author SHA1 Message Date
David Symonds 1d258a554a http: give ParseHTTPVersion a real example.
R=rsc
CC=golang-dev
https://golang.org/cl/4239050
2011-03-02 10:10:12 +11:00
David Symonds 7eaecb8915 http: export parseHTTPVersion.
R=rsc, adg
CC=golang-dev
https://golang.org/cl/4244045
2011-03-01 22:38:18 +11:00
Petar Maymounkov b8fa61885a http: introduce Header type, implement with net/textproto
textproto: introduce Header type
websocket: use new interface to access Header

R=rsc, mattn
CC=golang-dev
https://golang.org/cl/4185053
2011-02-23 00:39:25 -05:00
Russ Cox 063125dfcf http: send full URL in proxy requests
Fixes #53.  (again)

R=agl1
CC=golang-dev
https://golang.org/cl/4167054
2011-02-17 17:14:50 -05:00
Brad Fitzpatrick b448263f79 http: fix scheme-relative URL parsing; add ParseRequestURL
Also adds some tests for Issue 900 which was the reason
the current URL parsing is broken.  (the previous fix
was wrong)

R=rsc, adg, dangabrad, bradfitzwork
CC=golang-dev
https://golang.org/cl/3910042
2011-01-14 09:10:02 +11:00
Brad Fitzpatrick e198a5086a strings: Contains
Tiny helper to avoid strings.Index(s, sub) != -1

R=rsc, r2, r
CC=golang-dev
https://golang.org/cl/2265044
2010-11-01 14:32:48 -07:00
Stephen Ma 8d130f5d2d http: return the correct error if a header line is too long.
R=golang-dev, r2
CC=golang-dev
https://golang.org/cl/2372042
2010-10-06 22:04:18 +11:00
Brad Fitzpatrick fbab1f1bad http: support HTTP/1.0 Keep-Alive
R=rsc, bradfitz1
CC=golang-dev
https://golang.org/cl/2261042
2010-09-27 21:55:04 -04:00
Russ Cox 5c3827cb9f http: correct escaping of different parts of URL
Fixes #1076.

R=adg
CC=golang-dev
https://golang.org/cl/2248045
2010-09-27 21:54:04 -04:00
Andrew Gerrand ad9042bdfa http: don't always escape all reserved chars (fix build)
R=nigeltao, nigeltao_golang
CC=golang-dev
https://golang.org/cl/2206044
2010-09-22 16:59:35 +10:00
Jukka-Pekka Kekkonen f7a71c6505 http: do not cache CanonicalHeaderKey
Fixes #1080.

R=rsc
CC=golang-dev
https://golang.org/cl/2158043
2010-09-08 10:20:21 -04:00
Russ Cox d0459447fa http: doc nit
R=r
CC=golang-dev
https://golang.org/cl/2013043
2010-08-23 18:06:28 -04:00
Scott Lawrence e5518feaf8 http: fix typo in http.Request documentation
R=golang-dev, r
CC=golang-dev
https://golang.org/cl/2004044
2010-08-22 14:44:00 +10:00
Russ Cox 3bf656327e http: parse query string always, not just in GET
Fixes #985.

R=dsymonds, dsymonds1
CC=golang-dev
https://golang.org/cl/1963044
2010-08-17 20:01:50 -04:00
Brad Fitzpatrick 9b64fef71a mime/multipart and HTTP multipart/form-data support
Somewhat of a work-in-progress (in that MIME is a large spec), but this is
functional and enough for discussion and/or code review.

In addition to the unit tests, I've tested with curl and Chrome with
a variety of test files, making sure the digests of files are unaltered
when read via a multipart Part.

R=rsc, adg, dsymonds1, agl1
CC=golang-dev
https://golang.org/cl/1681049
2010-07-14 17:26:14 -07:00
Rob Pike 38f1231f3e strings and bytes.Split: make count of 0 mean 0, not infinite.
Use a count of -1 for infinity.  Ditto for Replace.

R=rsc
CC=golang-dev
https://golang.org/cl/1704044
2010-07-01 14:08:14 -07:00
Brad Fitzpatrick 743f818218 http: reply to Expect 100-continue requests automatically
This CL replaces my earlier https://golang.org/cl/1640044/show
in which Continue handling was explicit.  Instead, this CL makes
it automatic.  Reading from Body() is an implicit acknowledgement
that the request headers were fine and the body is wanted.  In that
case, the 100 Continue response is written automatically when the
request continues the "Expect: 100-continue" header.

R=rsc, adg
CC=golang-dev
https://golang.org/cl/1610042
2010-06-16 10:15:39 -07:00
Andrew Gerrand 8334d107c4 http: fix erroneous comment
R=r
CC=golang-dev
https://golang.org/cl/1539042
2010-06-06 17:18:09 +02:00
Robert Griesemer d6acc0646b http: prevent crash if remote server is not responding with "HTTP/"
Fixes #775.

R=rsc
CC=golang-dev
https://golang.org/cl/1180042
2010-05-11 16:50:20 -07:00
Russ Cox c7122a3c58 simplify various code using new map index rule
R=r
CC=golang-dev
https://golang.org/cl/833044
2010-03-30 10:51:11 -07:00
Petar Maymounkov 7f4c2caea5 http: add ParseQuery
R=rsc
CC=golang-dev
https://golang.org/cl/238041
2010-03-16 13:57:16 -07:00
Robert Griesemer f44fa9b4c7 gofmt: experiment: align values in map composites where possible
- gofmt -w src misc
- looking for feedback

R=rsc, r
CC=golang-dev
https://golang.org/cl/223076
2010-03-02 13:46:51 -08:00
Russ Cox 9750adbbad strings: delete Runes, Bytes
gofmt -w -r 'strings.Bytes(a) -> []byte(a)' src/cmd src/pkg test/bench
gofmt -w -r 'strings.Runes(a) -> []int(a)' src/cmd src/pkg test/bench
delete unused imports

R=r
CC=golang-dev
https://golang.org/cl/224062
2010-02-25 16:01:29 -08:00
Petar Maymounkov 39e91f8858 http: use RawURL in Request.Write
R=rsc
CC=golang-dev
https://golang.org/cl/217066
2010-02-22 15:39:30 -08:00
Michael Hoisie 0485a999ff http request URI should never be empty
R=rsc, adg
CC=golang-dev
https://golang.org/cl/217071
2010-02-21 19:49:43 -08:00
Petar Maymounkov 1480ce373e http: unified body transfer (read & write) logic in http.Request/Response.
Compliance issue addressed here: POST requests carrying form data are required
to use "identity" transfer encoding by common nginx and apache server configurations,
e.g. wordpress.com (and many others). So, Request needed to be able to send
non-chunked encodings.

Thus, Request is extended to support identity and chunked encodings, like
Response.  Since the Read() and Write() logic are shared by both (and are
quite long), it is exported in a separate file transfer.go.

R=rsc
CC=golang-dev
https://golang.org/cl/217048
2010-02-19 08:38:40 -08:00
Petar Maymounkov c5287ecb9c http: protect io.WriteString in Request/Response.Write with error checking,
since they were causing a silent program exit (too many EPIPE's).

R=rsc
CC=golang-dev
https://golang.org/cl/204062
2010-02-09 17:42:51 -08:00
Petar Maymounkov 4fdab85178 http: sort header keys when writing Response or Request to wire
R=rsc
CC=golang-dev
https://golang.org/cl/203050
2010-02-05 18:32:02 -08:00
Petar Maymounkov 15da069a37 http: use ChunkWriter in Request.Write
R=rsc
CC=golang-dev
https://golang.org/cl/196079
2010-02-04 00:23:01 -08:00
Petar Maymounkov 84f9b70280 http: increase header line limit, let req.Host override req.URL.Host
Fixes #566.

R=rsc
CC=golang-dev
https://golang.org/cl/194074
2010-01-29 16:51:42 -08:00
Petar Maymounkov a0e6f03add Cosmetic bug or compliance fixes in http.Response.
(1) http.Response must close resp.Body after writing.
(2) Case when resp.Body != nil and resp.ContentLength = 0 should not be
treated as an error in Response.Write, because this is what
ReadResponse often returns.
(3) Changed body.th to body.hdr for readability.

R=rsc
CC=golang-dev
https://golang.org/cl/194084
2010-01-28 15:13:26 -08:00
Petar Maymounkov 8814555534 http: make Request.Body an io.ReadCloser, matching Response.Body.
R=rsc, rsc1
CC=golang-dev
https://golang.org/cl/194046
2010-01-25 18:49:08 -08:00
Petar Maymounkov 914c626cae Significant extension to http.Response, which now adheres to the
usage pattern of http.Request and paves the way to persistent connection
handling.

R=rsc
CC=golang-dev
https://golang.org/cl/185043
2010-01-18 21:46:59 -08:00
Russ Cox fe56e2cc35 http: most of a URL shouldn't use URL-escaping
Fixes #502.

R=r, hoisie
CC=golang-dev
https://golang.org/cl/181179
2010-01-07 18:10:29 -08:00
Russ Cox 968d6a6d5a http: avoid header duplication - take struct fields out of Header map
R=r
CC=golang-dev, petar-m
https://golang.org/cl/183132
2010-01-06 15:45:30 -08:00
Robert Griesemer a3d1045fb7 1) Change default gofmt default settings for
parsing and printing to new syntax.

   Use -oldparser to parse the old syntax,
   use -oldprinter to print the old syntax.

2) Change default gofmt formatting settings
   to use tabs for indentation only and to use
   spaces for alignment. This will make the code
   alignment insensitive to an editor's tabwidth.

   Use -spaces=false to use tabs for alignment.

3) Manually changed src/exp/parser/parser_test.go
   so that it doesn't try to parse the parser's
   source files using the old syntax (they have
   new syntax now).

4) gofmt -w src misc test/bench

3rd set of files.

R=rsc
CC=golang-dev
https://golang.org/cl/180048
2009-12-15 15:35:38 -08:00
Rob Pike b0683bd77a move ReadFile, WriteFile, and ReadDir into a separate io/ioutil package.
this breaks the dependency of package io on package bytes.

R=rsc
CC=golang-dev
https://golang.org/cl/163085
2009-12-02 22:02:14 -08:00
Robert Griesemer 001a8b11ff Change to container/vector interface:
- removed New(len int) in favor of new(Vector).Resize(len, cap)
- removed Init(len int) in favor of Resize(len, cap)
- runs all.bash

Fixes #294.

R=rsc, r, r1
https://golang.org/cl/157143
2009-11-24 13:43:18 -08:00
Russ Cox 9ac4449cb2 gofmt -r 'α[β:len(α)] -> α[β:]' -w src/cmd src/pkg
R=r, gri
CC=golang-dev
https://golang.org/cl/156115
2009-11-20 11:45:05 -08:00
Russ Cox 849e6f99b8 http: do not crash accessing r.Form if ParseForm fails
Fixes #233.

R=dsymonds1
https://golang.org/cl/154179
2009-11-17 14:45:10 -08:00
Russ Cox cb94b60cfb allow user agent to mention Go.
R=r
http://go/go-review/1024046
2009-11-10 09:10:08 -08:00
Robert Griesemer 3bb0032cd6 - replaced gofmt expression formatting algorithm with
rsc's algorithm
- applied gofmt -w misc src
- partial CL (last chunk)

R=rsc, r
http://go/go-review/1024041
2009-11-09 21:23:52 -08:00
Robert Griesemer 40621d5c0d remove semis after statements in one-statement statement lists
R=rsc, r
http://go/go-review/1025029
2009-11-09 12:07:39 -08:00
Russ Cox ed6eb5b577 a nagging inconsistency: capitalization of
HTML vs Html, URL vs Url, HTTP vs Http,
current source is 6:1 in favor of the former,
so change instances of the latter.

R=r
CC=go-dev
http://go/go-review/1024026
2009-11-08 21:46:20 -08:00
Robert Griesemer 368f8cbc75 - fine-tuning of one-line func heuristic (nodes.go)
- enabled for function declarations (not just function literals)
- applied gofmt -w $GOROOT/src
(look for instance at src/pkg/debug/elf/elf.go)

R=r, rsc
CC=go-dev
http://go/go-review/1026006
2009-11-06 14:24:38 -08:00
Rob Pike 1726e81c00 publish Request.Write (rename from Request.write)
R=rsc
CC=go-dev
http://go/go-review/1015003
2009-10-23 14:19:47 -07:00
Russ Cox 094f1d5990 more lgtm files from gofmt
R=gri
OCL=35485
CL=35488
2009-10-08 15:14:54 -07:00
Bill Neubauer 41a2b21f26 Fixing HTTP POST handling to work with Chrome and Safari.
request.go does not handle Content-Type correctly for the definition of
Media Types.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7

R=rsc
APPROVED=rsc
DELTA=44  (42 added, 0 deleted, 2 changed)
OCL=35274
CL=35306
2009-10-03 11:09:01 -07:00
Russ Cox ca6a0fee1b more "declared and not used".
the last round omitted := range and only
checked 1 out of N vars in a multi-var :=

R=r
OCL=34624
CL=34638
2009-09-15 09:41:59 -07:00
Russ Cox 28eba4877b fix "declared and not used" errors in non-test code.
R=r
DELTA=112  (6 added, 57 deleted, 49 changed)
OCL=34610
CL=34610
2009-09-14 17:20:29 -07:00