Simon Gaeremynck
cfdd57b487
Addressed a potential never finishing forEach in PadMessageHandler.padUsers
...
If the session info for a client would be null or undefined, the forEach
callback would never get called which means the padUsers callback would
never get trigged. This could potentially block API request as this function
is exposed at an HTTP API endpoint.
2014-02-19 10:48:15 +00:00
Marcel Klehr
adf05576b2
Don't crash if CHANGESET_REQ fails
2013-12-17 16:20:57 +01:00
s1341
5add63165d
Fix server side bug index overflow
...
The server wasn't properly checking that the changesets it needed to
return for changeset_requests actually existed.
2013-12-17 15:37:35 +02:00
webzwo0i
aadcfbb3d1
do not send globalPadId in clientvars - its not used anywhere
2013-12-08 17:29:41 +01:00
Luc Didry
3d8452b143
Replace tabs indentation with spaces indentation
...
Some files are obviously external libraries, I didn't touch them
2013-12-05 08:41:29 +01:00
Marcel Klehr
7b84e7308b
Merge branch 'metrics' into develop
...
Conflicts:
src/node/handler/PadMessageHandler.js
2013-10-28 12:11:25 +01:00
Marcel Klehr
3ad4b1b837
stats: Add http500, memoryUsage, pendingEdits gauges
...
and turn edits metric into a timer instead of a simple meter
2013-10-27 21:43:32 +01:00
Marcel Klehr
940f114a84
Record metrics with 'measured'
2013-10-27 17:42:55 +01:00
Grant Woodford
fbe4e43c3d
Privacy: Add an option to disable IP logging
2013-10-19 21:37:11 +02:00
vileda
77c2313025
pass correct padID to checkAccess if pad is requested via readOnly link
2013-10-13 22:31:41 +02:00
Marcel Klehr
aa77a615da
Drop messages from unknown connections
...
fixes #1908
2013-10-12 18:51:04 +02:00
Marcel Klehr
7f10b9a42f
Add explanations for more disconnect scenarios
2013-10-10 21:11:15 +02:00
Marcel Klehr
d4c99d40b8
Never keep processing a changeset if it's corrupted
2013-10-10 18:19:25 +02:00
Marcel Klehr
6689a3c02e
Catch errors during preparation of client vars
...
... and disconnect the user
2013-10-10 16:38:41 +02:00
Marcel Klehr
de73de38b1
Filter author attribs in client_vars.historicalAuthorData
2013-10-07 18:58:20 +02:00
Marcel Klehr
9fac515885
Revert "do not pass historical author data to read only users"
...
This reverts commit b32aaaeb1b
.
2013-10-07 18:54:57 +02:00
John McLear
d7088031fa
remove white space
2013-10-06 15:16:32 +01:00
John McLear
b32aaaeb1b
do not pass historical author data to read only users
2013-10-06 15:15:43 +01:00
Marcel Klehr
7f7d506ff3
Don't stop processing changesets if there is an error
...
fixes #1895
2013-09-23 16:38:55 +02:00
tonoman3g
e60591a4d5
fix padUsers http api call in PadMessageHandler.js.
...
Add callback() function call to iterator function.
2013-09-09 21:24:41 +07:00
Marcel Klehr
40f578cfbd
Merge pull request #1816 from bit/sessioninfos
...
export sessioninfos
2013-07-23 05:14:45 -07:00
j
a62593e9a0
export sessioninfos so plugins can access it
...
allows plugins to map client.id to author id
2013-06-17 16:54:02 +02:00
Marcel Klehr
2c855de6f6
Add a server-side changeset queue per pad
...
fixes #1573
2013-04-27 23:04:42 +02:00
John McLear
bf4c86ed94
better message for admins
2013-04-17 23:48:11 +01:00
John McLear
63b00b9010
Merge branch 'feature/add-cs-queue' of github.com:ether/etherpad-lite into dont-crash-noauth
2013-04-17 20:04:25 +01:00
John McLear
3b8621c6a0
dont crash on no auth, ust a bandaid
2013-04-17 19:50:05 +01:00
Marcel Klehr
cd288c70cb
Don't block changeset queue with delivering changeset
2013-04-17 14:26:11 +02:00
Marcel Klehr
1c8b7a3661
Add a server-side changeset queue per pad
...
fixes #1573
2013-04-17 14:25:23 +02:00
mluto
c5b4e4934d
Kick the user if has already successfully authenticated but his session became invalid later
2013-04-03 11:19:26 +02:00
John McLear
5855e3d5bf
weird styling
2013-04-02 23:17:25 +01:00
John McLear
57a9ccbb88
whoops, comments hurt
2013-04-02 23:16:28 +01:00
John McLear
9e523191ea
whoops padid should be in payload..
2013-04-02 23:15:16 +01:00
John McLear
a9bd081a44
more clean up
2013-03-19 16:55:42 +00:00
John McLear
9bb0587447
working and jsonify obj
2013-03-19 16:40:51 +00:00
John McLear
2916b39c24
make sure the sessionID target is right
2013-03-19 16:21:04 +00:00
John McLear
d0e656d0a6
Merge branch 'develop' of github.com:ether/etherpad-lite into custom-obj-msg
2013-03-19 13:59:07 +00:00
John McLear
13ad46aa67
a safer approach I think but still be careful
2013-03-16 13:19:12 +00:00
Marcel Klehr
de552df6db
Fix clearing authorship colors which was broken by #1609
...
Fixes #1620
2013-03-15 18:08:51 +01:00
John McLear
ac9b972358
Merge branch 'develop' of github.com:ether/etherpad-lite into custom-obj-msg
2013-03-14 12:01:09 -03:00
Marcel Klehr
c30b0b72b8
Validate all 'author' attribs of incoming changesets to be the same value as the current user's authorId
2013-03-13 22:23:35 +01:00
John McLear
83a820b720
new function for handling custom messages, allows objects to be sent, before we only allowed strings
2013-03-12 16:59:15 +00:00
Jordan Hollinger
3cafa24982
Fix variable name typo in PadMessageHandler.padUsers
2013-03-07 09:37:03 -05:00
John McLear
ebd8b85072
patch documented here https://github.com/ether/etherpad-lite/issues/472 adds some stability but not a perfect solution
2013-02-27 16:17:50 +00:00
John McLear
18b6cf1534
Merge pull request #1523 from ether/store-sessions-in-db
...
Store sessions in db
2013-02-26 18:03:54 -08:00
John McLear
fb3e4a6232
only show clients on this pad resolves issue #1544
2013-02-20 16:10:27 +00:00
John McLear
e52dc2b17c
dont reset head count, use the one we should :)
2013-02-19 02:05:51 +00:00
John McLear
eeeeb04840
remove cruft
2013-02-18 00:37:47 +00:00
John McLear
6e46a53288
this is probably bad, please sanity check
2013-02-18 00:36:31 +00:00
John McLear
11a8295150
eureka
2013-02-18 00:29:53 +00:00
Mark Fisher
500f9b8b48
Fixed typo thats made server hang
2013-02-13 15:25:27 +00:00
Manuel Knitza
b1586684c8
Explicitly log creation of pad
2013-02-11 03:03:18 +01:00
Marcel Klehr
6d2b1488d6
Reformat access log messages to improve readability
2013-02-10 16:14:48 +01:00
Marcel Klehr
ee89696c4d
Log the client ip on pad access with logger 'access'
...
also, don't log every message with log level info!
2013-02-10 16:03:49 +01:00
mluto
f2cd9e3adc
Removed sidebar-code since the sidebar got removed in EPL, there is only the stickychat which is not affected by this.
2013-02-08 22:06:28 +01:00
mluto
e6454af5ed
Removed fullWidth/resizing-code as the pad is always fullscreen, unlike the old EP
2013-02-08 22:00:17 +01:00
mluto
0d5b98a338
Removed isProPad, since all pads are public except for group-pads
2013-02-07 14:30:09 +01:00
Dmitry
34f9f15150
socket.io rooms instead of own session management
...
Replaces homegrown pad session management with socket.io build-in rooms
2013-02-05 23:33:44 +04:00
John McLear
1814c756ad
Merge pull request #1431 from mluto/fix-userinfo-crash
...
Fix USERINFO_UPDATE crash
2013-01-30 06:43:37 -08:00
mluto
7e48e025c7
Check for missing payload on CLIENT_MESSAGE
2013-01-30 15:28:54 +01:00
mluto
f2742c5b63
Check for missing userInfo
2013-01-30 15:21:25 +01:00
John McLear
edd8b12049
push authorID to author object and return via api...
2013-01-29 16:45:09 +00:00
Peter 'Pita' Martischka
07a267be7a
Added colors to pad diff
2013-01-27 16:45:09 +00:00
mluto
41cb5d8265
Added hook for clientVars and hook-doc
2013-01-14 22:51:26 +01:00
mluto
94f9b05c4c
Only create clientVars when they are needed
2013-01-14 22:08:33 +01:00
mluto
bc05f9eb0a
converted load-more-link to button, added loading-gif, fixed typo
2013-01-07 19:15:55 +01:00
mluto
5592c4b0fe
client loads messages using the new client loads messages using new method, getChatMessages restructured and renamed to getLastChatMessages, added GET_CHAT_MESSAGES, getChatMessages restructured and renamed to getLastChatMessages
2013-01-06 16:11:48 +01:00
mluto
9484b92ae2
fixed and unified indenting, added comments in handleClientReady
2013-01-06 14:55:33 +01:00
Marcel Klehr
e24ed46a08
PadMessageHandler: Make sure sessioninfos[session] still exists before pushing data to user.
2012-11-10 10:47:12 +01:00
John McLear
d7ec050f34
Merge pull request #1035 from amtep/develop
...
Guard against malicious clients in USERINFO_UPDATE handling
2012-10-11 08:27:27 -07:00
Dmitry
dbcdc2f956
fix for error handling in callback code
...
The callback code does not follow error handling guidelines, thus always
receiving NULL instead of results array.
2012-10-11 18:07:45 +04:00
Dmitry
0fa954c1a0
fixed variable name in handleMessageHook
...
the code would never work as expected with this type
2012-10-11 17:51:57 +04:00
Richard Braakman
85b44119ae
USERINFO_UPDATE: construct a new message for broadcast
...
The server was reusing the client's message when broadcasting userinfo
updates. This would allow a malicious client to insert arbitrary fields
into a message that the other clients would trust as coming from the
server. For example, adding "disconnect" or renaming other authors.
This commit fixes it by having the server construct a new message with
known fields before broadcasting.
2012-10-02 23:27:30 +03:00
Richard Braakman
2e72a1e489
Prevent server crash in handleClientReady
...
The client might have disconnected between callbacks so don't try to
write to the session before checking this. The main callback of this
function now has a single check at its top.
Removed a redundant check halfway through the callback.
Also normalized use of client.id for the session index instead of a mix of
client.id and sessionId.
Added some explanatory comments.
2012-09-28 23:23:00 +03:00
Richard Braakman
413ddb393e
Add some explanatory comments to handleUserChanges()
2012-09-28 22:49:20 +03:00
Richard Braakman
7aaef01346
Prettify session handling in handleUserChanges
...
Also add a comment to explain what's going on with thisSession.
No changes in behavior.
2012-09-27 23:07:00 +03:00
Richard Braakman
f1b4206cad
Fix crash when client submits changeset based on too-old revision
...
We had a problem with the server running out of stack space if a client
submitted a changeset based on a revision more than about 1000 revs old.
(944 was our cutoff but yours may vary). This happened in the wild with
about 30 people editing via flaky wifi. A disconnected client would try
to submit a fairly old changeset when reconnecting, and a few minutes
was enough for 30 people to generate that many revs.
The stack kept growing because pad.getRevisionChangeset was being answered
from the cache, so no I/O interrupted the callback chain. (This was seen with
mysql, I don't know about other backends.)
This patch forces a nextTick every 200 revisions to solve this problem.
2012-09-26 03:01:59 +03:00
Richard Braakman
e16008b371
Fix sessioninfos race that can cause crash during USER_CHANGES handling
...
When stress testing etherpad-lite we occasionally got this error:
TypeError: Cannot read property 'author' of undefined
at /home/etherpad/etherpad-lite/src/node/handler/PadMessageHandler.js:556:47
handleUserChanges was accessing sessioninfos[client.id].author in a callback,
after spending some time in the loop that updates the changeset to the
latest revision. It's possible for a disconnect request to be processed
during that loop so the session might no longer be there.
This patch fixes it by looking up the author at the start of the function.
2012-09-26 03:01:59 +03:00
Mark Holmquist
f9469ef256
Add in padUsers HTTP API call
...
I needed the list of users this time, so I got it. There are docs
and everything.
2012-08-17 13:39:16 -07:00
Mark Holmquist
3d4fb81796
Add in an HTTP API call to send a custom message type.
...
You cannot currently send any data with your custom message, but
this patch is just begging for a second one that will allow that.
2012-08-08 10:12:11 -07:00
Matthias Bartelmeß
975171a86b
Make handleMessage async
2012-07-08 21:06:19 +02:00
Egil Moeller
17b6103a3d
Bugfix for broken readonly timeslider
2012-07-05 19:33:20 +02:00
Mark Holmquist
a71a8a7efc
Add in padUsersCount method and API call
...
The PadMessageHandler objects now have a new API call associated
with them. I'm sure that's a funny place to put it, but the
pad2sessions object in that file seems to be the only place user
counts are stored!
Anyway, I hope this is helpful. I know it would be for me :)
2012-06-29 11:26:12 -07:00
John McLear
0bc01feb72
Merge pull request #818 from MarkTraceur/kick-on-deauth
...
Kick on deauth
2012-06-26 16:09:14 -07:00
Mark Holmquist
c4e660b206
Fix glaring problem with pull request
...
I accidentally forgot to call finalHandler if there was no padID
.... :)
2012-06-26 16:07:08 -07:00
John McLear
3d9a2360be
Merge pull request #817 from MarkTraceur/kick-on-deauth
...
Kick on deauth
2012-06-26 16:01:40 -07:00
Mark Holmquist
79ca5f3e7c
Refuse connection if the user is no longer authorized
...
This should do the trick for issue 815. Please review and merge if
it works.
Try again: Fewer variables.
2012-06-26 16:00:38 -07:00
Mark Holmquist
854e1092d9
Add in a new hook for handleMessage
...
Add a new hook: handleMessage. Whenever a message comes in, it is
intercepted by this hook.
2012-06-26 14:10:42 -07:00
Egil Moeller
e559ef5640
Disable design mode in readonly pad
2012-04-23 16:41:41 +02:00
Egil Moeller
480d0b8e25
ReadOnly pad handling
2012-04-23 16:18:14 +02:00
Egil Moeller
e5a22423bb
Fixed timedelta problem
2012-04-23 14:20:17 +02:00
Egil Moeller
583743a3f9
Restored saved revision support
2012-04-23 12:58:04 +02:00
Egil Moeller
914d79ad20
Unified timeslider and pad editing protocol / component
2012-04-23 12:52:30 +02:00
Matthias Bartelmeß
b7a0b36b5e
...well stupid error
2012-04-08 21:21:30 +02:00
Matthias Bartelmeß
0340c87996
Pad message handler detects lineattributemakers by asking Attribute manager
2012-04-07 01:05:25 +02:00
John McLear
9ecd864ac6
Merge pull request #557 from redhog/master
...
Templating system built on top of EJS and plugin installer
2012-04-02 12:42:38 -07:00
Egil Moeller
33c53e61c2
Merge branch 'johnyma22'
...
Conflicts:
node/utils/Minify.js
src/static/js/pad.js
src/static/js/pad_docbar.js
src/static/js/pad_editbar.js
src/static/js/pad_savedrevs.js
static/css/timeslider.css
static/pad.html
2012-04-01 13:27:38 +02:00
Matthias Bartelmeß
daca484747
Merge branch 'develop' into objectify_ep
...
Conflicts:
src/node/utils/tar.json
src/static/js/ace2_inner.js
2012-03-27 11:15:48 +02:00
Matthias Bartelmeß
8eb43a3ebf
replaceing AttributePoolFactory by AttributePool
2012-03-18 09:05:46 +01:00
Matthias Bartelmeß
ede32726c1
check if sockets are available in PadMessageHandler
2012-03-14 01:32:16 +01:00
Egil Moeller
81440cd856
Removed old pluginfw stuff
2012-03-01 19:00:58 +01:00