Commit Graph

88 Commits

Author SHA1 Message Date
Min RK
e5b135a905 debugging websocket connections
- add debug statement at the very beginning of a web socket request
- add debug statement in open, indicating that the connection has been accepted
- add timeout, so failed or slow kernel_info doesn't cause the request to never get a response
- don't send kernel_info_request before authenticating the request

The last one required some icky coroutine shenanigans,
because of our subclass structure, but it should work fine.
2014-10-29 09:17:52 -07:00
MinRK
94d6196ef9 add websocket workarounds for tornado 3
WebSocketHandler.get is new in tornado 4
2014-10-26 19:06:48 -07:00
MinRK
769fe38789 cache kernel_info reply for protocol adaptation
WebSocket connections will not open until kernel_info is retrieved,
removing a race condition waiting for the reply to indicate adaptation,
which could result in a v5 message being sent to a v4 kernel.
The reply is cached, so that it need not be requested on each new connection.
2014-10-26 14:48:55 -07:00
MinRK
8c743d304f unsigned ints for offsets
because signed ints for sizes is icky
2014-10-15 12:23:33 -07:00
MinRK
3de7e9bd74 test websocket-friendly binary message roundtrip
Python-side
2014-10-15 12:23:33 -07:00
MinRK
3693ac83ae support binary message from javascript 2014-10-15 12:23:32 -07:00
MinRK
c9c131ebf9 s/unserialize/deserialize 2014-10-15 12:23:32 -07:00
MinRK
3a1c845f96 support buffers in comm messages
- add buffers arg to comm Python api
- support binary websocket messages when buffers are present
- reimplement utf8 in javascript, because javascript is the best
2014-10-15 12:23:31 -07:00
MinRK
97f7116624 allow session_id to be undefined when starting kernel channels 2014-10-12 14:55:01 -07:00
Min RK
1b5874ac65 Merge pull request #6629 from minrk/wscookie
remove on_first_message authentication
2014-10-12 13:25:52 -07:00
Bussonnier Matthias
76a54f0a82 Have /api return the IPython version
return version as a string, to be consistent with other APIs.

closes #6647
2014-10-10 19:28:04 +02:00
MinRK
624f0071a2 remove on_first_message authentication
in ZMQStreams. No need for weird, special first message.

- use regular cookie auth
- use url param for session id
2014-10-09 15:12:20 -07:00
MinRK
4bc339bd95 better log messages when rejecting cross-origin requests 2014-09-16 15:38:41 -07:00
MinRK
d06e337881 only compare host:port in Websocket.check_origin
don't include protocol

- matches tornado's own behavior
- avoids incorrect 403 in http-behind-https proxy situations.
2014-09-15 17:17:08 -07:00
Richard Everson
be80e62340 Check time of last ping before timing out a missing pong. 2014-09-14 23:22:05 +01:00
Thomas Kluyver
7e681c1c53 Merge pull request #6302 from minrk/ws-heartbeat-timeout
close websocket connections on ping/pong timeout
2014-09-04 15:21:25 -07:00
MinRK
568034c349 use write_error instead of get_error_html
get_error_html is removed in tornado 4.0
2014-08-15 13:41:13 -07:00
MinRK
b3b168648a close websocket connections on ping/pong timeout
we recently added ws pings for keep alive,
and we can now use the longs to close dead connections.

This can apparently happen when connections are not closed cleanly,
e.g. on VPNs.

Setting ws_ping_timeout = 0 disables the ping mechanism altogether.
2014-08-13 11:32:25 -07:00
MinRK
fae77bd133 remove unused project_dir 2014-07-31 11:57:38 -07:00
MinRK
d4fe081fe5 move /files/ redirect to base handlers
and reuse it in /nbconvert/html/…

