Commit graph

145 commits

Author SHA1 Message Date
Ashod Nakashian
66a76f644b wsd: enable logging with valgrind
Change-Id: I411f7de3d5764cd25af211f2dc77bf0e290adbc7
Reviewed-on: https://gerrit.libreoffice.org/36054
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-04-04 04:15:53 +00:00
Pranav Kant
453a452ff9 Makefile: Simplify and link zlib properly
Without this, online doesn't link, atleast for me. The problem seems to
be because in presence of target specific _LDFLAGS, AM_LDFLAGS is
ignored and it is only the latter where we are specifying ZLIB_LIBS.

Further, since the LDFLAGS values are same for all targets, we can
simplify here and rather use AM_LDFLAGS and remove all target specific
LDFLAGS.

Change-Id: I2f1c30c7f34b32c638a4ac60fab709b32f1e6c9a
Reviewed-on: https://gerrit.libreoffice.org/35959
Reviewed-by: pranavk <pranavk@collabora.co.uk>
Tested-by: pranavk <pranavk@collabora.co.uk>
2017-03-31 09:17:56 +00:00
Michael Meeks
ae0dba1088 Cleanup prctl / gettid system-call thrash on logging.
Makes the strace look much prettier.
2017-03-30 18:14:40 +01:00
Michael Meeks
a4ac00d854 Add zlib cflags and libs to configuration. 2017-03-30 12:09:12 +01:00
Andras Timar
11fc3a0d02 package debian/ files and make them generic
Change-Id: Ia060b7d83c659db0354a5a1438b12bebaee45e03
2017-03-20 23:29:16 +01:00
Andras Timar
271a4cce2f add loolwsd.spec to dist tarball
Change-Id: I919c5a1a41a16dfd1806390865ed840a652cf9e2
2017-03-20 23:29:15 +01:00
Andras Timar
2cf1f22439 Use LO_PATH instead of hardcoded path as config default
Change-Id: I0d6ce9e7938e2521e764978526fe2d9ce632c992
2017-03-20 23:29:14 +01:00
Michael Meeks
e7ebe0fdaa remove obsolete Poco headers, and Poco SSL pieces. 2017-03-16 18:03:23 +00:00
Andras Timar
8541cd1e46 add loolkitconfig.xcu to dist tarball
Change-Id: Icca000db16fca09ba2769dee8cb18e847496d48c
2017-03-14 16:04:10 +01:00
Andras Timar
15009c2a10 add ServerSocket.hpp to dist tarball
Change-Id: I7f6241094580dae2212dfdf01999abaeeb49cf1f
2017-03-14 15:40:16 +01:00
Andras Timar
5c94fa35c4 add LOOLWebSocket.hpp to dist tarball
Change-Id: I997290c8af437c06bcacca49dc167533ab7917cf
2017-03-14 15:16:54 +01:00
Michael Meeks
1f5b7b6def Include config layer to override kit config simply.
The config is read once during the forkit startup. Add a read-only
user configuration layer, and also disable config writing: no
writable user config.
2017-03-11 21:47:05 +00:00
Pranav Kant
eb9c0fa619 Do not create tags file for loleaflet
Change-Id: I0a2103bc4550d6deacddd1bfc07a23a3cf317d07
2017-03-10 17:29:44 +05:30
Jan Holesovsky
4ba2325c81 Move Replay.hpp to headers.
Change-Id: Id65e81ce2b8a9b77d910524a00d9f42164365ab2
2017-03-10 10:47:44 +01:00
Ashod Nakashian
76e96c92c8 nb: SocketPoll is now a thread object
Change-Id: I01d13292f0b97a9ebd1ccdef9e41fec46bfa0b11
2017-03-10 10:47:43 +01:00
Michael Meeks
20f15d4001 Switch Prisoner socket handling to use the SocketPoll.
Kills the Poco ThreadPool usage, and significantly improves debuggability.
2017-03-10 10:47:43 +01:00
Michael Meeks
fa6b756346 signal handling: keep track of all socket poll wakeups & wakeup.
Instead of waiting for polls to timeout; wake them up.
2017-03-10 10:47:42 +01:00
Ashod Nakashian
9bf8720d2b nb: SSL socket support in wsd
Change-Id: I21e8b2d04caf7da872fe07b4950b02a8c52a3552
2017-03-10 10:47:40 +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
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
Ashod Nakashian
18b131f30d nb: more consistent filenames
Change-Id: I2f1ff0b18080d469dc68b75ea0d7b9ddf5ea7d57
2017-03-10 10:47:39 +01:00
Ashod Nakashian
fe5545d591 nb: websocket echo test
The new test sends data of of 1 byte to
N bytes and expects the exact same data
returned in response.

This tests both buffering sizes and
websocket frames.

Change-Id: Ic6232b4e899d82d90a0ee7c96e4852ffaaf8e958
Reviewed-on: https://gerrit.libreoffice.org/34441
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-03-10 10:47:38 +01:00
Ashod Nakashian
8dd115a419 nb: more SSL initialization
Multi-threading support.

