Marc-André Moreau
a8be174e03
libfreerdp-core: remove ineffective full duplex locks
2014-06-01 11:20:13 -04:00
Marc-André Moreau
1ac2350ec5
libfreerdp-core: fail more gracefully when transport thread dies
2014-06-01 10:46:43 -04:00
Marc-André Moreau
98077cfc24
Merge branch 'master' of github.com:FreeRDP/FreeRDP
...
Conflicts:
libfreerdp/core/transport.c
2014-05-30 15:06:07 -04:00
Marc-André Moreau
b1416af362
libfreerdp-core: add locks to disable full duplex BIOs (currently unsafe)
2014-05-30 14:53:10 -04:00
Marc-André Moreau
d2ad5f698b
libfreerdp-core: fix VerifyX509Certificate to make distinction between gateway and direct connection
2014-05-30 14:36:18 -04:00
Marc-André Moreau
709df9aecc
libfreerdp-core: add connection timeout, fix gateway bypass local
2014-05-30 14:03:20 -04:00
Vic Lee
e4e1315131
transport: add another null pointer check.
2014-05-31 01:08:00 +08:00
Marc-André Moreau
629858b676
libfreerdp-core: add gateway-usage-method command line option, avoid resetting BIO flags we shouldn't reset
2014-05-30 12:31:26 -04:00
Vic Lee
a3461cef06
transport: add a null pointer check.
2014-05-30 23:34:04 +08:00
Hardening
5c9a6408cf
Fixed invalid declaration and missing argument
2014-05-21 19:13:40 +02:00
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
c2a59c23a7
libfreerdp-core: fix potential crash on session redirection failure
2014-04-28 16:44:52 -04:00
Bernhard Miklautz
630cb35aa5
transport: fix variable initialization
...
Fixes possible problem when NLA is enabled and header verification fails.
2014-04-17 12:08:09 +02:00
Norbert Federa
4e2b696221
libfreerdp-core: fix transport_check_fds
...
This patch fixes an issue with hung clients connected to FreeRDP server:
- Removed the completely useless inner while loop which used the transport
receive buffer stream position as break contition: The transport receive
buffer stream is replaced after each iteration of this loop with a fresh
instance from a pool which has the position set to 0. Thus it was
technically impossible that this loop would ever be run twice.
- We must not always return if transport_read_nonblocking returns 0:
transport_read_nonblocking() is also called in transport_write() and
therefore it is possible that the stream position of the transport
receive buffer is already > 0 when entering transport_check_fds.
2014-04-03 21:42:32 +02:00
Marc-André Moreau
56d75ac892
libfreerdp-core: fix non-C89 declaration
2014-04-01 20:56:34 -04:00
Marc-André Moreau
feea87b42f
libfreerdp-crypto: make distinction between TLS connection error and user cancellation
2014-04-01 16:23:27 -04:00
Marc-André Moreau
a8551f4008
libfreerdp-core: fix potential issue while reading packet headers
2014-03-27 17:09:26 -04:00
Marc-André Moreau
3f07157637
libfreerdp-core: enforce checking of NLA packets in transport only when expecting NLA
2014-03-27 14:24:15 -04:00
Marc-André Moreau
14b75d1b27
libfreerdp-core: fix build warnings and windows broken build
2014-03-25 15:19:52 -04:00
Marc-André Moreau
4c920506ed
libfreerdp-core: add 'Bypass RD Gateway server for local addresses' feature
2014-03-24 14:44:18 -04:00
Benoît LeBlanc
4bed3d082f
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-03-21 14:03:38 -04:00
Benoît LeBlanc
d1b9565f51
Added context-specific error management.
...
Added error codes to replace connectErrorCode.
2014-03-20 18:19:54 -04:00
Marc-André Moreau
40ffe51aef
Merge branch 'master' of github.com:mrthebunny/FreeRDP
2014-03-20 09:49:51 -04:00
Norbert Federa
52f06250fd
libfreerdp-core: fixed transport
...
Commit 1daea0d0dc
introduced an
error: If transport_read_nonblocking returns 0 we may not return
without checking if the ReceiveBuffer is empty.
2014-03-19 21:06:21 +01:00
Benoît LeBlanc
af28a35e0d
Transport: closing transport before sending stop event caused SSL errors when stopping the session.
2014-03-18 15:27:23 -04:00
Marc-André Moreau
8b15db3b66
Merge branch 'master' of github.com:awakecoding/FreeRDP
2014-03-11 11:55:49 -04:00
Mike McDonald
1daea0d0dc
Modified transport_check_fds to deliver all available PDUs before returning to the caller. This prevents the caller from waiting indefinitely for a socket to get signalled that data is available. It fixes a problem with Microsoft mobile clients connecting to FreeRDS whereby the client places both the MCS Erect Domain and MCS Attach User PDUs into the same ethernet frame. As a result, FreeRDS was only processing the first PDU and then blocking indefinitely waiting for data to arrive on the socket.
2014-03-10 15:35:14 -04:00
Benoît LeBlanc
557c082458
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-03-05 16:35:22 -05:00
Marc-André Moreau
8a44b2baa6
libfreerdp-core: add spn-class option
2014-02-12 00:43:02 -05:00
Benoît LeBlanc
53f2b8511d
Merge branch 'master' of git://github.com/awakecoding/FreeRDP
2014-02-06 12:13:39 -05:00
Marc-André Moreau
e8a9b7ff14
libfreerdp-core: fix ignored port settings for TS Gateway and vmconnect
2014-02-05 11:54:42 -05:00
Benoît LeBlanc
70cc837eaf
Transport: trigger OnErrorInfo if a read/write error forced the thread to closed.
2013-12-20 18:26:07 -05:00
Benoît LeBlanc
ad4d5c1ce7
Added timeout on blocking send, receive operations
2013-12-20 18:22:29 -05:00
Benoît LeBlanc
44e7d2f36c
error handling in rpc and transport functions
2013-12-20 17:56:59 -05:00
Marc-André Moreau
51ad85e0ee
libfreerdp-core: send Access Denied TLS alert when server-side NLA fails
2013-12-18 19:44:18 -05:00
Benoît LeBlanc
8c1f836ac8
- SSL verification callback: send correct hostname and port
...
- Gateway Authentication callback.
- Handling “use same credentials”
2013-12-06 22:15:45 -05:00
Marc-André Moreau
f429b909a9
libfreerdp-core: fix transport_free in cases where transport thread was not started
2013-11-26 11:30:44 -05:00
Marc-André Moreau
c4492411e4
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2013-11-14 19:41:59 -05:00
Armin Novak
31ffb498f8
Fixed argument checks in <transport_disconnect>
2013-11-14 10:09:21 +01:00
Marc-André Moreau
b0b8b6aa9e
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2013-11-12 12:59:41 -05:00
Armin Novak
0ac908ba20
Added assertions to detect invalid call sequences of <transport_free>
...
and <transport_disconnect>.
2013-11-12 15:04:26 +01:00
Marc-André Moreau
70aed3fa85
libfreerdp-core: minor style cleanup
2013-11-08 13:57:41 -05:00
Marc-André Moreau
5536033a8a
libfreerdp-core: transport refactoring
2013-11-07 17:37:58 -05:00
Marc-André Moreau
61f95fbe16
libfreerdp-core: transport code style cleanup
2013-11-07 15:14:59 -05:00
Marc-André Moreau
9921e519a9
mfreerdp: fix termination of MacFreeRDP
2013-11-05 11:49:42 -05:00
Marc-André Moreau
3d339b04d9
libfreerdp-core: modify parsing functions to return int instead of BOOL to propagate session redirection return code
2013-11-04 15:52:29 -05:00
Marc-André Moreau
1f31fd9ae1
libfreerdp-core: fix deadlock in transport thread
2013-11-04 14:16:59 -05:00
Marc-André Moreau
813a26a212
libfreerdp-core: change transport thread
2013-11-04 12:40:29 -05:00
Marc-André Moreau
13b6678977
libfreerdp-core: start untangling session redirection
2013-11-03 16:25:56 -05:00
Marc-André Moreau
3e3c0f1942
libfreerdp-core: fix potential asynchronous queuing memory problems for primary drawing orders
2013-11-03 13:29:48 -05:00