closes #6137
2014-07-31 11:57:37 -07:00
MinRK
0c0eb43719 teach contents service about non-notebook files 2014-07-31 11:57:36 -07:00
MinRK
6cce477e07 rename notebooks service to contents service
minimal functional changes, committing because tests are passing.
2014-07-31 11:57:36 -07:00
Thomas Kluyver
a5b145e5a2 Merge pull request #6139 from minrk/wsping
send ping every 30 seconds to keep websockets alive
2014-07-24 18:55:18 -07:00
MinRK
52840fcbf8 send ping every 30 seconds to keep websockets alive 2014-07-23 16:17:07 -07:00
MinRK
579f5101f0 restore websocket_url configurable
allows ws to be handled via separate proxies,
as appears to be the case on OpenShift and some other hosting services.
2014-07-22 14:43:40 -07:00
rgbkrk
88e52b2746 Only allow iframe embedding on same origin. 2014-07-12 00:20:24 -05:00
MinRK
1edc97e34a s/cors_/allow_/
add notes about Tornado 4, and comments, updates per review
2014-06-30 10:40:31 -07:00
MinRK
acf0da01d9 make CORS configurable
allows setting CORS headers.

- cors_origin sets Access-Control-Allow-Origin directly
- cors_origin_pat allows setting Access-Control-Allow-Origin via regular expression, since the header spec itself doesn’t support complex access[1]
- cors_credentials sets Access-Control-Allow-Credentials: true

To allow CORS from everywhere:

    ipython notebook —NotebookApp.cors_origin='*'
2014-06-27 17:47:56 -07:00
MinRK
de0a7d7850 use utils.log.get_logger where appropriate 2014-06-24 20:16:46 -07:00
Thomas Kluyver
3b92c7c24f Merge pull request #6011 from minrk/no-jsonapi
only use zmq.jsonapi when talking to zmq sockets
2014-06-18 14:45:31 -07:00
Min RK
99f52dee68 Merge pull request #5827 from takluyver/kernelspec-rest-api
Kernel specs REST API
2014-06-18 13:53:41 -07:00
MinRK
44d2a5b62a only use zmq.jsonapi when talking to zmq sockets
use stdlib json otherwise
2014-06-18 13:41:40 -07:00
Steven Anton
f937045395 Set kernel_id before checking websocket
If websocket attempt fails and cross origin attempt is detected, a HTTPError(404) error is raised. However, in the process of closing connections because of this 404 error, an unhandled Attribute exception (kernel_id not an attribute) is raised. Setting the kernel_id first avoids this.
2014-06-17 12:29:55 -07:00
MinRK
b06f382e9b interrogate kernel_info to get protocol version for adaptation 2014-05-09 12:04:08 -07:00
Thomas Kluyver
02fa348c69 Create REST API for kernel specs 2014-05-08 16:18:23 -07:00
MinRK
f824aee955 log error message when API requests fail 2014-04-23 12:41:27 -07:00
Paul Ivanov
d6f2dfefea log refusal to serve hidden files dirs 2014-03-03 12:35:37 -08:00
Matthias BUSSONNIER
a01c112b0f allow custom headers on all pages 2014-03-01 09:43:27 +01:00
MinRK
37cb0fbdee remove websocket url
websockets should follow the kernel URL

(normal behavior is unchanged, only unused configurability is removed)
2014-02-20 22:54:36 -08:00
MinRK
a184724bdb remove base_kernel_url 2014-02-11 21:26:10 -08:00
MinRK
e1e0b19a6a s/base_project_url/base_url/
deprecate NotebookApp.base_project_url
2014-02-08 23:09:24 -08:00
Brian E. Granger
eb9e0be218 Small refactoring of is_hidden to take root as default kwarg. 2014-02-05 16:43:11 -08:00
Brian E. Granger
0c794b5d2c 404 for hidden files to not revleal their existence. 2014-02-05 15:38:34 -08:00
Brian E. Granger
243392d810 Creating and testing IPython.html.utils.is_hidden. 2014-02-05 13:09:55 -08:00
Kyle Kelley
ddc9340a6a Handle variations of name for origin 2014-01-24 00:19:59 -06:00
Kyle Kelley
e06f501cd6 s/==/is/ 2014-01-22 21:12:08 -06:00
Kyle Kelley
7efc751d0e Name change to same_origin 2014-01-22 18:26:15 -06:00
Kyle Kelley
60ab030e52 Verify that headers are set, explicitly 2014-01-22 18:21:02 -06:00
Kyle Kelley
b12f002b35 Performing check only on open. 2014-01-22 18:16:06 -06:00
Kyle Kelley
345de4e674 Use *args, **kwargs, log.warn 2014-01-21 21:08:24 -06:00