Commit Graph

256 Commits

Author SHA1 Message Date
Norbert Federa
1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
Bernhard Miklautz
8615f74eac drdynvc: ensure stream != NULL 2015-03-30 17:23:22 +02:00
Bernhard Miklautz
74c8400789 coding style fixes
Add missing space after if
2015-03-30 17:15:45 +02:00
Bernhard Miklautz
f469e069dc stream: Stream_Ensure*Capacity: change return type
Change the return type of Stream_Ensure*Capacity from void to BOOL to be
able to detect realloc problems easily. Otherwise the only way to detect
this was to check if the capacity after the call was >= the required
size.
In case Stream_Ensure*Capacity fails the old memory is still available
and need to freed outside.

This commit also adds checks to most calls of Stream_Ensure*Capacity to
check if the call was successful.
2015-03-30 16:33:48 +02:00
ivan-83
7b3a552988 + audin OSS support (un tested now)
+ add: COMMAND_LINE_IGN_UNKNOWN_KEYWORD flag for CommandLineParseArgumentsA to ignory unknown keys without fail
+ add: lot of WLog_DBG() in drdynvc, add function names in existing
* change: error text in rdpsnd OSS
* fix: dev in rdpsnd does not work
* fix/change: audio-dev renamed to dev and now work in audin
* fix dynamic channels now work again
2015-03-13 01:28:44 +03:00
Marc-André Moreau
3258c887a4 libfreerdp-core: add channel reconnect 2015-02-06 17:35:14 -05:00
Marc-André Moreau
fa06c4d401 libfreerdp-core: improve reconnection 2015-02-06 14:21:26 -05:00
Marc-André Moreau
82d58086db xfreerdp: partial reconnect fixes 2015-02-05 17:01:56 -05:00
Norbert Federa
70c8acdd67 drdynvc: fix segfaults and a compiler warning
If we send a negative creation status while processing the DVC create
response pdu in drdynvc_process_create_request() we must also close
the created channel. Otherwise we will get duplicated channel IDs
in the channel manager's array list because the server will
eventually reuse the channel ids which we have reported as failed in
previous creation responses.
In order to protect the client from duplicated IDs sent by buggy or
malicious servers I've added an appropriate check in
dvcman_channel_new() which will now return NULL in this case.
Also added a missing NULL check for the result of dvcman_channel_new()
in dvcman_create_channel().
2015-01-26 19:26:38 +01:00
Armin Novak
2f57cca71c Moved arraylist remove to dvcman_close_channel
This ensures, that the resources are also cleaned up if no channel
listener was registered.
2015-01-21 14:16:23 +01:00
Armin Novak
256c64fbed Fixes cleanup when closing a dynamic channel.
The resource cleanup was executed twice for each dynamic channel.
Now cleaning up the resources by array list free callback and only
when closing the channel.
2015-01-21 12:58:18 +01:00
Armin Novak
4d08528f89 Fixed variable initialisation and cleanup. 2015-01-20 12:31:39 +01:00
Armin Novak
9e5ed07556 Added CHANNEL_EVENT_DISCONNECTED handling.
Additional error checks and logging.
2015-01-20 11:58:04 +01:00
Marc-André Moreau
5024c42b76 channels/drdynvc: properly handle DYNVC_OPEN/DYNVC_CLOSE requests 2014-12-28 11:13:51 -05:00
Marc-André Moreau
27a8e50e60 channels: fix drdynvc, patch memory leaks 2014-12-27 15:20:29 -05:00
Marc-André Moreau
6c2ebb2b58 channels: redirection valgrind fixes 2014-12-27 13:50:50 -05:00
erobertor
d647fd2f36 Update drdynvc_main.c
fixed memory leak
2014-12-15 18:36:56 +01:00
Armin Novak
b9908af64a Fixed memory leaks. 2014-11-16 16:02:28 +01:00
Marc-André Moreau
986dae429b freerdp: remove deprecated svc_plugin.c utils 2014-11-12 13:34:07 -05:00
Marc-André Moreau
0e7c95c421 freerdp: remove deprecated eventing system 2014-11-12 13:18:18 -05:00
Armin Novak
059374457d Removed library prefix override. 2014-09-17 11:27:11 +02:00
Armin Novak
bfab9c056a Decreased log level. 2014-09-16 09:43:56 +02:00
Armin Novak
b1e9ffb655 Using wlog for channel logging now.
Fixed compiler warnings and broken callback in urbdrc.
2014-09-15 08:48:46 +02:00
Bernhard Miklautz
0313ca3622 libfreerdp: always build "MONOLITHIC"
"libfreerdp" consisted of multiple (small) single libraries. If the cmake
option MONOLITHIC was used only one library was build combining all of
the libfreerdp-* libraries.
The only exceptions to this are libfreerdp-server and libfreerdp-client these
are build as separate libraries.

