Commit Graph

165 Commits

Author SHA1 Message Date
Robert Carlsen
ed23d99d6f fix panic where closenotify was called from wrong goroutine
Previously, this was the result when running a test with go1.6rc2:

    go test github.com/ipfs/go-ipfs/commands/http
    panic: net/http: CloseNotify called after ServeHTTP finished

    goroutine 19 [running]:
    net/http.(*response).CloseNotify(0xc8202ca1a0, 0x0)
        /home/r/go/src/net/http/server.go:1533 +0x9d
    github.com/ipfs/go-ipfs/commands/http.internalHandler.ServeHTTP.func2(0x7f42c9d1d180, 0xc8202ca1a0, 0x7f42c9d66e90, 0xc8200f0380, 0xc8201d40d0)
        /home/r/src/github.com/ipfs/go-ipfs/commands/http/handler.go:143 +0x39
    created by github.com/ipfs/go-ipfs/commands/http.internalHandler.ServeHTTP
        /home/r/src/github.com/ipfs/go-ipfs/commands/http/handler.go:147 +0x49d
    FAIL	github.com/ipfs/go-ipfs/commands/http	0.013s

I had also encountered this panic when trying to use the webui.

License: MIT
Signed-off-by: Robert Carlsen <rwcarlsen@gmail.com>
2016-02-08 15:49:58 -06:00
Jeromy Johnson
5a0b8023be Merge pull request #2256 from ipfs/feat/gx-libp2p
vendor libp2p with gx
2016-02-05 16:52:02 -08:00
Jeromy Johnson
b11abe283b Merge pull request #2267 from rht/wire/ctx-http-request-2
Directly wire ctx into http request
2016-02-04 10:24:26 -08:00
Jeromy
366d7db3d3 add command to view active api requests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-02-01 15:44:43 -08:00
Jeromy
0e8a6700f9 correct go-log dep
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:10 -08:00
Jeromy
0e312f5caf initial vendoring of libp2p outside of the repo with gx
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-30 09:34:06 -08:00
rht
72e98deb93 Cleanup http client Send
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-30 10:22:46 +07:00
rht
45999946be Directly wire ctx into http request
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-30 10:19:27 +07:00
Juan Benet
a2b0287a5f Merge pull request #2141 from Kubuxu/patch-1
Add Server field in HTTP API response header
2016-01-21 23:31:25 -08:00
rht
b9706815b3 Fix SetAllowedOrigins
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-21 10:55:38 +07:00
Jakub Sztandera
981b389a04 Add Server field in HTTP API
Resolves #625
Included in tests.

License: MIT
Signed-off-by: Jakub (Kubuxu) Sztandera <kubuxu@gmail.com>
2016-01-20 18:30:39 +01:00
Jeromy
9c641f9906 cleanup multipart
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
a9d6575b7c fix tests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
d892661f3e Flatten multipart file transfers
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
rht
743f3edcbb strings.Split -> path.SplitList
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-12 08:22:55 -08:00
rht
ffd859232d Replace strings.Join(elms, "/") with path.Join(elms)
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
6faa70ee59 implement ipfs files command
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2016-01-12 08:22:55 -08:00
Jeromy
8711c6635d make opt skip map a global
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 05:47:33 -08:00
Jeromy
cfb1a69184 cleanup http client code
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 04:18:56 -08:00
Jeromy
8ad1141436 fixup panic catching in http handler funcs
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-28 04:18:56 -08:00
rht
aabf80723d Move api version string to repo config
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-12-28 03:48:50 -08:00
rht
0123971118 Move api version check to header
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-12-28 03:48:50 -08:00
Jeromy
74b8a0ffaf fix tests
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-12-06 15:31:02 -08:00
Jeromy
bdc1b27c51 hard code things
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-30 14:43:37 -08:00
Jeromy
2f5563b3c0 fix log hanging issue, and implement close-notify for commands
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-05 15:57:28 -08:00
Jeromy
94bdce63a7 vendor logging lib update
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-11-05 15:57:21 -08:00
Jeromy
bb9493ac7c content type on command responses default to text
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-29 02:11:09 -07:00
Jeromy
c023d187b5 update code to use new logging changes
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-27 11:04:56 -07:00
Jeromy
4470826fe2 fix streaming output to flush per write
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-21 14:51:03 -07:00
Juan Benet
27eece3e81 Merge pull request #1835 from miolini/master
fix races in http cors
2015-10-20 12:47:06 -07:00
Artem Andreenko
4555085844 fix races in http cors
License: MIT
Signed-off-by: Artem Andreenko <mio@volmy.com>
2015-10-13 01:09:55 +03:00
Jeromy
e89f7b8ded use go's built in handling of trailers and dont do custom chunking
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

