Pranav Kant
c5aa122fcb
loolwsd: Create notification pipe
...
... and Admin and AdminModel containing all the required data
that we need to expose to Admin panel.
Admin processor will keep listening to any data on this
notification pipe and update AdminModel accordingly.
Change-Id: I0dd6f07ae60158733c34d17f53a35def70600513
Reviewed-on: https://gerrit.libreoffice.org/22780
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-03-03 03:34:47 +00:00
Tor Lillqvist
02913dcbfc
Use std:: consistently for cstdlib functions
2016-03-02 08:47:13 +02:00
Tor Lillqvist
73282c50d6
Make preinit the default. Turn off with LOK_NO_PREINIT
2016-03-02 08:26:15 +02:00
Tor Lillqvist
9d655cbcc0
Don't pretend this will work on anything except Linux
2016-02-29 14:25:12 +02:00
Tor Lillqvist
29a3f58f1a
The loolwsd program does not need any capabilities
...
So don't give it any then.
Remove the --uid option and related attempts to handle running loolwsd
under sudo, to be able to debug it. Now with loolwsd not having
capabilities, it should work fine to just run it under a debugger
normally. (For the loolbroker and loolkit processes, attaching to an
already started process is the way to debug.)
2016-02-29 14:13:19 +02:00
Tor Lillqvist
c25f819e83
Yoda naming avoid
2016-02-24 09:46:53 +02:00
Tor Lillqvist
72c6cb8980
No LibreOfficeKit used in this file
2016-02-24 09:46:53 +02:00
Tor Lillqvist
07dc25641d
Increase stylistic consistency
...
Sort #includes and using statements. Use 'using' consistently for all
Poco:: types. (I am not 100% convinced that using 'using' like done
here in loolwsd was a good idea after all. But at least let's be
consistent now that we do use it.)
2016-02-24 09:45:52 +02:00
Tor Lillqvist
32dc0a3c87
Don't ever attempt to handle the payload of CLOSE frames
2016-02-23 20:03:52 +02:00
Tor Lillqvist
7ced4adc5e
Just use "" instead of std::string()
2016-02-22 16:30:42 +02:00
Tor Lillqvist
b4387a535a
Bin some superfluous using declarations and includes, and actually use others
...
Sorry, could not resist. Obviously not very important.
In retrospect, maybe it would have been better to have as policy to
*not* use any 'using Poco::Foo'. Now there is an inconsistent mix of
writing out the complete type and using a 'using'. Plus copy-pasted
long lists of 'usings'. And of course, one should never have 'using'
in an include file. Oh well.
2016-02-22 11:37:47 +02:00
Henry Castro
ba47e28581
loolwsd: re-work UriToDocumentURIMap
...
This is not in synchronization with lokit process because
it is normal that lokit dies now.
2016-02-21 08:26:29 -04:00
Ashod Nakashian
13f9b7a2db
loolwsd: Storage Abstraction support
...
An abstract Storage abstraction class is added.
There will be a factory to instantiate concrete
implementation for a given backend.
For WebDAV and similar hosted backends, authentication
and authorization will be done by the implementation
with the help of the Auth abstraction.
Change-Id: I38ec5dad4c2c4ce16df30d65826df96751b10e2d
Reviewed-on: https://gerrit.libreoffice.org/22513
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:45:25 +00:00
Ashod Nakashian
d8df19d064
loolwsd: Authentication and Authorization support
...
An abstract class to request an access token, given
an authorization grant. The class should be
specialized for each authentication/authorization
type we support.
Currently it's not enabled in the code as it's
an early stage in developing an general API.
Change-Id: I4f2efd376d575640bd3e17c7257994020b11bbe8
Reviewed-on: https://gerrit.libreoffice.org/22512
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-19 21:44:55 +00:00
Ashod Nakashian
7aeeab46f8
loolwsd: Admin manager added with a sample stats command
...
Change-Id: I7d3c1a5ab573d20d285c1c184cfb88ace17991f8
Reviewed-on: https://gerrit.libreoffice.org/22430
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-17 15:30:02 +00:00
Henry Castro
a607159a8a
loolwsd: catch exception requestTermination
2016-02-16 17:25:51 -04:00
Henry Castro
9b4099c41c
loolwsd: check if the named pipes exists
2016-02-16 17:13:14 -04:00
Henry Castro
3ad641c7bd
loolwsd: check if the pipe path exists
2016-02-16 17:04:21 -04:00
Ashod Nakashian
90776a3c0d
loolwsd: control preinit vs fork using envars and disable bind-now
...
Change-Id: I63dffa18da69751ab72463bb64065d235d811db5
Reviewed-on: https://gerrit.libreoffice.org/22381
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-15 23:18:24 +00:00
Henry Castro
72db8ed63a
loolwsd: replace the random jail id for lokit process id
2016-02-13 19:01:03 -04:00
Henry Castro
75b552bf71
loolwsd: create named pipes workspace
2016-02-13 13:22:15 -04:00
Henry Castro
9e3d5c0337
loolwsd: ensure chroot jail every lokit process
2016-02-13 10:15:28 -04:00
Henry Castro
5848cff634
loolwsd: wait for loolbroker process to change state
2016-02-03 19:51:27 -04:00
Henry Castro
70ff592624
loolwsd: use strsignal
2016-02-03 18:08:16 -04:00
Henry Castro
661ae62259
loolwsd: exit when error no child process
2016-02-03 17:43:04 -04:00
Henry Castro
5fd2be332a
loolwsd: use EXIT_SOFTWARE to indicate internal error
2016-02-01 21:53:16 -04:00
Ashod Nakashian
f3b319ee7f
loolwsd: each HTTPServer has its params and skip failed child query
...
Change-Id: I41c730a935fd0d2e1e3181cced529d414c3aebb0
Reviewed-on: https://gerrit.libreoffice.org/22014
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-02 01:51:04 +00:00
Henry Castro
b477f41636
loolwsd: add fatal signals handler
2016-02-01 21:26:19 -04:00
Pranav Kant
7ffd4b45db
bccu#1468: handle 'nextmessage:' in prisoner -> master text frames
...
There are cases when prisoner would send huge text data but
without preceeding 'nextmessage' frames making the master throw
WebSocketException.
Also move the 'nextmessage' frame interpretation logic up in the
'else if' ladder to be able to detect and handle such huge text frames.
Change-Id: Ibe44b69f4ab75c1b8096648c6006316c88366e7c
Reviewed-on: https://gerrit.libreoffice.org/21835
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-01 05:09:35 +00:00
Ashod Nakashian
6f5afd92ba
loolwsd: fixed server thread-pool
...
TCPServer doesn't use the custom ThreadPool passed to it
to dispatch connections. This leads to starvation
when too many connections are initiated together.
Because we open an internal socket back to master, we
need to be able to dispatch two connections (two threads)
for each client connection.
Therefore, the default ThreadPool needs to have sufficient
capacity to grow. A new constant is added to define this
capacity and it is used to configure both the TCPServer
(which configures the default ThreadPool) and the customer
ThreadPool (used to host the actuall connection handler).
Change-Id: I49adc039aa99e9350b0defc4a5e141b77524992e
Reviewed-on: https://gerrit.libreoffice.org/21976
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-02-01 05:06:35 +00:00
Ashod Nakashian
a956c61b07
loolwsd: logging
...
Change-Id: Ie81dc0b890fd59d0073b812117762bb0aff0f579
Reviewed-on: https://gerrit.libreoffice.org/21933
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-30 15:43:07 +00:00
Henry Castro
faf2a57d19
loolwsd: eof broker pipe
2016-01-26 21:22:07 -04:00
Henry Castro
2baae1b324
loolwsd: simplify one loolbroker
2016-01-25 21:07:10 -04:00
Henry Castro
6b28433265
loolwsd: Log::warn when the thread pool is full.
...
When thread pool is full no more connections are accepted.
It is confused as a deadlock
2016-01-25 17:11:51 -04:00
Henry Castro
e3fd07ad0e
loolwsd: remove unnecessary inter process mutex
...
It is no longer needed becuase loolbroker handle connections
2016-01-25 12:26:22 -04:00
Ashod Nakashian
f9fd4c917a
loolwsd: refactored HTTP Request Handler
...
Change-Id: I84685910afa04664639ae674fd66ff888962387e
Reviewed-on: https://gerrit.libreoffice.org/21757
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-24 21:10:53 +00:00
Ashod Nakashian
b85b4423b0
loolwsd: break the wait on save-as queue and better failure handling
...
Change-Id: Ifee252b3c189ee0b1287bda891b38c5abddb7440
Reviewed-on: https://gerrit.libreoffice.org/21755
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-24 21:09:28 +00:00
Ashod Nakashian
9593ec5720
loolwsd: improved polling and pong with client
...
Change-Id: I17c4f7685d23b6e4c84a7f8b34fcb7dbcaf959f9
Reviewed-on: https://gerrit.libreoffice.org/21754
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-24 21:02:16 +00:00
Ashod Nakashian
55f2105f00
loolwsd: logging improvements
...
Change-Id: I77844a2b549c1f497c2d44f054169bf11d9227d8
Reviewed-on: https://gerrit.libreoffice.org/21752
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-24 21:00:34 +00:00
Jan Holesovsky
0c509e17c1
loolwsd: Fix /convert-to to handle filenames containing spaces.
2016-01-21 23:30:52 +01:00
Ashod Nakashian
dd374d8aec
loolwsd: disconnect command to gracefully shutdown a socket
...
Change-Id: I8beb4c14fc95bdb2a98c7e5da44408511bce5e28
Reviewed-on: https://gerrit.libreoffice.org/21683
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-21 16:05:55 +00:00
Ashod Nakashian
d310d3f3f5
loolwsd: proper ping handling by echoing
...
Change-Id: Ifc66ae1bc15d588d4613d87ab0fa19ec389b7615
Reviewed-on: https://gerrit.libreoffice.org/21682
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-21 16:04:26 +00:00
Ashod Nakashian
291b0aac67
loolwsd: don't ignore the last few bytes of a closed socket
...
Change-Id: Id6332857e49ccbacfa6e63b87a1ed570e9598147
Reviewed-on: https://gerrit.libreoffice.org/21680
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-21 16:03:29 +00:00
Ashod Nakashian
d2bde985cc
loolwsd: poll timeout of 500ms and handling priority events
...
Change-Id: Iadf449ee62700e1ac5da2be8c73c674657633808
Reviewed-on: https://gerrit.libreoffice.org/21679
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-21 16:02:04 +00:00
Ashod Nakashian
bccfd79d35
loolwsd: reset http request handler's thread name as it's reused
...
Change-Id: I62332e1d3018a7ff3cebe3982910792fa75d0c8f
Reviewed-on: https://gerrit.libreoffice.org/21676
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-21 15:45:30 +00:00
Ashod Nakashian
8e8e7c70c2
loolwsd: cleanup and correction of child signal handling
...
Change-Id: I8739e71a2180c970ba4b8eb3b1d4721ecf4268e9
Reviewed-on: https://gerrit.libreoffice.org/21670
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-21 15:42:24 +00:00
Pranav Kant
f429001ff9
loolwsd: Display version information on command line
...
Change-Id: Ie65c30574ca4cef619a224ec6df3501d6bda086a
Reviewed-on: https://gerrit.libreoffice.org/20847
Reviewed-by: jan iversen <jani@documentfoundation.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos@collabora.co.uk>
2016-01-19 16:36:00 +00:00
Miklos Vajna
c8ea8bcacd
loolwsd: handle WS messages split into multiple frames
2016-01-18 16:54:22 +01:00
Miklos Vajna
3cbdd9e3bd
MasterProcessSession: capitalize static members
2016-01-18 09:43:49 +01:00
Miklos Vajna
1977f07d5c
paste: handle data containing newlines
...
By changing the protocol, so that instead of "paste ... data=<data>",
the client is now expected to send "paste ...\n<data>".
2016-01-15 14:43:59 +01:00
Miklos Vajna
de7823744e
loolwsd: fix naming style of LOOLWSD static members
2016-01-15 09:44:07 +01:00
Ashod Nakashian
3d803dd9b0
loolwsd: Document -> DocumentURI
...
Change-Id: I7e5989dbee368314a4db7c723439060f1064e844
Reviewed-on: https://gerrit.libreoffice.org/21469
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-14 13:39:43 +00:00
Ashod Nakashian
c2af36d0ef
loolwsd: simplified Connection
...
Change-Id: Ia7ff0d4b636513ce1b08641bb6db85c97ee5c2f9
Reviewed-on: https://gerrit.libreoffice.org/21468
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-14 13:38:45 +00:00
Jan Holesovsky
d20eaa3014
loolwsd: More protection when inserting image.
2016-01-13 16:51:36 +01:00
Jan Holesovsky
b47fe0bd0b
loolwsd: Fix inserting of images into files opened via http://
2016-01-13 16:51:36 +01:00
Ashod Nakashian
f577e48f18
loolwsd: child Session ID in URI
...
Change-Id: Ide04425fe29d17dd2db1aea532de421b8f0e3669
Reviewed-on: https://gerrit.libreoffice.org/21329
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-11 04:09:34 +00:00
Ashod Nakashian
5bf75f56ca
loolwsd: centralized signal handling and eased debugging
...
Change-Id: Ifdb3e2bca540bec3c6dea1ab24173c8ea0267706
Reviewed-on: https://gerrit.libreoffice.org/21325
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-11 04:06:56 +00:00
Ashod Nakashian
b2b983476c
loolwsd: more informative warnings
...
Change-Id: I8dba6d003bd5c0b3c16b3cd57c3737638ce56bd1
Reviewed-on: https://gerrit.libreoffice.org/21320
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-11 04:04:02 +00:00
Miklos Vajna
f0090d107c
loolwsd: -Werror,-Wshadow
2016-01-07 15:09:43 +01:00
Ashod Nakashian
a7556a7c1e
loolwsd: new Document class to manage the lifetime of a document
...
Change-Id: I8596d0f2514106e384bc6519ce05028753026678
Reviewed-on: https://gerrit.libreoffice.org/21184
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-07 05:57:25 +00:00
Ashod Nakashian
7f9485e318
loolwsd: jailId now static member
...
Change-Id: I7142038d421d642a3e9dfd3e1069c7401ec7db5c
Reviewed-on: https://gerrit.libreoffice.org/21183
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-07 05:56:25 +00:00
Ashod Nakashian
0b5bc5f244
loolwsd: random jailId dir created by WSD and renamed childId -> jailId
...
Change-Id: Ib5ce65c578c0c7fd3dbf81628906cd17728fb3ff
Reviewed-on: https://gerrit.libreoffice.org/21182
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-07 05:56:01 +00:00
Ashod Nakashian
b0cd3e5a46
loolwsd: spawn one broker and one only
...
Change-Id: I9ec23e7e9e9672e5e4e6d55b7a79e6db1f617e45
Reviewed-on: https://gerrit.libreoffice.org/21181
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-07 05:54:44 +00:00
Ashod Nakashian
900c344a7e
loolwsd: refactored JailedDocumentRoot path
...
Change-Id: Ibee16e6ebde0ae1945be53903a0b0bad4f3300ed
Reviewed-on: https://gerrit.libreoffice.org/21179
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-07 05:53:39 +00:00
Jan Holesovsky
28646c1a53
loolwsd: Answer the PING's with proper PONG's.
2016-01-06 17:19:21 +01:00
Ashod Nakashian
7bf3fe843a
loolwsd: more exception handling
...
Change-Id: I7ac694395e2c231565bd84a7cd7813498dba387f
Reviewed-on: https://gerrit.libreoffice.org/21163
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-06 14:30:46 +00:00
Ashod Nakashian
87d45ff333
loolwsd: don't timeout client socket
...
Change-Id: I22ca1834e22efbe01cc3e8cb78be5d0b2fbfcf4c
Reviewed-on: https://gerrit.libreoffice.org/21162
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-06 14:25:25 +00:00
Ashod Nakashian
f9cfdd9021
loolwsd: reuse QueueHandler
...
Change-Id: I90dd0cc1457604d85ec82c98af9a457f44968b0d
Reviewed-on: https://gerrit.libreoffice.org/21161
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-06 14:24:58 +00:00
Ashod Nakashian
ea1415de75
loolwsd: improved HTTP Request Handler
...
Change-Id: I1ad4359732c7b5ee9fc8743ebc60e1c94c304dcc
Reviewed-on: https://gerrit.libreoffice.org/21158
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-06 14:22:59 +00:00
Ashod Nakashian
c2c41ceb63
loolwsd: refactored HttpRequestHandler
...
Change-Id: Ie785d814aff1d28634c8933511c4a5a4a4f5cebc
Reviewed-on: https://gerrit.libreoffice.org/21156
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-06 14:21:53 +00:00
Ashod Nakashian
82c455ef94
loolwsd: dropCapability now works with --enable-debug
...
Change-Id: I1a852b0cb4fe0b08fcc00f2f7ab15eea3d36801b
Reviewed-on: https://gerrit.libreoffice.org/21133
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-05 19:30:02 +00:00
Ashod Nakashian
1bbc42351b
loolwsd: handle browser ping frames
...
Change-Id: I6f0074a3f8945b0ffe7a435d40f72f0ef4eae4b8
Reviewed-on: https://gerrit.libreoffice.org/21132
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-05 17:31:53 +00:00
Ashod Nakashian
80941b0b41
loolwsd: bccu#1394 childRoot dir should not be removed, only jails
...
Change-Id: Id2982728dd36a6a551707334293ecd600852f46f
Reviewed-on: https://gerrit.libreoffice.org/21097
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-05 01:13:46 +00:00
Ashod Nakashian
2104712b72
loolwsd: exception handling in wsd queue handler
...
Change-Id: I66f1990a20151c67346922273a98ecc5a91dc58f
Reviewed-on: https://gerrit.libreoffice.org/21096
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-05 01:13:11 +00:00
Ashod Nakashian
75c65af930
loolwsd: childId is now string
...
Change-Id: I7037c03d2b40ff88deed0619e8a34ce5434913a3
Reviewed-on: https://gerrit.libreoffice.org/21095
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-05 01:12:42 +00:00
Ashod Nakashian
eeb91f6335
loolwsd: send eof to disconnect
...
Change-Id: I02ec901fd75671a3f4bf6be54f08dfdf6d157837
Reviewed-on: https://gerrit.libreoffice.org/21063
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-03 15:23:03 +00:00
Ashod Nakashian
f48d61d25d
loolwsd: dropCapability moved to Capabilities.hpp
...
Change-Id: Id84d485b446040df1d5398341af2b0e8f300ed63
Reviewed-on: https://gerrit.libreoffice.org/21060
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-03 15:17:05 +00:00
Ashod Nakashian
0869cace37
loolwsd: consolidated TerminationFlag
...
Change-Id: Ic06b940f3b48888e4f398816e5ee45c0f49046e3
Reviewed-on: https://gerrit.libreoffice.org/21059
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-03 15:15:46 +00:00
Henry Castro
33a7f6adbb
loolwsd: close pipes
2015-12-29 20:59:17 -04:00
Henry Castro
f947b64483
loolwsd: renamed prefix "lool" process
...
We use prefix loolwsd, loolbroker and loolkit to easy grep process search.
Also, run_lok_main is not a thread, it is main loop process.
2015-12-29 00:39:25 -04:00
Ashod Nakashian
9e9e2f60ef
loolwsd: broker handles sigint and wsd removes childroot
...
Change-Id: Ie408bff7944ff0b9abfa8433b1e8ea6f62a9ab2c
Reviewed-on: https://gerrit.libreoffice.org/20999
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 23:39:13 +00:00
Ashod Nakashian
cf972fbed2
loolwsd: use full path when spawning loolkit
...
Change-Id: I9875fb7fbbc67915ed62785a3f3d1298a355f0a5
Reviewed-on: https://gerrit.libreoffice.org/20998
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 23:38:25 +00:00
Ashod Nakashian
88b76fe9d4
loolwsd: removed dead code
...
Variables and options lingering from previous iterations removed.
Standardizing static member names.
Header inclusion cleanups.
Change-Id: I65182ad4d100e0077f1b450be50cf95d7b8f0fc7
Reviewed-on: https://gerrit.libreoffice.org/20997
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 23:36:55 +00:00
Henry Castro
8410ceca2f
loolwsd: thread renamed to wsd_queue_handler
2015-12-28 16:51:39 -04:00
Ashod Nakashian
6b997c2abf
loolwsd: threadId -> sessionId in logs and identifiers
...
Change-Id: Ifbaea2fdded54da0d3528ae449efdbd7fe6d19c0
Reviewed-on: https://gerrit.libreoffice.org/20982
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 04:15:02 +00:00
Ashod Nakashian
3811abb40a
loolwsd: replaced threadId with globally unique sessionId
...
Change-Id: I55b16d4baa1753bc67dcd72de13e7a516da27abe
Reviewed-on: https://gerrit.libreoffice.org/20981
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 04:14:15 +00:00
Ashod Nakashian
b2d124af93
loolwsd: proper handling of non-default client port number
...
Change-Id: I388f0ce0252c5f7889e77c4d85b4cf21d4a222b6
Reviewed-on: https://gerrit.libreoffice.org/20979
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 04:12:15 +00:00
Ashod Nakashian
d273057488
loolwsd: moved config values into common header
...
Change-Id: Ib88379e453f207a6a5e6223045a393c769082be4
Reviewed-on: https://gerrit.libreoffice.org/20978
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 04:09:50 +00:00
Ashod Nakashian
fe0c11333f
loolwsd: thread lifecycle markers
...
Change-Id: I704e37e797224c9dbd024fcab3d8e917584be152
Reviewed-on: https://gerrit.libreoffice.org/20975
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-28 04:07:37 +00:00
Ashod Nakashian
ab8c6e6661
loolwsd: use make_shared and emplace
...
Change-Id: I9110a03b69442f0f8a674eda6ab4cf20462557c1
Reviewed-on: https://gerrit.libreoffice.org/20951
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-26 03:59:50 +00:00
Ashod Nakashian
d26944b715
loolwsd: safely remove files and directories
...
Change-Id: Ie017a9da720a470a6b8ed340bd4ea5ffc279cf4b
Reviewed-on: https://gerrit.libreoffice.org/20949
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-26 03:59:20 +00:00
Ashod Nakashian
3bd8361c89
loolwsd: more cleanups and logging
...
Change-Id: I23859849af2d7a3411bd4df57916b4166a17c3b5
Reviewed-on: https://gerrit.libreoffice.org/20946
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-26 03:57:47 +00:00
Ashod Nakashian
7053091c0e
loolwsd: support for views
...
Change-Id: I9447d97612589efd0e85e30977b80ab720b81702
Reviewed-on: https://gerrit.libreoffice.org/20945
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-26 03:57:21 +00:00
Ashod Nakashian
8464651655
loolwsd: Better logging
...
Color logging in console, tracing and streaming,
and converted cout to proper logging.
Change-Id: I515b8f8a40f8fa6763536b85c7632e3bb36673ee
Reviewed-on: https://gerrit.libreoffice.org/20931
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-25 03:32:33 +00:00
Henry Castro
9d7fbec138
loolwsd: Merged improved lifecycle prototype
...
Enabled the broker and kit processes.
Change-Id: I9afedbccac35732ffe846494cae8135d306e6311
Reviewed-on: https://gerrit.libreoffice.org/20907
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:23:40 +00:00
Ashod Nakashian
ea0ddcf738
loolwsd: Nominal logger and fixes
...
Nominal logging interface and a fix to using Poco
Application from LOOLKit, which is not a Poco App,
which caused core dump.
Logs now include process name.
Added logs to strategic places and some cleanups.
Change-Id: Ib7dcc4f1033dddf7c87cd2e786a91f5b482fb312
Reviewed-on: https://gerrit.libreoffice.org/20906
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:23:10 +00:00
Henry Castro
ef9313e3a9
loolwsd: deligating to loolbroker and loolkit
...
Change-Id: I8499540630373a1bee12a5f58fca3ed701ff6404
Reviewed-on: https://gerrit.libreoffice.org/20904
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:22:22 +00:00
Ashod Nakashian
ab5253ba1e
loolwsd: Refactored the PRNG
...
Moved the PRNG into utility namespace and interface
that internally manages seeding (once per process)
and thread-safety.
Change-Id: I78f0ef2c3a01aa6c6aefc8e4b07f3802f2421c68
Reviewed-on: https://gerrit.libreoffice.org/20901
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:18:16 +00:00
Henry Castro
4af013e87e
loolwsd: LOOLKit process added
...
Change-Id: I91e8a131b4959a78e43b29faede477d39150c97c
Reviewed-on: https://gerrit.libreoffice.org/20902
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:10:50 +00:00
Henry Castro
03f33c71d9
loolwsd: Multiple views in ChildProcessSession
...
Change-Id: I07359c97acc1e5e48dbbd35dc21ed08471c0697e
Reviewed-on: https://gerrit.libreoffice.org/20899
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:10:13 +00:00
Henry Castro
2d375f3eba
loolwsd: FIFO
...
Change-Id: I4694e45ab8006e8287011000bc5e2797bc9ecd48
Reviewed-on: https://gerrit.libreoffice.org/20898
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2015-12-23 17:05:37 +00:00
Henry Castro
1f43e99ac7
loolwsd: Refactored ChildProcessSession
...
ChildProcessSession class now moved to own files.
Change-Id: Ic67c8563ada51f23c83e06631ad913af610d395c
Reviewed-on: https://gerrit.libreoffice.org/20895
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Henry Castro <hcastro@collabora.com>
2015-12-23 17:03:43 +00:00
Henry Castro
894ab66d8c
loolwsd: Refactored MasterProcessSession
...
MasterProcessSession class now moved to own files.
Change-Id: Ic1a980295b9bb4b28ec9e205de1544fb98ad98f8
Reviewed-on: https://gerrit.libreoffice.org/20893
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Henry Castro <hcastro@collabora.com>
2015-12-23 17:02:57 +00:00
Henry Castro
8c4421d681
loolwsd: clean up unnecessary code
2015-12-18 16:45:30 -04:00
Henry Castro
a01de99962
loolwsd: handle pong frame
...
pong frame is received from IE11, with payload data length = 0
2015-12-10 18:20:52 -04:00
Henry Castro
6c209cefb1
loolwsd: wait to finish lo_startmain thread
2015-12-08 21:30:39 -04:00
Henry Castro
666e4a080f
loolwsd: update drop capabilities
2015-12-04 18:06:52 -04:00
Henry Castro
f5292a367e
loolwsd: rework, remove a jail root child
2015-12-04 17:09:28 -04:00
Henry Castro
7ea89ef99b
loolwsd: restore jail root child creation
2015-12-04 15:19:31 -04:00
Henry Castro
9933ef8675
loolwsd: destroy lokit document when a child dies
2015-12-03 17:41:12 -04:00
Henry Castro
c71ce222a5
loolwsd: remove child workspace when a child dies
2015-12-03 15:43:54 -04:00
Henry Castro
f5b6aa6515
loolwsd: shut down web sockets that are not yet assigned a document to work on
2015-12-02 20:20:05 -04:00
Henry Castro
c0fbf5ebf9
loolwsd: remove child root folder when it is a gracefull shut down
2015-11-25 23:17:08 -04:00
Henry Castro
c5037c5d30
loolwsd: stop http server and shut down remaining web sockets
2015-11-25 22:59:24 -04:00
Henry Castro
964d95f04b
loolwsd: handle a graceful shutdown
2015-11-25 22:49:34 -04:00
Henry Castro
0417b90eeb
loolwsd: add signal handler
2015-11-25 22:37:08 -04:00
Henry Castro
e2e0e3a962
loolwsd: call poll, to check the status of the websocket
2015-11-25 22:23:08 -04:00
Miklos Vajna
2bb596a256
loolwsd: coding style
...
If README says "spaces, not tabs" and "braces go on separate lines",
then be consistent about it before it gets normal to not respect those
rules.
2015-11-24 09:43:17 +01:00
Henry Castro
41d94bc9da
loolwsd: clear queue before socket shutdown
...
This cause broke pipe exception
2015-11-19 07:32:48 -04:00
Miklos Vajna
bc38b2c265
loolwsd: -Werror,-Wshadow
...
With this, loolwsd builds with clang.
2015-11-19 11:23:45 +01:00
Mihai Varga
d18667d000
ccu#1273 support utf8 characters in the message passing server <-> client
2015-11-17 20:07:48 +02:00
Jan Holesovsky
6a1477d8a9
loolwsd: Specialize the MessageQueue a bit.
...
Introduce a bit of hierarchy there, at some stage we'll want to re-order the
tile requests a bit so that it works better for collaborative editing; for the
moment, removing the duplicate entries is enough.
2015-11-09 11:54:09 +01:00
Jan Holesovsky
dfcaaf91aa
loolwsd: Remove the tiles also from the child's queue.
...
The commands leave the parent's queue very quickly, the child's queue is the
critical one, so remove them also from there. This speeds up the typing
experience very considerably.
2015-11-06 18:27:32 +01:00
Miklos Vajna
1409ef11ec
loolwsd: allow duplicate messages for all message types expect tile
...
To be on the safe side, I only allowed "uno" previously, but Mihai
confirmed that the intention was to filter out "tile" duplicates, so
filter out only that.
2015-10-28 17:29:51 +01:00
Miklos Vajna
0fe05e6d91
loolwsd: -Werror=shadow
2015-10-28 10:55:27 +01:00
Miklos Vajna
b5ed22c4d9
loolwsd: avoid filtering out "duplicated" uno commands
...
Problem since commit 8f48dabf28
(loolwsd:
discard requests that are in the queue already, 2015-07-21), e.g.
"select-all, paste, select-all" doesn't have the same meaning as
"select-all, paste".
Quite possibly the condition should be inverted, and filtering out
should be done only for a few commands, like "tile"; but at least
filtering out "uno" is definitely problematic.
2015-10-28 10:28:27 +01:00
Mihai Varga
28f3555180
loolwsd: insert file HTTP request handler
...
The client send a file through an http post request, the handler saves
the file in a temporary directory then moves it in the specified chroot
2015-10-22 18:27:29 +03:00
Miklos Vajna
8f90c38844
loolwsd convert-to: implement actual conversion
2015-10-20 15:41:42 +02:00
Miklos Vajna
355362f519
loolwsd convert-to: clean up temp directory in case format would be empty
2015-10-20 15:35:43 +02:00
Miklos Vajna
cdc0783c27
LOOLWSD: put file we get from convert-to to a temp. dir
...
Having a URL like file:///tmp/tmp13630baaaaa/test.txt allows retaining
the filename given by the user and still work with a URL.
We could try carrying around a memory buffer, but we would still have to
send it over the WS, so it's easier if we always work with URLs instead.
2015-10-20 15:00:20 +02:00
Miklos Vajna
cc18cc702f
loolwsd: extraft filename from convert-to parameters
2015-10-19 16:03:55 +02:00
Mihai Varga
0ea00afb99
loolwsd: allow the specification of the mime type
2015-10-16 19:45:57 +03:00
Miklos Vajna
fed0cbc77c
loolwsd: -Werror=unused-parameter
2015-10-16 17:45:03 +02:00
Miklos Vajna
9212c1c321
loolwsd: convert-to handler skeleton
2015-10-16 17:38:24 +02:00
Miklos Vajna
63bf9a1329
loolwsd: invert this condition, so it's possible to add other cases
2015-10-16 15:47:39 +02:00
Miklos Vajna
700b7d08b7
loolwsd: allow frame size of 200K
...
I got:
WebSocketException: Insufficient buffer for payload size 113579
So double the allocated size: that seems to help.
2015-10-16 15:24:19 +02:00
Tor Lillqvist
7e78f3f0c6
bugs.ccu#1248: If locale is C, set it to en_US.utf8
2015-10-13 20:05:42 +03:00
Mihai Varga
c4825f5492
loolwsd: allow cross origin requests
2015-10-12 20:33:29 +03:00
Mihai Varga
676c6d60d1
tdf#94607 downloadAs command that generates an URL for the doc
...
When requested, the document is exported under
/jail_path/CHILD_ID/user/thedocument/RANDOMDIR/filename
and CHILD_ID, RANDOMDIR and the filename are communicated to the client.
When the client requests
http://server:port/CHILD_ID/RANDOMDIR/filename , the exported document
is served and then RANDOMDIR is removed
2015-10-09 16:11:38 +03:00
Henry Castro
8a10a16855
loolwsd: restore interactive testing
2015-09-11 16:31:43 -04:00
Mihai Varga
564572e561
loolwsd: also add /etc/host.conf in chroot
2015-09-08 13:03:14 +03:00
Mihai Varga
e17598e866
loolwsd: also copy /etc/nsswitch.conf
2015-09-08 11:31:49 +03:00
Mihai Varga
5396a83c26
loolwsd: copy /etc/hosts when running the server
2015-09-07 15:56:47 +03:00
Mihai Varga
515e6f7fea
loolwsd: copy /etc/resolv.conf in the jail
...
Because sometimes the hostname is not resolved
2015-09-04 18:43:47 +03:00
Henry Castro
7aeca2f92b
loolwsd: destroy LOKit when child finished
2015-08-08 08:20:16 -04:00
Henry Castro
54b1e1b612
loolwsd: set thread name to debug socket
2015-08-08 07:55:54 -04:00
Henry Castro
ee928f9af1
loolwsd: create lokit process id logs
...
Also, when used with --test option, create lokit PID log
so it is attached to the debugger.
gdb loolwsd $(cat /tmp/lokit.pid)
2015-08-05 20:20:05 -04:00
Henry Castro
1c0153d5e0
loolwsd: ensure one child when debugging
...
when used with --test option:
./loolwsd --test --systemplate=${SYSTEMPLATE} --lotemplate=${MASTER}/instdir
--childroot=${ROOTFORJAILS}
ensure that one child is created and attach to it easily to debug lokit
messages
2015-08-05 20:05:30 -04:00
Henry Castro
0ec12fe11e
loolwsd: fix child fork when debugging one child
2015-08-05 18:19:51 -04:00
Henry Castro
ec094f1601
loolwsd: remove _pendingPreSpawnedChildren.
...
_pendingPreSpawnedChildren is no longer need it, because
fork() is used.
Also adjusted time sleep to 1 second.
2015-07-24 15:17:46 -04:00
Henry Castro
6dafcc753f
loolwsd: process sleep for amount of time ...
...
specified by MAINTENANCE_INTERVAL
2015-07-24 14:10:24 -04:00
Mihai Varga
8f48dabf28
loolwsd: discard requests that are in the queue already
2015-07-21 11:08:36 +03:00
Henry Castro
de3d97d5a4
loolwsd: create PID log file.
...
The PID log file is used by external utilities
to report processes, threads, etc.
2015-07-19 16:49:11 -04:00
Henry Castro
66756a77a9
loolwsd: change named mutex to private static.
2015-07-18 12:35:16 -04:00
Henry Castro
161e5534ec
loolwsd: mutex lock when loKit initialization.
2015-07-17 21:54:26 -04:00
Henry Castro
63a33b39f6
loolwsd: moved server socket to main function.
2015-07-17 17:55:57 -04:00
Henry Castro
404b5edbc9
loolwsd: FileTransferHandler no longer need it.
2015-07-17 16:55:49 -04:00
Henry Castro
99ca81a944
loolwsd: move server socket to parent process
2015-07-17 14:04:40 -04:00
Henry Castro
061a2bfc3d
loolwsd: rework child monitor status.
2015-07-16 18:05:28 -04:00
Henry Castro
fd5b676b2d
loolwsd: set RTLD_NOW, all undefined symbols in
...
the library are resolved before dlopen() returns.
Also remove unnecessary commented code.
2015-07-15 20:57:39 -04:00
Henry Castro
3f3b9f7675
loolwsd: remove WSTOPSIG(status).
...
No child returns status process stop. This cause problems
when we attach one child to debug.
2015-07-15 09:15:12 -04:00
Mihai Varga
0d80d63cb4
loolwsd: don't cancel special tile requests that have an ID
2015-07-14 19:46:29 +03:00
Henry Castro
bb3611399b
loolwsd: Use fork but no execve
2015-07-13 10:13:06 -04:00
Jan Holesovsky
767d6a0a32
Create /dev/*random in the chroot so that ssl works.
...
Also add the missing library to the systemplate.
2015-07-06 19:35:50 +02:00
Tor Lillqvist
6804750463
Don't bother with storing a ref to Application::instance() in a variable in some places
2015-06-09 18:30:21 +03:00
Tor Lillqvist
d3f4ddd355
Use a queue also in the child processes
2015-06-09 18:30:12 +03:00
Tor Lillqvist
629ba87139
Add a "canceltiles" message to the protocol and handle it
...
Implementing this Was harder than I first expected. The basic idea is as
follows: The master process puts each message arriving from a client that
isn't "canceltiles" into a (client-specific) queue. A separate thread that
pulls messages from the queue at its own pace and handles them as
before. Incoming "canceltiles" messages are handled specially, though: The
queue is emptied of "tile" messages.
The above sounds simple but there are several details that were a bit tricky
to get right.
2015-06-09 18:29:48 +03:00
Tor Lillqvist
ea2141ffe7
Take the tile cache directory as an option, too
2015-06-04 17:09:19 +03:00
Tor Lillqvist
bbf844f8da
Fix copy/paste error in help message
2015-06-01 19:52:48 +03:00
Tor Lillqvist
1b85e8eaaa
Be more consistent in using 'using'
2015-05-29 08:49:49 +03:00
Tor Lillqvist
f6a00edbee
Use shared_ptr to the WebSockets for increased robustness
...
Why did I wait so long to do this? This is obviously the right thing to do, I
hope, and has a very significant impact on the robustness of the server...
2015-05-28 16:46:37 +03:00
Tor Lillqvist
73273eb027
Also let the nextmessage: from a child process be forwarded to the client
...
The loadtest program needs it as it, too, uses Poco, which currently does not
have an API to receive an arbitrarily large WebSocket message.
2015-05-28 16:46:37 +03:00
Tor Lillqvist
f7d001ed45
Bin the uid debug output
2015-05-22 17:43:45 +01:00
Tor Lillqvist
180f8fcba0
Pass the --uid option to the child too
2015-05-22 17:42:36 +01:00
Tor Lillqvist
73505aa550
On OS X libsofficeap.dylib is in Frameworks
2015-05-22 14:40:09 +01:00
Tor Lillqvist
9af39d189a
Add some fairly hackish things to make this run better on OS X
2015-05-22 14:34:21 +01:00
Tor Lillqvist
8612aab7c4
Make this build on OS X
...
Note that I said build, not work.
2015-05-22 10:57:17 +01:00
Tor Lillqvist
bc49cccee2
Log the capabilities after dropping one
2015-05-19 13:54:12 +03:00
Tor Lillqvist
65ab397d34
We need CAP_FOWNER, too, on newer Linuxes to be able to hardlink the LO files
...
At least when not running as the owner of those files. Refactor the capability
dropping so that we can separately drop the CAP_FOWNER and CAP_SYS_CHROOT
capabilities. The child process never needs CAP_FOWNER and the parent process
never needs CAP_SYS_CHROOT.
2015-05-19 13:48:20 +03:00
Tor Lillqvist
e50f243897
Let's not over-complicate this
2015-05-19 07:52:42 +03:00
Tor Lillqvist
058416b9d7
Handle arbitrarily large tile: messages from child to parent
...
The parent currently uses a fixed-size 100000 byte buffer to receive
messages. Even with a tile size of 256x256 pixels, that is not enough for some
tiles that compress badly as PNG. Add a nextmessage: message that gives the
size of the immediately following message. Send a such before each tile:
message, and handle it appropriately. The nextmessage: message is used only
from child to parent process, it is never sent to the Websocket client.
Once Poco 1.6.1 is released, this will not be necessary.
2015-05-18 11:24:32 +03:00
Mihai Varga
7122e97382
Fixed an unused result compiler error
2015-05-15 09:23:21 +03:00
Tor Lillqvist
1e17966bb9
Drop super-user privileges if using sudo by necessity when debugging
...
It doesn't work to debug a program that has file capabilities set, it seems,
so to debug the loolwsd master process, one in practice needs to run sudo gdb
on it. But it is not necessarily a good idea to run all of the code as
root. When configured for debugging (--enable-debug), reset real and effective
uid to a non-root one, either one given with an --uid option (typically that
of the developer), or "nobody".
2015-05-13 17:52:20 +03:00
Mihai Varga
1f073e6219
Fixed unused result compile error
2015-05-13 13:00:33 +03:00
Tor Lillqvist
6393cbfd7d
Improve help for --port a bit
...
It must bit be the port number used for listening for the child processes
contacting the master process.
2015-05-08 21:30:32 +03:00
Tor Lillqvist
3e9c4d4bf3
Use a separate HTTPServer listening for child processes connnecting
...
Otherwise, if we use the same port number and same HTTPServer, if enough
clients try to contact us and, we won't be able to accept child processes
having been spawned.
Also add some temporary debugging output here and there to debug lifecycle
management issues.
2015-05-08 21:30:32 +03:00
Tor Lillqvist
5b1233bdb4
Be sure avoid global object dtors when exiting a child process
...
The LO ones have a tendency to crash anyway on Solar Mutex assertions (in a
build where assertions are active, obviously).
2015-05-08 21:30:32 +03:00
Tor Lillqvist
aa40335328
Include also the childId in this (temporary) log output
2015-05-08 21:29:45 +03:00
Tor Lillqvist
de52608a35
Drop setuid-root on Linux too, if we for some reason have it
2015-05-07 18:31:59 +03:00
Tor Lillqvist
caea0f9986
Try to make the server more stable when heavily loaded by connections
...
Use an explicit backlog parameter to the ServerSocket, and an explicit max number
of threads to use for the HTTPServer's thread pool.
2015-05-07 18:26:03 +03:00
Tor Lillqvist
295e8305f9
Use the Linux capability API only on Linux
2015-05-04 21:00:02 +03:00
Tor Lillqvist
dce8e0870e
Just _Exit() in childMain
...
Otherwise various LO global objects will try to run dtors and whatnot, often
crashing.
2015-04-30 21:06:52 +03:00
Tor Lillqvist
19276ed5d8
Actually drop the chroot capability also in the child process
...
I forgot to do it in childMain() in 28c9561722
.
2015-04-28 11:24:00 +03:00
Tor Lillqvist
25575961ed
We need to check for cache dir access only in the master process
2015-04-28 11:17:26 +03:00
Tor Lillqvist
2110aef06a
No need for this member to be public
2015-04-28 11:02:29 +03:00
Tor Lillqvist
6df6a5d58b
Spawn just one child in the --test case
2015-04-28 11:01:18 +03:00
Tor Lillqvist
88cb21867b
Spawn children only after starting to listen on the server port
...
Otherwise some children, especially when there are more than just a few of
them to spawn, might try to contact the server before it is listening.
2015-04-28 10:57:05 +03:00
Tor Lillqvist
28c9561722
Get rid of the CHROOT capability after using it, or when not needing it
2015-04-27 21:55:36 +03:00
Tor Lillqvist
4eaffc74f0
Log the exit status of a child process, or the signal that killed it
2015-04-24 13:14:57 +03:00
Tor Lillqvist
91d0e9329c
Fix the waitpid() use
...
We don't want to use WNOHANG, not sure where I got that idea from. That leads
to busy looping. The loop is in a thread of its own, so it is fine to just
wait ("hang") for some child to die.
2015-04-24 11:26:41 +03:00