aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/VNCSConnectionST.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Add keyboard debug log to serversPierre Ossman2015-08-311-4/+21
| | | | | Makes it easier to troubleshoot keyboard issues by printing exactly what key events the server is getting from the client.
* Fix infinite update caused by b64dbf2Pierre Ossman2015-06-231-1/+1
| | | | | | The bug fix in b64dbf2 didn't account for the proper request region in the case of continuous updates. Make sure we use the proper variable for which region we've sent updates for.
* Avoid losing updates on partial requestsPierre Ossman2015-06-091-1/+4
| | | | | | A request may be for only part of the frame buffer, meaning we cannot discard all changes just because we've send out an update. There might still be modified areas remaining that haven't been requested yet.
* Clean up server rendered cursor logicPierre Ossman2015-06-091-15/+25
| | | | | | | Variables were reused a bit too heavily and it was possible to get the logic at a point where the server would try to render a cursor where it wasn't needed, and the empty update rect would cause a crash. Clear things up by introducing some more explicit variables.
* Add extra parentheses to avoid and/or priority ambiguityPierre Ossman2015-03-031-1/+1
|
* Reorder class initialiser list to match what actually happensPierre Ossman2015-03-031-2/+3
|
* Remove unused variablesPierre Ossman2015-03-031-1/+0
|
* Move reverse connection information into VNCSConnectionSTPierre Ossman2015-02-131-1/+1
| | | | | The only class that cares if connections are reversed or not is VNCSConnectionST so let it keep track of this fact.
* Restructure Xvnc/libvnc.so code to avoid C++ header hacksPierre Ossman2015-01-261-3/+10
| | | | | | | | The internal Xorg headers are very incompatible with C++ and we've had to resort to all kinds of hacks in order to include them in our C++ code. This approach isn't really viable long term so restructure things so that we have a glue layer written in C that bridges the Xorg core with the RFB classes.
* Limit access to non-shared modePierre Ossman2014-12-021-1/+2
| | | | | | A read-only client should not be allowed to kick out other clients. It will be forced into shared mode, or refused the connection, depending on the neverShared parameter.
* Add AccessSetDesktopSize right.Michal Srb2014-11-241-0/+3
| | | | So clients with limited access rights can not affect it.
* Move image encoding logic into a central EncodeManager classPierre Ossman2014-07-141-66/+8
| | | | | | | | This allows us to apply a lot more server logic independently of which encoder is in use. Most of this class are things moved over from the Tight encoder.
* Use PixelBuffer objects as the interface for encoders and decodersPierre Ossman2014-07-141-15/+15
| | | | | | | This avoid a lot of unnecessary middle men. This also pushes the responsibility for pixel format conversion into the encoders and decoders. The new bufferFromBuffer() is used for direct conversion, rather than PixelTransformer/TransImageGetter.
* Store the mouse cursor in the ConnParams objectPierre Ossman2014-07-141-43/+9
| | | | | | Like we do for everything else. This also gets rid of the callback, which is a bit out of place compared to everything else.
* Add helper class for a rendered cursorPierre Ossman2014-07-141-6/+2
| | | | | | Add a magical cursor framebuffer class for handling when you want to render the cursor on the server side. Keeps the cursor specific magic in one contained place.
* Get rid of the direct access abuse of FullFramePixelBuffer's dataPierre Ossman2014-07-071-5/+11
|
* Encoders/decoders should track the connection objectPierre Ossman2014-07-071-1/+1
| | | | | | The connection object is a much more appropriate object for the decoders and encoders to keep track of. Besides the streams, it also contains state like connection parameters.
* Push encoder and decoder handling down into the connection objectsPierre Ossman2014-07-071-24/+42
| | | | | This keeps the reader and writer objects clean and simple protocol decoders/encoders.
* Remove full support for colour mapsPierre Ossman2014-07-071-29/+0
| | | | | | | | | Gets rid of a loooot of code and complexity. Colour map clients are still supported through an automatically generated map, but we lose the ability to develop a client or server that uses colour maps internally.
* Remove partial update functionalityPierre Ossman2014-07-071-5/+3
| | | | | | Get rid of the ability of encoders to only send part of the rectangle they are given as we don't want partial updates anyway.
* We were not handling the "sync next" fence properly as we sent the responsePierre Ossman2012-07-201-5/+9
| | | | | | | | | right after we got the request (instead of waiting for the next command). This created a race where we could lose pixel format sync between the client and the server. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4943 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Comment where the mysterious 0xFFFF number of rectangles comes from.Pierre Ossman2012-02-281-0/+4
| | | | | | | Patch by Arthur Huillet. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4858 3789f03b-4d11-0410-bbf8-ca57d06f2519
* We need to explicitly trigger a framebuffer update for server side renderedPierre Ossman2011-12-211-1/+3
| | | | | | | | cursors. Previously this happened to work anyway because we had a lot of triggers for updates. After the cleanup, we need to be more explicit. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4824 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Make the comparing update tracker a bit more flexible. It can now be in anPierre Ossman2011-11-201-0/+10
| | | | | | | | | "auto" state where it will be enabled until we deem that the client is better of without it (currently triggered by explicitly stating a low compression level). git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4809 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Cork the connection around updates to better use the congestion windowPierre Ossman2011-11-151-3/+11
| | | | | | | as we might send out multiple small packets git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4804 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Server implementation of continuous updates, including advanced flow control.Pierre Ossman2011-11-151-10/+272
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4803 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implement proper support for fences in the server.Pierre Ossman2011-11-141-1/+56
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4799 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Reimplement the deferred update handling, this time in a more robust andPierre Ossman2011-11-081-1/+5
| | | | | | | well-behaved manner. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4784 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Cork the outgoing TCP stream while we still have messages to process. ThisPierre Ossman2011-11-081-0/+8
| | | | | | | allows more efficent use of the congestion window as we will send fewer packets. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4782 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Avoid some unnecessary processing when server side cursor isn't used (whichPierre Ossman2011-11-081-2/+4
| | | | | | | is the common case). git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4780 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Clean up the interface for VNCSConnectionST. Entry points are more apparentPierre Ossman2011-11-071-56/+83
| | | | | | | and the data flow is now more strictly aimed towards this connection class. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4771 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Fix compiler warnings uncovered with -WallDRC2011-11-031-2/+0
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4755 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Don't try to push out another update if the socket is already full. ThisPierre Ossman2011-10-251-2/+31
| | | | | | | avoids stalling the entire server because of one slow client. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4737 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Ported encoding optimizations from TurboVNC. The changes to the Tight ↵DRC2011-08-111-2/+8
| | | | | | parameters were determined through extensive low-level profiling (see http://www.virtualgl.org/pmwiki/uploads/About/turbototiger.pdf). The other enhancements involved: (1) porting the solid subrectangle pre-computation code from TightVNC/TurboVNC (it makes a pretty big difference-- see report), (2) encapsulating the JPEG encoder in its own class (this eliminates a buffer copy, and the JPEG buffer is now set to a decent size where it shouldn't ever need to be paged or re-allocated, except in rare corner cases), (3) adding support for last rect. encoding (necessary to support the solid rectangle pre-computation enhancements. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4626 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Split out the pixel format conversion magic to its own class and makePierre Ossman2011-03-081-1/+1
| | | | | | | | TransImageGetter be just an ImageGetter interface to that functionality. This allows more flexible use of the pixel conversion routines. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4338 3789f03b-4d11-0410-bbf8-ca57d06f2519
* [Bugfix] Use bitwise NOT instead of logical NOT when working withAdam Tkac2011-02-071-2/+2
| | | | | | | | | VNCSConnectionST::accessRights. Fixes bug ID: 3158501. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4257 3789f03b-4d11-0410-bbf8-ca57d06f2519
* [Development] Replace SSecurityFactoryStandard class by simplier Security class.Adam Tkac2010-04-231-1/+1
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4039 3789f03b-4d11-0410-bbf8-ca57d06f2519
* [Development] Rename common/rfb/secTypes.{h,cxx} to common/rfb/Security.{h,cxx}.Adam Tkac2010-04-231-1/+1
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4033 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Reverted the second part of 3971. I suspect that this code is actuallyPeter Åstrand2010-02-101-1/+1
| | | | | | | | broken, so let's keep the warning until we know it's correct. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3975 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Eliminated two GCC warnings:Peter Åstrand2010-02-101-4/+3
| | | | | | | | | | | * The return statement in needRenderedCursor was way too complicated, separated into intermediate variable. * Using parenthesis in setStatus bit masks. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3971 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Revert previous commit (r3889). Windows code has to be cleaned before thisAdam Tkac2009-09-041-1/+1
| | | | | | | change. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3890 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Replace rfb::strDup by safe_strdup and remove rfb::strFree in favor of free()Adam Tkac2009-09-041-1/+1
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3889 3789f03b-4d11-0410-bbf8-ca57d06f2519
* We should only send ExtendedDesktopSize to a client supporting both it andPierre Ossman2009-05-281-4/+6
| | | | | | | the old DesktopSize. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3817 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Remove debugging output that wasn't supposed to be committed.Pierre Ossman2009-04-241-3/+0
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3788 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Send desktop layout changes separatelyPierre Ossman2009-04-231-7/+17
| | | | | | | | | | Make sure we send any modifications to the desktop layout in a message that does not modify the framebuffer data. This is required to make sure we have a valid state on the client as it drops the framebuffer when it recieves a framebuffer dimension change. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3787 3789f03b-4d11-0410-bbf8-ca57d06f2519
* UltraVNC sends a new non-incr. FUR when it gets a DesktopSize rect, andPierre Ossman2009-04-221-2/+8
| | | | | | | | | TightVNC drops the framebuffer, so we can't realistically send it every non-incr FUR. Besides, the client needs to keep track of framebuffer dimensions anyway. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3786 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Implement server side support for SetDesktopSize.Pierre Ossman2009-03-231-2/+47
| | | | | | | | It has some warts, but should be feature complete. Most of the magic happens in the desktop class though. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3713 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Properly parse the SetDesktopSize message.Pierre Ossman2009-03-211-1/+2
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3708 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Basic book keeping of screen layout on server.Pierre Ossman2009-03-201-0/+2
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3706 3789f03b-4d11-0410-bbf8-ca57d06f2519
* Make the server a little less DoS:able by validating update regions.Pierre Ossman2009-03-201-0/+13
| | | | git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3701 3789f03b-4d11-0410-bbf8-ca57d06f2519