Ashod Nakashian
46ccfb165f
nb: testLoad -> testLoadSimple
...
Change-Id: Ief4292f3c7bf8cd6866a83518998d250ebc03355
2017-03-10 10:47:40 +01:00
Ashod Nakashian
576bd3ab4d
nb: write WS frame to socket
...
We need to flush writes to socket as soon as
ready to either send or, if buffers are full,
to poll for write.
With WebSocket we do this after writing a frame.
Change-Id: I1bc276e678375a84079e69624414a16271f25351
2017-03-10 10:47:40 +01:00
Ashod Nakashian
9efb14def7
nb: pass the WS frame type explicitly
...
Change-Id: Iaf4d832af4313b629701c7f07832dcaaf3e53c20
2017-03-10 10:47:40 +01:00
Ashod Nakashian
32b7d5ceee
nb: WebSocketSender used to send back loading progress
...
Change-Id: I3b09c44c4d64db39217d364ebff0a647a82457f4
2017-03-10 10:47:40 +01:00
Ashod Nakashian
5b944cf99b
nb: don't own your owner
...
Change-Id: Ia74dbd3441b8b1f682091ba3d973dd33b2599309
2017-03-10 10:47:40 +01:00
Ashod Nakashian
66bc78aa33
nb: differentiate between incomplete request and processing failure
...
Change-Id: Ieffae987c9008a92d8040f0c4315afe6625715c4
2017-03-10 10:47:40 +01:00
Ashod Nakashian
221059cd6b
nb: move WebSocket upgrade to the ClientRequestDispatcher
...
Change-Id: Id11b139563a55e50d3f7e216e2231d79e07015b3
2017-03-10 10:47:40 +01:00
Ashod Nakashian
73f9001004
nb: remove HTTP handling from WebSocketHandler
...
WebSocketHandler now supports upgrading given
the original HTTP header.
Change-Id: Ifb3b8fee9aef8015548a625bbb88e75f4e97255f
2017-03-10 10:47:40 +01:00
Ashod Nakashian
6b28ea0c12
nb: autosave document on client disconnection
...
Change-Id: Ic75a9796a1cca0bf919fb2dcbe24c504e447e7f1
2017-03-10 10:47:40 +01:00
Ashod Nakashian
3b3b61af30
nb: create and assign ClientSession to DocumentBroker
...
Change-Id: I684007363de6e25d78f9f1c9236fd623325da509
2017-03-10 10:47:40 +01:00
Ashod Nakashian
3cff4f69c5
nb: find existing DocumentBroker or create a new one
...
Change-Id: I4e15254a90bc00a77341e8dd85353aa5d68a14e0
2017-03-10 10:47:40 +01:00
Ashod Nakashian
e89e5fb978
nb: create DocumentBroker and attach to ChildProcess
...
Change-Id: I751ac0b7599400fc9527455f95361cea447d0c69
2017-03-10 10:47:40 +01:00
Ashod Nakashian
1d47d3af8d
nb: client request handler outline
...
Change-Id: I40d403099c7150c5d6365399adbd05ff2c7c386b
2017-03-10 10:47:40 +01:00
Ashod Nakashian
e047f55e3c
nb: SessionID and connection throttling support
...
Change-Id: Ifb871ed42d314038e17d02512c8f3c31c1ab54ad
2017-03-10 10:47:39 +01:00
Ashod Nakashian
7fdb7a1861
nb: StreamSocket takes ownership of SocketHandler instance
...
Change-Id: Ica99dc8afbcca71c8d79eecb276ba19f6f01fa57
2017-03-10 10:47:39 +01:00
Ashod Nakashian
d9394d7000
nb: Our SSL manager conflicts with Poco's
...
Change-Id: Ieed6eecabc60997b73636ab6c13bc5ca3682008a
2017-03-10 10:47:39 +01:00
Ashod Nakashian
5e79581952
nb: StreamSocket must always have a handler
...
And also emits disonnection event.
Change-Id: Ibb60c6fca55c58b886f5ff77c6e22769a128e950
2017-03-10 10:47:39 +01:00
Ashod Nakashian
6d244129b3
nb: more request type handlers
...
Change-Id: I89ee4d6bf675d2e945199ed63a115f031aec580f
2017-03-10 10:47:39 +01:00
Ashod Nakashian
6dc884160b
nb: add ClientSession handler
...
Change-Id: I5ed2003f07bb5173ea37420d4939cc93b1aef1d8
2017-03-10 10:47:39 +01:00
Ashod Nakashian
3602526f5b
nb: add request-specific handlers
...
Change-Id: I219fc9ef23c6c9e646dd609bb3ece2607ca78828
2017-03-10 10:47:39 +01:00
Ashod Nakashian
d9d6bfdb80
nb: new ClientRequestDispatcher added
...
Requests need to be introspected and
dispatched to the appropriate handler.
File serving, admin, POST request, etc.
are all valid types that we need to support.
But of course the primary one is the WS request
to load to and interact with a document.
Change-Id: Id2c3214deb6b54b06b2735ec3370f09ed7a1ae51
2017-03-10 10:47:39 +01:00
Ashod Nakashian
510c499e70
nb: stop server threads on termination flag
...
Change-Id: I2eb0bed49b289b96c4c82687ee7b949c3162de31
2017-03-10 10:47:39 +01:00
Ashod Nakashian
2e651f4199
nb: cout -> logger
...
Change-Id: I44c6d83efc7aef50cb793fc6e88da32e73797c74
2017-03-10 10:47:39 +01:00
Ashod Nakashian
607f7214ba
nb: simplify hardcoded test document path
...
Change-Id: I0e5a078401d4b0be7a2504c5a1a3909ef287d198
2017-03-10 10:47:39 +01:00
Ashod Nakashian
c6fe2452cf
nb: take DockBrokers lock where required
...
Change-Id: I26a1a7f07b4f902dd9f7bbe7bf5eb2571a57099b
2017-03-10 10:47:39 +01:00
Michael Meeks
37e9b25882
Add thread-safe cross-thread callbacks, split out wakeup and simplify
2017-03-10 10:47:39 +01:00
Michael Meeks
2a5823557e
Add initial support for socket timeouts.
2017-03-10 10:47:39 +01:00
Michael Meeks
3e9f05d071
Use pseudo-random-ness in test to make strace cleaner.
2017-03-10 10:47:39 +01:00
Jan Holesovsky
a1a46c240e
nb: Use the non-blocking socket in the loolwsd.
...
This so far only builds, but I did not even try to run it yet.
Change-Id: Iceacb5fc5c8994726508e8ea00bd495d758391a8
2017-03-10 10:47:39 +01:00
Jan Holesovsky
ba9239441b
nb: Comment out the POCO server in loolwsd.
...
Change-Id: Ie4f276a6f1c8f3d132b23bb2111466b38f4fb581
2017-03-10 10:47:39 +01:00
Jan Holesovsky
0696082653
Clarify the PrisonerRequestHandler documentation.
...
Change-Id: Ie3750b17ce4f2d99b80f39f3c0e1374f3e9c1a5a
2017-03-10 10:47:39 +01:00
Michael Meeks
5b7e12c16e
Cleanup logging, and add message tracing / dumper.
2017-03-10 10:47:39 +01:00
Jan Holesovsky
205a1453d3
nb: Moved the WebSocketHandler to an own header & cpp.
...
The cpp is there to keep the header free from the POCO dependency.
Change-Id: I2202c4ed403084ec1ed40001e10b1ec4fc226f7b
2017-03-10 10:47:39 +01:00
Jan Holesovsky
a2d457d778
nb: Abstract WebSocketHandler.
...
We don't need a special "WebSocket" class, as websocket itself is just an
upgrade of an existing socket / connection, and trying to come up with a
concept where a Socket class magically upgrades to a WebSocket class would be
messy.
So let's have just a WebSocketHandler, that communicates over a StreamSocket
or SslStreamSocket, and be done with that :-)
Change-Id: I449e4d662fbe2c5b1789e308053e4a71376fe481
2017-03-10 10:47:39 +01:00
Jan Holesovsky
18876119ad
nb: SimpleResponseClient is a client, not a socket I guess.
...
Introduce the appropriate interface instead of the template, so that we can
de-couple the ResponseClient from the Socket itself.
Change-Id: I21892bbce5d83a18ca580a25cfc2efbb05b08705
2017-03-10 10:47:39 +01:00
Jan Holesovsky
72666d5625
nb: Let's avoid too much abstraction.
...
Change-Id: If349e6273580b09386ad0a89467a99c6c2c0d4ec
2017-03-10 10:47:39 +01:00
Ashod Nakashian
69e4123173
nb: de-templatize ServerSocket
...
Change-Id: I5680bbf24ade807e34f67f7fce4698ffe5364cb2
2017-03-10 10:47:39 +01:00
Ashod Nakashian
9c595755ff
nb: move SslStreamSocket to own file
...
Change-Id: I4b6f2b0b4be3fc595dfeafc8e2b6d3e73694bd49
2017-03-10 10:47:39 +01:00
Ashod Nakashian
18b131f30d
nb: more consistent filenames
...
Change-Id: I2f1ff0b18080d469dc68b75ea0d7b9ddf5ea7d57
2017-03-10 10:47:39 +01:00
Ashod Nakashian
393071573b
nb: write while output buffer not empty
...
Change-Id: I257b72365b4711fd7ffc8bbda5a21d501828575b
2017-03-10 10:47:39 +01:00
Ashod Nakashian
cff706861f
nb: failing to drain the wakeup pipe is no error
...
Change-Id: Ie7a75f96b655cb7861d1bae539d78cbf702cf334
2017-03-10 10:47:38 +01:00
Ashod Nakashian
fafd8a370e
nb: throw when we run out of resources
...
Change-Id: I12fd236bffd50dbf7a1bb9eb4c665ea9d9d545e4
2017-03-10 10:47:38 +01:00
Ashod Nakashian
ab82db72ee
nb: read to the end of the full buffer
...
Change-Id: I94264f748ac974f636ab6d21a5ccbb77532136f6
2017-03-10 10:47:38 +01:00
Ashod Nakashian
c37079fcee
nb: assert on trying to write empty data
...
Change-Id: Ie18b5d00acf769a112b47d45f8c7783fb5746acf
2017-03-10 10:47:38 +01:00
Ashod Nakashian
b72dd13cb0
nb: fixme for HTTP handling
...
Change-Id: I4364e2e4cd3233134c026890ce690abaf46b961d
2017-03-10 10:47:38 +01:00
Ashod Nakashian
28bfb5547b
nb: comment to replace ConsoleCertificateHandler
...
ConsoleCertificateHandler will block on stdin
when a certificate error occures. This is hardly
helpful to users. Although in a server environment
this is likely to go to the journal, we should
properly log it and shutdown, rather than hang
waiting for the unlikely console input.
Change-Id: I54bb38ec60f443c579ef20dbb759941fae182e5b
2017-03-10 10:47:38 +01:00
Ashod Nakashian
fa97687485
nb: safer endianness conversion
...
Change-Id: I63977e6e99119fef2a61911d07d645a606d4c443
2017-03-10 10:47:38 +01:00
Michael Meeks
86185a2544
Restore plain HTTP, and add 'ssl' parameter to loolnb.
2017-03-10 10:47:38 +01:00
Ashod Nakashian
bb5f3b5c98
nb: properly shutdown and cleanup SSL
...
Change-Id: Idd39851775e16c62d6192e08c9058cd9fb40104f
Reviewed-on: https://gerrit.libreoffice.org/34454
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-03-10 10:47:38 +01:00
Ashod Nakashian
a8f5923214
nb: cleanup some logging
...
Change-Id: I28e211e5a727ea308824651f417a91d7b388a30d
Reviewed-on: https://gerrit.libreoffice.org/34452
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-03-10 10:47:38 +01:00