FreeRDP/libfreerdp/core/gateway
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
..
http.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
http.h Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
ncacn_http.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
ncacn_http.h libfreerdp-utils: purge old STREAM utils 2013-03-21 16:45:25 -04:00
ntlm.c Misc fixes to check OOM 2014-04-10 21:10:19 +02:00
ntlm.h libfreerdp-utils: purge old STREAM utils 2013-03-21 16:45:25 -04:00
rpc_bind.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
rpc_bind.h libfreerdp-core: refactoring of sequencing of TSG connection 2012-11-29 01:33:19 -05:00
rpc_client.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
rpc_client.h libfreerdp-core: fix locking with TS Gateway 2013-03-27 20:06:10 -04:00
rpc_fault.c Replace printf(...) by fprintf(stderr, ...) 2013-03-28 23:06:34 +01:00
rpc_fault.h libfreerdp-core: map DCE error codes 2012-12-07 18:33:52 -05:00
rpc.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
rpc.h Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
rts_signature.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
rts_signature.h libfreerdp-core: move RTS pdu signature checking to separate file 2012-11-27 22:27:04 -05:00
rts.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
rts.h libfreerdp-core: encapsulate received RPC PDU 2012-11-28 21:25:01 -05:00
tsg.c Allow transport_write calls to be non-blocking 2014-05-21 17:42:31 +02:00
tsg.h Gateway: Parsing fix for Create Tunnel Response 2013-10-17 14:51:04 -06:00