Commit Graph

20 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
Hardening
597cba042a Fix some compilation warnings 2014-04-29 16:02:31 +02:00
Benoît LeBlanc
d1b9565f51 Added context-specific error management.
Added error codes to replace connectErrorCode.
2014-03-20 18:19:54 -04:00
Benoît LeBlanc
9245d364cc Fixed handling gateway authentication error
Handle NULL pdu
2013-12-18 12:59:53 -05:00
Hardening
7701c9d934 Replace printf(...) by fprintf(stderr, ...) 2013-03-28 23:06:34 +01:00
Marc-André Moreau
f0c94562cc libfreerdp-core: TS Gateway cleanup and NTLM SingleHostData implementation 2013-01-09 12:05:34 -05:00
Marc-André Moreau
c0d12b1b9e libfreerdp-core: implement RTS flow control ack PDU 2012-12-13 11:01:13 -05:00
Marc-André Moreau
c317c60275 libfreerdp-core: reply to TSG ping PDUs 2012-12-13 10:49:52 -05:00
Marc-André Moreau
52353e2427 libfreerdp-core: TSG printf cleanup 2012-12-12 22:34:41 -05:00
Marc-André Moreau
7ff2be09b2 libfreerdp-core: more TSG memory cleanup 2012-12-12 22:03:40 -05:00
Marc-André Moreau
387a152299 libfreerdp-core: TSG reassembly refactoring 2012-12-12 15:55:42 -05:00
Marc-André Moreau
d3e0537d0d libfreerdp-core: more TSG memory cleanup 2012-12-12 00:49:15 -05:00
Marc-André Moreau
3aeb9eb197 libfreerdp-core: TSG partial cleanup 2012-12-11 23:34:51 -05:00
Marc-André Moreau
8aa1143cc6 libfreerdp-core: work around PDU corruption issue with TSG, still experience locking 2012-12-11 17:24:52 -05:00
Marc-André Moreau
4fe3501bc4 libfreerdp-core: refactoring of sequencing of TSG connection 2012-11-29 01:33:19 -05:00
Marc-André Moreau
dde2e60a56 libfreerdp-core: refactor RPC receiving as a synchronized queue 2012-11-28 22:03:18 -05:00
Marc-André Moreau
3634a1bbf1 libfreerdp-core: encapsulate received RPC PDU 2012-11-28 21:25:01 -05:00
Marc-André Moreau
5faebcd77a libfreerdp-core: start asynchronous receiving 2012-11-28 20:30:03 -05:00
Marc-André Moreau
536d7be180 libfreerdp-core: move RTS pdu signature checking to separate file 2012-11-27 22:27:04 -05:00
Marc-André Moreau
83a9af128f libfreerdp-core: move TSG code in subdirectory 2012-11-27 18:52:08 -05:00