This commit obsoltes non-monolithic builds and makes monolithic builds
the default. The cmake option MONOLITHIC is also removed.
2014-09-12 00:19:53 +02:00
Vic Lee
551ee0566a channels: fix memory leak in stream pools. 2014-08-28 23:16:32 +08:00
Armin Novak
66b8905ac6 Using special log defines for channels now. 2014-08-11 09:12:01 +02:00
Armin Novak
b252009d36 Replaced custom logging mechanism with WLog wrapper. 2014-08-07 16:51:49 +02:00
Vic Lee
29cb8680ce server: allow partial channel read (fix rdpsnd). 2014-07-14 20:00:38 +08:00
Bernhard Miklautz
6a49bcfe40 winpr: always build "monolitic"
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.

The only exception is winpr-makecert-tool which is still build as extra
library.

This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
Marc-André Moreau
5c5386fe04 channels/rdpgfx: add egfx command line options and settings 2014-07-03 14:35:03 -04:00
bjcollins
d2d04f764d Find glibconfig.h cmake should use pkgconfig information instead of a hard coded path to /usr/lib.
the OnOpen callback should be called when set to avoid a segfault.
2014-06-27 14:46:27 -05:00
Marc-André Moreau
78d3c82798 xfreerdp: fix multiple egfx-related memory leaks 2014-06-20 13:52:13 -04:00
Marc-André Moreau
ce6ff35297 xfreerdp: fix egfx off-by-one errors 2014-06-19 17:08:50 -04:00
Marc-André Moreau
b782486e89 channels/drdynvc: cleanup 2014-06-17 13:34:23 -04:00
Marc-André Moreau
6f9a256c5c Merge branch 'master' of github.com:awakecoding/FreeRDP into egfx
Conflicts:
	channels/drdynvc/client/dvcman.c
	client/X11/xf_client.c
	include/freerdp/dvc.h
