Commit Graph

27 Commits

Author SHA1 Message Date
Hardening
dd6d829550 Allow transport_write calls to be non-blocking
This big patch allows to have non-blocking writes. To achieve
this, it slightly changes the way transport is handled. The misc transport
layers are handled with OpenSSL BIOs. In the chain we insert a
bufferedBIO that will bufferize write calls that couldn't be honored.

For an access with Tls security the BIO chain would look like this:
  FreeRdp Code ===> SSL bio ===> buffered BIO ===> socket BIO

The buffered BIO will store bytes that couldn't be send because of
blocking write calls.

This patch also rework TSG so that it would look like this in the
case of SSL security with TSG:
                                         (TSG in)
                              > SSL BIO => buffered BIO ==> socket BIO
                             /
FreeRdp => SSL BIO => TSG BIO
                             \
                              > SSL BIO => buffered BIO ==> socket BIO
                                        (TSG out)

So from the FreeRDP point of view sending something is only BIO_writing
on the frontBio (last BIO on the left).
2014-05-21 17:42:31 +02:00
Marc-André Moreau
8a81208059 libfreerdp-core: move server-side virtual channels back into core 2014-02-15 17:42:59 -05:00
Marc-André Moreau
1fab70504f libfreerdp-core: properly attach tcp event handle for peers 2013-07-20 22:34:05 -04:00
Marc-André Moreau
208c9f844a freerdp: fix core API bugs 2013-06-13 21:34:46 -04:00
Vic Lee
104ff8169d include: add missing extern C decls. 2013-01-22 22:48:52 +08:00
Marc-André Moreau
709e66a596 libfreerdp: header cleanup 2012-12-14 00:25:48 -05:00
Corey C
0905ae6f1f wfreerdp-server: merged upstream 2012-10-11 17:14:55 -04:00
Marc-André Moreau
9d064171a7 freerdp: get rid of old types 2012-10-09 03:26:39 -04:00
Marc-André Moreau
1bf8a45519 freerdp: change uint8, sint8, uint16, sint16 to BYTE, INT8, UINT16, INT16 2012-10-09 03:01:37 -04:00
Marc-André Moreau
1ed644786c freerdp: change boolean type to BOOL type 2012-10-09 02:38:39 -04:00
Marc-André Moreau
e60a092d81 freerdp: fix headers 2012-10-08 23:02:04 -04:00
Corey C
715a172fe8 wfreerdp-server: improved tracking of peers by id 2012-10-06 16:57:58 -04:00
Marc-André Moreau
a11615aebd wfreerdp-server: add PeerLogon callback for server logon 2012-09-16 15:30:11 -04:00
Vic Lee
eaaedbe785 libfreerdp-core/peer: add activated flag. 2012-06-24 22:20:45 +08:00
Vic Lee
ada9936a66 libfreerdp-core/server: add local flag for unix connection. 2012-05-22 23:10:52 +08:00
Vic Lee
4050944f6e server: implement frame acknowledge PDU. 2012-05-11 16:35:11 +08:00
Vic Lee
3a407c24b8 server: implement user-initiated disconnection sequence on server. 2012-04-13 15:58:28 +08:00
Marc-André Moreau
0ed4709167 libfreerdp-core: add server-side capabilities callback 2011-12-14 15:08:09 -05:00
Vic Lee
703e253e9f libfreerdp-core: add channel data sending/receiving for server. 2011-12-10 16:41:29 +08:00
Vic Lee
4b6dd6f14d server: follow context_size change. 2011-10-30 13:43:04 +08:00
Vic Lee
296d5ea753 server: use rdpContext for server-side components. 2011-10-18 15:10:12 +08:00
Marc-André Moreau
5c25717eae xfreerdp-server: encode a single tile from X11 at a hardcoded position 2011-09-13 19:03:06 -04:00
Vic Lee
d3f9a2a9ab server: add Activate callback to correctly handle reactivation. 2011-09-06 18:48:17 +08:00
Vic Lee
57ac9a59eb server: add input callbacks. 2011-08-23 11:52:35 +08:00
Vic Lee
ab7a53ea51 server: add PostConnect callback. 2011-08-23 11:52:34 +08:00
Vic Lee
9ea3f1e5bd server: rename pc prefix to ps. 2011-08-19 01:13:37 +08:00
Vic Lee
5fc87c25cf server: create initial server API. 2011-08-18 16:06:32 +08:00