Change-Id: I7233ca61f9a0dce5601b4de03a7ad3273acc0f3c
Reviewed-on: https://gerrit.libreoffice.org/34355
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-03-10 10:47:37 +01:00
Ashod Nakashian
62c4828af6 nb: add OpenSSL dependency and initialization
Change-Id: I0d369acbc95db5d2b678032632ac4edfa561cbad
Reviewed-on: https://gerrit.libreoffice.org/34354
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-03-10 10:47:37 +01:00
Michael Meeks
8f1ae36c8a First cut at a Poco based client. 2017-03-10 10:47:36 +01:00
Ashod Nakashian
41f58f4b4d nb: add new loolnb program
Change-Id: Ib08ff3cdc037876e9c53b87603140b3c603ee916
2017-03-10 10:47:35 +01:00
Andras Timar
7582f6bd74 do not install self-signed ssl cert and its private key 2017-02-28 22:53:24 +01:00
Andras Timar
71b8ebb72d do not package loolwsd_fuzzer 2017-02-28 14:11:41 +01:00
László Németh
0e4bc1c98f loolwsd: add Message.hpp/Replay.hpp to dist tarball
Change-Id: Ibcb584a877ed7290495d12c8bf5b43a96f36332f
2017-02-20 19:28:16 +01:00
Jan Holesovsky
ee79577960 fuzzer: Add a dummy LibreOfficeKit implementation.
This just returns empty values (or does nothing), instead of calling the real
LibreOffice.

Change-Id: Ie6fe0b554056ba73067a76c22067f088e1346b59
2017-02-08 11:25:21 +01:00
Jan Holesovsky
6dd581f635 fuzzer; Added --fuzz param that takes a looltrace file as input.
To perform one fuzzing iteration, use something like:

  ./loolwsd_fuzzer --config-file=loolwsd.xml --o:lo_template_path="/opt/libreoffice/instdir" --o:storage.filesystem[@allow]=true --fuzz=/tmp/looltrace

Change-Id: I27210d55a65f75e7d51e05c2f5f999acb758c4b1
2017-02-08 08:35:13 +01:00
Jan Holesovsky
0dac1c4321 fuzzer: Compile a separate binary that contains both loolwsd and loolforkit.
Change-Id: I158e4b19d0929de03f09645c106aebfdbc44ea74
2017-02-07 13:27:14 +01:00
László Németh
57abb860f4 add alternative Poco library search path for loolforkit and loolmount
These executables are binaries with Linux capabilities, in which case
LD_LIBRARY_PATH is ignored. As a workaround, we can use rpath to support
the alternative Poco library path of a "classic" snap package.

(cherry-picked from commit 74bc911efbf4882f389a49c8e627e7e8057d4a4b)

Change-Id: I23c1d58cce64875abb9629943bfffd7ea633b2bc
Reviewed-on: https://gerrit.libreoffice.org/33705
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
2017-02-01 14:23:51 +01:00
Ashod Nakashian
c789fe901b wsd: kill PrisonerSession
Change-Id: I7041f79038c377b107b46285278b70236b87f6ac
Reviewed-on: https://gerrit.libreoffice.org/33434
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2017-01-23 05:55:33 +00:00
Ashod Nakashian
fe38e0e1e6 loolwsd: per-socket dedicated sending thread
To avoid degrading performance for everyone
because of a single slow/bad connection, we
send data to clients each in its own thread.

Change-Id: I6f980c25a404c4d05bcdb1979849ea3d2776c7b9
Reviewed-on: https://gerrit.libreoffice.org/31984
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-12-14 04:21:20 +00:00
Pranav Kant
b3db321e85 Unify loleaflet's make with top level make
Top level make would now build loleaflet too if necessary.

Respect value of ENABLE_DEBUG and if present add debug-info to
generated js bundles too.

Add new rule, clean-local in loleaflet.

Change-Id: I3a9b727824f2877fc72719a8bfdeebed5448cb7d
2016-12-12 17:56:58 +05:30
Ashod Nakashian
0b42af6d8d loolwsd: move SenderQueue to wsd
Change-Id: I33af4d1b2bbf0305cbc5fa6f05266d126f1bb803
Reviewed-on: https://gerrit.libreoffice.org/31884
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-12-12 05:20:43 +00:00
Ashod Nakashian
233cb94eff loolwsd: SenderQueue to hold messages to send to clients
This adds SenderQueue and a wrapper of messages to
send back to clients.

Currently no threading takes place, but the messages
are pumped through the queue nonetheless.

Change-Id: Id9997539c0a2a351cbf406f649c268dd3643e88e
Reviewed-on: https://gerrit.libreoffice.org/31883
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-12-12 05:19:04 +00:00
Andras Timar
d4286d9d48 loolwsd: add SpookyV2.h to dist tarball 2016-12-06 14:47:48 +01:00
Miklos Vajna
752372a2b0 IoUtil: remove never read write of 'n'
Change-Id: I2dfd85696b39ae1f1c7bbc33cec544bc04f980ac
2016-11-28 09:11:11 +01:00
Ashod Nakashian
47fa3b1b10 loolwsd: use a better hash function for png caching
We need a fast and good (high avalanche properties)
hash function for the png caching to avoid collissions
(even in the very limited samples we have, since tiles
are likely to have patters, such as all 0's and all 1's
etc.).

Bob Jenkins's public domain SpookyV2 is used here.
It has great avalanache properties and is fast at
~3-bytes / cycle for large messages.

Only trailing whitespace was removed from original
sources and 4 tabs converted to spaces.

Change-Id: Ife57237321625c836d85c894d939fd04a8f577bb
Reviewed-on: https://gerrit.libreoffice.org/31292
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-11-28 05:00:37 +00:00
Andras Timar
0f2e5ef3fe loolwsd: add common/FileUtil.hpp to tarball 2016-11-25 12:58:13 +01:00
Andras Timar
3e98b1d139 loolwsd: add common/SigUtil.hpp to tarball 2016-11-25 12:56:04 +01:00
Michael Meeks
c1a398977f Adapt makefiles, includes etc. to new locations. 2016-11-25 09:58:57 +00:00
Michael Meeks
cca657c8f2 Apply the pre-branch rename script to re-organize the source. 2016-11-25 09:58:48 +00:00
Renamed from loolwsd/Makefile.am (Browse further)