use go1.5 syntax to ensure builds on older versions fail

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>

fix t0230

License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-11 23:04:41 -07:00
Jeromy
8f0623255d replace imports with absolute path instead of using symlink
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-10-03 14:30:50 -07:00
Cayman Nava
9634b25b63 remove hard-coded json content-type for streaming http output
There was a stale assumption that streaming output from a channel would
always be json.
This commit removes that code, allowing Content-Type to appropriately be
set like other, non-channel-streaming commands.

License: MIT
Signed-off-by: Cayman Nava <caymannava@gmail.com>
2015-09-24 19:13:29 -07:00
Jeromy
e5a2896c0e extract logging
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-14 17:35:50 -07:00
Juan Benet
006cd5fe25 Merge pull request #1627 from ipfs/feat/symlinks
implement symlinks in unixfs, first draft
2015-09-02 22:36:50 +02:00
Jeromy
d85d61c968 recover and print panics that happen in API server
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-02 11:12:13 -07:00
Jeromy
4bcacc5936 address most of CR comments
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-09-02 10:12:04 -07:00
Jeromy
d993bc04d6 implement symlinks in unixfs, first draft
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-08-30 13:33:42 -07:00
rht
d32177cda0 Make sure ctx in commands are derived from req.Context
License: MIT
Signed-off-by: rht <rhtbot@gmail.com>
2015-08-23 19:35:03 +07:00
Juan Batiz-Benet
978c9fa16f cmds/add: use dagutils.Editor, like patch
This changes the pin behavior. It uses the filenames given through
the api, and allows files to be streamed faltly (not a hierarchy),
which is easier for other things (like vinyl in node-ipfs-api land).
Files can also be entirely out of order, and the garbage intermediate
directories will not be pinned (gc-ed later).

The changes also mean the output of add has changed slightly-- it
no longer shows the local path added, but rather the dag path
relative to the added roots. This is a small difference, but changes
tests.

The dagutils.Editor creates a lot of chaff (intermediate objects)
along the way. Wonder how we might minimize the writes to the
datastore...

This commit also removes the "NilRepo()" part of the --only-hash
mode. We need to store at least in an in-mem repo/datastore because
otherwise the dagutils.Editor breaks.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-08-12 08:24:06 +02:00
Juan Batiz-Benet
3ee83a7c5e fix cors: defaults should take the port of the listener
need to do it this way to avoid VERY confusing situations where
the user would change the API port (to another port, or maybe even
to :0). this way things dont break on the user, and by default,
users only need to change the API address and things should still
"just work"

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-08-02 08:16:51 +02:00
Juan Benet
8a75c755d4 Merge pull request #1539 from ipfs/log-api-route
fix log tail command
2015-07-29 15:22:49 -07:00
Jeromy
082c147bbe should fix issue where 'read on closed body' error was leaking down
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-29 13:26:39 -07:00
Jeromy
b10e26a429 cancel contexts when client disconnects
License: MIT
Signed-off-by: Jeromy <jeromyj@gmail.com>
2015-07-29 11:02:10 -07:00
Juan Batiz-Benet
8f35c3bcd9 more serious CORS tests.
this commit introduces more serious CORS tests that check
status response codes, and run real HTTP requests.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:11 -07:00
Juan Batiz-Benet
d5f94be474 fix API handler to respect referer + exit on CORS
this commit makes the API handler short circuit the request if the
CORS headers say its not allowed. (the CORS handler only sets the
headers, but does not short-circuit)

It also makes the handler respect the referer again. See security
discussion at https://github.com/ipfs/go-ipfs/issues/1532

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:11 -07:00
Juan Batiz-Benet
5d9ee59908 address CR comment re interface in cmds http handler
https://github.com/ipfs/go-ipfs/pull/1529#discussion_r35662230

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:10 -07:00
Juan Batiz-Benet
4a571b099b implement arbitrary HTTP header support
this commit adds the ability to specify arbitrary HTTP headers
for either the Gateway or the API. simply set the desired headers
on the config:

    ipfs config --json API.HTTPHeaders.X-MyHdr '["meow :)"]'
    ipfs config --json Gateway.HTTPHeaders.X-MyHdr '["meow :)"]'

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:10 -07:00
Juan Batiz-Benet
c633e2b575 cmds/http: remove referrer check
it used to be here for a CSRF check. but we now have CORS checks.

License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-28 23:08:09 -07:00