2014-06-12 12:03:08 -04:00
Marc-André Moreau
3d7524cac9 channels/drdynvc: add state machine, add workaround for missing capabilities pdu 2014-06-03 13:00:03 -04:00
Marc-André Moreau
8ea161de61 channels/drdynvc: add OnOpen callback 2014-06-03 09:49:00 -04:00
Armin Novak
4b0b94d04d Updated copyright header.
Added error checks and assertions.
2014-05-26 09:01:52 +02:00
Armin Novak
3fde4f0bc2 Added callback dictionary with context to allow client to communicate with plugin. 2014-05-23 13:04:51 +02:00
Marc-André Moreau
769502ec72 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-04-26 13:47:01 -04:00
Marc-André Moreau
fb3f5e6bd2 libfreerdp-utils: purge deprecated list utils 2014-04-26 12:31:24 -04:00
Vic Lee
08b4976f72 Revert "channels: fix link errors."
This reverts commit 2fc7f9c485.
2014-04-22 15:05:53 +08:00
Vic Lee
2fc7f9c485 channels: fix link errors. 2014-04-21 17:47:12 +08:00
Zhang Zhaolong
69296ce3bd wfreerdp: build fix. 2014-03-04 13:54:25 +08:00
Marc-André Moreau
419e2936be Merge branch 'master' of github.com:awakecoding/FreeRDP into channels 2014-02-27 15:09:06 -05:00
Marc-André Moreau
951368a1ce Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-02-27 13:58:29 -05:00
Marc-André Moreau
6e1cdf1b67 libfreerdp-core: expose opaque HANDLE instead of WTSVirtualChannelManager* 2014-02-27 13:30:04 -05:00
Marc-André Moreau
3e546a22a1 channels: start migrating existing server-side channels to WTSAPI 2014-02-16 22:07:00 -05:00
Marc-André Moreau
82b922a70d channels: rename custom CHANNEL_ENTRY_POINTS_EX to CHANNEL_ENTRY_POINTS_FREERDP to fix conflict 2014-02-16 17:38:59 -05:00
Zhang Zhaolong
1404532d70 drdynvc: fix free invalid pointer. 2014-02-11 17:39:03 +08:00
Marc-André Moreau
cdcd290c44 wfreerdp: fix most build warnings 2014-02-10 22:12:13 -05:00
Marc-André Moreau
37450da55d cmake: fix exporting of targets on pre-2.8.11 2013-10-29 14:47:40 -04:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
990be143bb Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-09-16 17:11:21 -04:00
Bernhard Miklautz
7b2a372c76 drdynvc: fixed masked used in close request 2013-09-16 22:48:08 +02:00
Giacomo Rombaut
0729f3b780 Respond to DYNVC_CLOSE like described in MS-RDPEDYC 2013-09-13 15:22:10 +02:00
Marc-André Moreau
c878200e00 channels/server: refactor to match WTSApi + avoid conflicts 2013-08-20 19:26:36 -04:00
Marc-André Moreau
552cee7431 channels/server: start refactoring to fully match WTSApi 2013-08-20 18:06:19 -04:00
Marc-André Moreau
23a8354656 channels: rdpsnd refactoring, drdynvc initial server-side code 2013-08-18 21:52:55 -04:00
Daniel Bungert
475a44f0e2 Free incompletely initialized dvcs.
If dynamic channels are not completely initialized, the server will
reuse those channel numbers for new channels.
This causes interesting problems when the server asks for a channel
by number, as we can end up with multiple channels with the same number.

Log example of the problem:
DBG_DVC drdynvc_process_receive (341): Cmd=0x1
DBG_DVC drdynvc_process_create_request (249): ChannelId=0 ChannelName=PNPDR
DBG_DVC drdynvc_process_create_request (265): no listener
DBG_DVC drdynvc_process_receive (341): Cmd=0x1
DBG_DVC drdynvc_process_create_request (249): ChannelId=0 ChannelName=TSMF
DBG_DVC tsmf_on_new_channel_connection (378):
DBG_DVC dvcman_create_channel (415): listener TSMF created new channel 0
DBG_DVC drdynvc_process_create_request (260): channel created
DBG_DVC drdynvc_process_receive (341): Cmd=0x3
DBG_DVC drdynvc_process_data (311): ChannelId=0
Warning dvcman_receive_channel_data (517): ChannelId 0 not ready!

