Commit graph

84 commits

Author SHA1 Message Date
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
John McLear
51eff0d659 change to createDiffHTML 2013-01-28 16:53:29 +00:00
John McLear
3fac18f88a resolve merge conflict 2013-01-27 17:54:26 +00:00
Peter 'Pita' Martischka
07a267be7a Added colors to pad diff 2013-01-27 16:45:09 +00:00
Peter 'Pita' Martischka
f4690dda9d fixed indent 2013-01-27 15:40:05 +00:00
mluto
cb2b93b133 Added getChatHistory and getChatHead (api+code+doc) 2013-01-26 14:35:26 +01:00
goldquest
74185e79ab use the existing padimpexp object from the parent window 2013-01-23 16:36:37 +01:00
John McLear
205d983225 make it crash 2013-01-22 22:48:05 +00:00
John McLear
5d416579ee bring in some padDiff stuff that doesnt suck 2013-01-22 22:33:51 +00:00
goldquest
666c0adcd2 script tag didn't link to right location 2013-01-22 16:42:56 +01: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
John McLear
654654b4e1 Merge pull request #1342 from spcsser/feature/padlisting
API & backend to list pads on epl instance
2013-01-14 08:13:57 -08:00
Swen
198754222d Added functionality to list pads on this server. 2013-01-08 20:14:01 +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
ffc9bcf028 Bump API version for checkToken endpoint 2012-12-27 22:09:22 +01:00
John McLear
bf5283fa11 Fix issue #725 which was caused by a race condition 2012-12-10 11:34:53 +00:00
Stephan Jauernick
2163c8be5c Update src/node/handler/APIHandler.js
Added the checkToken function to the function array.
2012-12-07 11:28:03 +01:00
goldquest
1380fda2b2 use the parent window, not the top 2012-12-06 17:51:43 +01:00
Iván Eixarch
bf04a4686a avoid use of os.tmpDir() for node 0.6 compatibility 2012-12-06 11:49:04 +01:00
Iván Eixarch
97d77ea089 added my name in header 2012-11-27 00:11:45 +01:00
Iván Eixarch
cc60b82a6e Import html by default and allow basic import/export features without abiword 2012-11-23 22:55:25 +01:00
Iván Eixarch
ef3231efd2 cleaning 2012-11-23 19:06:18 +01:00
Iván Eixarch
d0a17d5471 test import converting to html instead to txt by default 2012-11-23 18:18:03 +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
Marcel Klehr
f8f002adc0 Add listAllGroups API endpoint
Adds a database key that lists all groups
2012-09-17 23:03:56 +02:00
Marcel Klehr
ad16c0d0d4 Bump API version to v1.1 2012-09-13 16:13:54 +02:00
Marcel Klehr
ea0f7cb2e9 Add support for multiple api versions 2012-09-09 18:20:16 +02:00
John McLear
7e79bf3462 Update src/node/handler/APIHandler.js 2012-09-04 17:26:08 +02: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
a717c11ab3 Merge pull request #819 from marcelklehr/contributor-api-methods
Contributor api methods (listPadsOfAuthor & listAuthorsOfPad )
2012-06-27 11:31:25 -07:00