In this log, we received data intended for TSMF, but the channel lookup
found the incompletely initialized PNPDR.
2013-06-11 16:49:27 -04:00
Marc-André Moreau
8095bec3ec channels/drdynvc: call OnChannelDisconnected 2013-05-20 15:23:54 -04:00
Marc-André Moreau
d96249e19f libfreerdp-client: start propagating channels initialization to client 2013-05-13 17:39:53 -04:00
Marc-André Moreau
e72f898956 channels/drdynvc: refactor and start exporting interface 2013-05-13 16:07:42 -04:00
Marc-André Moreau
dc0aa4c72d Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-05-10 16:43:19 -04:00
Daryl Poe
089bfbea2c handle drdynv version 3 2013-05-10 13:57:22 -06:00
Marc-André Moreau
fdf3ddcf9e freerdp: purge deprecated stream utils 2013-05-08 17:48:30 -04:00
Marc-André Moreau
fd230443c5 freerdp: purge old stream utils 2013-05-08 16:27:21 -04:00
Marc-André Moreau
5b92413843 freerdp: purge deprecated stream utils 2013-05-08 16:09:16 -04:00
Marc-André Moreau
51715636a5 freerdp: remove some deprecated stream utils 2013-04-29 22:35:15 -04:00
Marc-André Moreau
d187becc28 freerdp: merge with master 2013-03-28 21:20:36 -04:00
Marc-André Moreau
3417a3aab5 freerdp: merge RDP_EVENT type with wMessage 2013-03-28 21:13:56 -04:00
Marc-André Moreau
f757623f7f channels: replace event_type, event_class with id for events 2013-03-28 20:23:16 -04:00
Hardening
7701c9d934 Replace printf(...) by fprintf(stderr, ...) 2013-03-28 23:06:34 +01:00
Marc-André Moreau
8c8a82c31f libfreerdp-utils: purge old STREAM utils 2013-03-21 16:45:25 -04:00
Marc-André Moreau
a8201b0d1b libwinpr-utils: combine old and new stream utils 2013-03-21 15:19:33 -04:00
Marc-André Moreau
eea3414579 libfreerdp-utils: purge deprecated wait_obj utils 2012-11-26 20:15:48 -05:00
Marc-André Moreau
01158f9a34 libfreerdp-utils: purge deprecrated load_plugin utils from source tree 2012-11-21 21:28:48 -05:00
Marc-André Moreau
8a32de3801 libfreerdp: purged source tree from deprecated memory utils 2012-11-21 21:22:06 -05:00
Marc-André Moreau
2a16183f5d libfreerdp-utils: remove deprecated calls to xnew() macro 2012-11-21 20:21:08 -05:00
Marc-André Moreau
ecddb58ba2 channels: cmake cleanup, USB redirection refactoring 2012-11-20 19:34:52 -05:00
Marc-André Moreau
2e1a7447a1 channels: refactoring of channel subsystems 2012-11-19 22:31:15 -05:00
Marc-André Moreau
4a472d5536 libfreerdp-common: added parsing of /vc and /dvc 2012-11-18 00:08:03 -05:00
Marc-André Moreau
925eb59bf1 libfreerdp-common: refactoring of addin loader 2012-11-17 22:03:04 -05:00
Marc-André Moreau
6882b1fa9d mfreerdp-server: initial commit 2012-10-31 23:04:31 -04:00
Marc-André Moreau
5bebfc798d cmake: add client/server channel options 2012-10-19 16:47:48 -04:00
Marc-André Moreau
b5989f7299 cmake: refactoring of channel options with macros 2012-10-19 15:27:55 -04:00
Marc-André Moreau
2f1711c506 libwinpr-path: make tests pass on Windows 2012-10-18 21:11:12 -04:00
Marc-André Moreau
81e485736f channels: refactoring of channels cmake scripts with macros 2012-10-17 02:14:19 -04:00
Marc-André Moreau
0c1fd59d5f cmake: fix client add library macro 2012-10-16 17:33:07 -04:00
Marc-André Moreau
d0314a569e libfreerdp-channels: refactoring of cmake static entry table generation 2012-10-15 16:31:41 -04:00
Marc-André Moreau
010761055e libfreerdp-channels: refactoring of channels cmake scripts with macros 2012-10-15 14:44:46 -04:00
Marc-André Moreau
0feebdbc37 cmake: refactoring of channel scripts 2012-10-14 02:38:58 -04:00
Marc-André Moreau
06fa85f31c cmake: refactoring of MONOLITHIC_BUILD 2012-10-13 17:30:59 -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
2df7aaad39 libfreerdp-utils: get rid of xstrdup in favor of WinPR _strdup 2012-10-08 23:42:01 -04:00
Marc-André Moreau
9909a12af5 libfreerdp-utils: get rid of xmalloc, xrealloc and xfree 2012-10-08 23:21:26 -04:00
Marc-André Moreau
e60a092d81 freerdp: fix headers 2012-10-08 23:02:04 -04:00
Marc-André Moreau
40eea7c76b cmake: rename WITH_MONOLITHIC_BUILD to MONOLITHIC_BUILD 2012-10-08 22:55:06 -04:00
Marc-André Moreau
ac7e1a3aea channels: make rail, drdynvc, cliprdr and rdpsnd built-in channels 2012-10-08 22:48:17 -04:00
Marc-André Moreau
11aa251fca channels: modify plugins to become optionally built-in 2012-10-08 20:26:11 -04:00
Marc-André Moreau
e0693c8f4c cmake: refactoring of channels cmake scripts 2012-10-04 16:54:16 -04:00
Marc-André Moreau
12554c172f winpr: fix build on Windows 2012-10-03 17:53:03 -04:00
Marc-André Moreau
dda32388ff urbdrc: move USB redirection code 2012-10-02 16:54:14 -04:00
Marc-André Moreau
164783904a freerdp: merging with master 2012-10-02 16:32:41 -04:00
Marc-André Moreau
6cb933aa5a channels: added build options to enabled/disable client and server channels 2012-09-22 20:16:38 -04:00
Marc-André Moreau
81974d1b2a channels: moving dynamic virtual channels 2012-09-22 18:08:22 -04:00
Marc-André Moreau
3d65cb1c27 channels: moved client-side implementations in client subdirectories 2012-09-22 17:46:23 -04:00
Marc-André Moreau
cb8c0ef3c8 channels: refactoring of cmake build scripts 2012-09-20 23:39:27 -04:00
Marc-André Moreau
13dbbb9513 libfreerdp-utils: removing mutex util in favor of WinPR mutex API 2012-09-18 17:34:11 -04:00
Dorian Johnson
fb6d86a37f tsmf-ffmpeg: Update to latest versions of api (Fix #285) 2012-09-13 22:27:46 -05:00
Marc-André Moreau
cee2fcc6f0 libfreerdp: fix debug output 2012-09-08 15:27:00 -04:00
Marc-André Moreau
910f9ffed6 libfreerdp: wrap inclusion of config.h with HAVE_CONFIG_H 2012-08-14 17:41:40 -04:00
Marc-André Moreau
d5d1eb7762 libfreerdp: add proper config.h inclusions 2012-08-14 17:09:01 -04:00
Marc-André Moreau
dd91fdac03 channels: add support for monolithic build 2012-08-14 00:48:55 -04:00
Dorian Johnson
3740e2ff46 tsmf: add ability for tsmf audio players to get volume change
notifications, even when the decoder doesn't support it.
2012-08-07 17:45:11 -05:00
Marc-André Moreau
52c697a7e2 channels: start fixing compilation on Windows 2012-07-28 22:24:14 -04:00
Alam Arias
477b90c439 gstreamer: use PRIu64 marco for uint64_t 2012-06-17 12:12:08 -04:00
Alam Arias
0ddea5afa3 ffmpeg: avcodec_init() is been deprecated (and removed) 2012-06-17 09:51:37 -04:00
Alam Arias
0863c2eefd gsteamer: #if 0 to block out unused tsmf_gstream_start_eventloop_thread() and tsmf_gstream_Eventloop_thread_finc() 2012-06-14 12:46:27 -04:00
Alam Arias
c147ee2ed1 test for XRandR for Gstreamer support 2012-06-14 12:46:27 -04:00
Irwan Halim
c9c22fa331 Add GStreamer plugin for Multi-media redirection 2012-06-13 14:45:58 -05:00
Julien Ropé
80f16c6201 Small fixes from static analysis:
- Potential NULL dereference in tsmf_ifman.c
- Check return value for our functions in tsmf_media.c and rdp.c
- Bad binary operator used in gcc.c
- Unreachable code in ntlm.c
- Bad free operation on SCOPE_LIST object in license.c
2012-05-16 15:29:35 +02:00
Julien Ropé
bbb48783e3 Some modifications on the LIST usage.
Made sure the list_*() API was used whenever possible, rather than relying on the internal implementation.
Added comments to the list.c file for documentation.
2012-05-16 11:34:18 +02:00
Vic Lee
c9ad01ea55 dsp: rewrite api to reduce memory allocations. 2012-05-09 16:15:23 +08:00
Marc-André Moreau
6f61ef8772 urbdrc: fix compilation against libusb 2012-04-30 16:28:32 -04:00
Scott Tsai
36a37cc752 Use PULSEAUDIO_INCLUDE_DIR instead of PULSE_INCLUDE_DIRS 2012-04-27 01:14:21 +08:00
Marc-André Moreau
8e64d1803b drdynvc: fix value of cb field 2012-04-25 14:27:38 -04:00
Marc-André Moreau
fa4d8fca1b urbrdc: initial USB redirection support, contributed by Atrust 2012-04-25 14:26:35 -04:00
Daryl Poe
abc3d365d8 Fix parameter parsing in audin:alsa drdynvc code. 2012-04-18 11:16:50 -06:00
Marc-André Moreau
8189702ef3 channels/tsmf: disable deprecation warning 2012-02-17 17:45:58 -05:00
Slava Dubrovskiy
c10866db66 Fix not linked with libpulse (issue 418)
Signed-off-by: Slava Dubrovskiy <dubrsl@altlinux.org>
2012-02-14 13:46:26 -05:00
Marc-André Moreau
7a6c813fcf libfreerdp-utils: extend plugin utils 2012-02-09 19:48:52 -05:00
Bernhard Miklautz
668c8c8cef build: use WITH_XXX instead of XXX_FOUND
To check if something should be en- or disabled WITH_XXX
should be used and not XXX_FOUND.

If XXX_FOUND is used and something gets disabled afterwards (by setting
WITH_XXX to OFF) it will be compiled in as long as XXX_FOUND is found in
cmake's cache file. So disabling a feature, or option, without
clearing the CMakeCache.txt might result in builds with unwanted
configuration.
2012-01-23 14:40:05 +01:00
Bernhard Miklautz
cc24a7ad6a Changed cmake find prefix for pulseaudio.
Now option (WITH_PULSEAUDIO) and package prefix (PULSEAUDIO_FOUND) match.
2012-01-23 14:40:05 +01:00
Marc-André Moreau
5924666748 channels/drdynvc/audin: fix typo in header 2012-01-16 09:20:54 -05:00
Dorian Johnson
39752fa014 drdynvc: dvcman_load_plugin load multiple drdynvc plugins 2011-12-27 16:06:57 -06:00
Dorian Johnson
e303867528 drdynvc-tsmf: make tsmf plugin parser allow mulitple data chunks
Allows one to config both decoder and audio simultaneously
2011-12-27 13:57:40 -06:00
Dorian Johnson
6dae926d86 drdynvc: make audin and tsmf config data parsers recognize path-based plugin loading 2011-12-27 09:55:00 -06:00
Marc-André Moreau
a63a196f53 types: refactoring to make use of standard data types when available 2011-11-19 12:19:16 -05:00
Rex Tsai
7a0613b8dd tsmf: fix when using older then libav major version 53. 2011-11-11 01:02:10 +08:00
Anthony Tong
0e9ad32bcb port of llyzs patch from freerdp-old, issue #26 2011-10-19 10:55:54 -04:00
Eduardo Beloni
35d2502af5 channels/drdynvc/audin: fix segfault when device name is not specified 2011-10-04 09:28:44 -03:00
Vic Lee
f5ccf34605 audin: migrate audin plugin and ALSA/PulseAudio devices. 2011-09-21 15:18:54 +08:00
Vic Lee
6c914cd60d tsmf: fix incorrect data realignment. 2011-09-20 22:03:05 +08:00
Vic Lee
ebaf94d6d6 tsmf: add ffmpeg, alsa and pulse sub-plugins. 2011-09-20 14:27:10 +08:00
Vic Lee
dadb94a1e3 tsmf: add tsmf main module. 2011-09-20 01:58:27 +08:00
Vic Lee
fee5b3fab8 drdynvc: fix incorrect data length handling. 2011-09-19 22:53:00 +08:00
Vic Lee
6d6c5062ab drdynvc: fix buffer pointer type. 2011-09-19 17:04:14 +08:00
Rex Tsai
ecbe24ca9a cmake: make linking type as option. 2011-09-01 22:18:58 +08:00