Commit Graph

320 Commits

Author SHA1 Message Date
Armin Novak
82134fbef3 Remove unnecessary copy operation. 2015-10-02 09:29:00 +02:00
Martin Haimberger
52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -07:00
Martin Haimberger
65fd259610 misc fixes:
fixed all bugs from the review
checking all WaitFor*Object/s calls
2015-07-30 06:49:21 -07:00
Martin Haimberger
6ab0187d84 Merge remote-tracking branch 'upstream/master' into mh-channel
Conflicts:
	channels/audin/client/oss/audin_oss.c
	channels/drive/client/drive_main.c
	channels/printer/client/printer_cups.c
	channels/printer/client/printer_main.c
	channels/rail/client/rail_main.c
	channels/rdpgfx/client/rdpgfx_main.c
	channels/rdpsnd/client/oss/rdpsnd_oss.c
	channels/remdesk/client/remdesk_main.c
	channels/remdesk/server/remdesk_main.c
	channels/tsmf/client/tsmf_media.c
2015-07-15 01:57:07 -07:00
Martin Haimberger
b8c110d19b introduced channel error reporting system
The rdpContext gets an event which will
get set if an error occoured in a channel.

If a thread or a void callback has to report an
error it will get signaled by this system.
2015-07-15 00:50:35 -07:00
Armin Novak
015754633d Fixed out of bound array access. 2015-06-26 09:50:21 +02:00
Martin Haimberger
6e4e1c2773 Merge remote-tracking branch 'upstream/master' into mh-stream-fix
Conflicts:
	client/Windows/wf_cliprdr.c
2015-06-18 03:06:40 -07:00
Martin Haimberger
e5d5cd3c94 hardend cliprdr
hardend cliprdr server and client
also updated all callbacks in the server and client
implementations
2015-06-18 03:04:31 -07:00
David FORT
12f873f1f9 Fixed MessageQueue and callers 2015-05-29 14:24:14 +02:00
Norbert Federa
1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
Armin Novak
449929fc35 Fixed NULL dereference. 2015-04-15 10:37:28 +02:00
Armin Novak
e68726400d Fixed NULL pointer dereference. 2015-03-31 15:18:45 +02:00
Bernhard Miklautz
6a997fad53 cliprdr: ensure stream != NULL 2015-03-30 17:17:36 +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
Armin Novak
b6d0ce797b Fixed variable initialisation and cleanup. 2015-01-20 12:31:43 +01:00
Armin Novak
3dc1f07847 Added CHANNEL_EVENT_DISCONNECTED handling.
Additional error checks and logging.
2015-01-20 11:45:36 +01:00
Marc-André Moreau
27a8e50e60 channels: fix drdynvc, patch memory leaks 2014-12-27 15:20:29 -05:00
Marc-André Moreau
08c8c6f285 channels/cliprdr: fix empty clipboard format lists, server-side locking 2014-12-20 13:07:30 -05:00
Marc-André Moreau
265e8b9e9d cliprdr/server: make channel thread optional 2014-12-18 11:11:36 -05:00
Marc-André Moreau
afce8061b3 cliprdr/server: split add Open/Close callbacks 2014-12-18 10:46:23 -05:00
Marc-André Moreau
724d9f95a1 channels/cliprdr: move server cliprdr read code to separate function 2014-12-18 09:50:02 -05:00
Marc-André Moreau
c3b172352d cliprdr/cliprdr: add missing server-side cliprdr sending functions 2014-12-15 17:27:20 -05:00
Marc-André Moreau
a69eaddecd channels/cliprdr: add missing messages in cliprdr server 2014-12-15 17:05:32 -05:00
Marc-André Moreau
0d56e26438 channels/cliprdr: fix server-side cliprdr receive 2014-12-15 15:39:56 -05:00
Armin Novak
6b2790774e Fixed missing NULL pointer check. 2014-12-07 00:33:37 +01:00
Marc-André Moreau
182dd76037 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-12-04 10:49:01 -05:00
Norbert Federa
12fe822315 cliprdr: fix segfault caused by invalid seek value 2014-12-04 16:07:01 +01:00
Marc-André Moreau
fdd2dc7601 freerdp: patch valgrind leaks, cleanup 2014-12-03 14:17:27 -05:00
Marc-André Moreau
b8f694d8df mfreerdp: fix cliprdr copy with Windows XP 2014-11-20 16:05:13 -05:00
Marc-André Moreau
c4ab4ad128 channels/cliprdr: partially fix short format names 2014-11-20 14:28:05 -05:00
Armin Novak
abd0abf01b Fixed allocation size warning. 2014-11-16 23:44:10 +01:00
Armin Novak
d653e6382e Fixed uninitialized variable. 2014-11-16 16:58:43 +01:00
Armin Novak
6196eb81b2 Fixed free of uninitialized value. 2014-11-16 16:01:08 +01:00
Marc-André Moreau
24a752a708 channels/cliprdr: remove dependency on deprecated eventing system, svc_plugin.c 2014-11-12 12:56:03 -05:00
Martin Fleisz
0be28ba0f6 Merge pull request #1965 from akallabeth/dynamic-addin-naming
Dynamic channel library naming
2014-10-31 13:42:16 +01:00
Marc-André Moreau
f76f8e3599 channels/cliprdr: add missing callbacks and message definitions 2014-10-23 18:17:53 -04:00
Marc-André Moreau
a1e660d92e freerdp: unify clipboard standard format id definitions 2014-10-16 22:20:12 -04:00
Marc-André Moreau
334dec3c1f winpr: add pragma pack, bitmap + clipboard definitions 2014-10-16 21:45:47 -04:00
Marc-André Moreau
2e82e6d22d xfreerdp: fix clipboard sync 2014-10-15 22:48:18 -04:00
Marc-André Moreau
38bac22204 xfreerdp: migrate to cliprdr callback interface 2014-10-15 21:30:11 -04:00
Armin Novak
059374457d Removed library prefix override. 2014-09-17 11:27:11 +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
Armin Novak
6762d73ae1 Fixed winpr_HexDump calls. 2014-09-09 16:33:05 +02:00
Armin Novak
66b8905ac6 Using special log defines for channels now. 2014-08-11 09:12:01 +02:00
Armin Novak
b97099e815 Replaced fprintf(stderr with DEBUG_WARN 2014-08-07 22:20:13 +02:00
Armin Novak
158e1323de Fixed compiler warnings. 2014-08-07 19:05:48 +02:00
Armin Novak
b252009d36 Replaced custom logging mechanism with WLog wrapper. 2014-08-07 16:51:49 +02:00
Bernhard Miklautz
a9eed46e38 Fix warnings found in Xcode 2014-07-29 05:22:30 +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
53639dea0b channels: reduce dependency on svc_plugin.h 2014-06-11 15:09:28 -04:00
Armin Novak
15ce8c0552 Updated plugins to use new svc_plugin and OnDataReceived API. 2014-06-11 14:42:32 +02:00
Hardening
c076ffb020 Don't use NULL for pWrittenBytes when calling WTSVirtualChannelWrite()
Nothing in the MSDN API says that setting NULL is safe. And if the
implementation uses WriteFile directly, it crashes.
2014-05-28 17:04:24 +02:00
Marc-André Moreau
769502ec72 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-04-26 13:47:01 -04:00
Vic Lee
08b4976f72 Revert "channels: fix link errors."
This reverts commit 2fc7f9c485.
2014-04-22 15:05:53 +08:00
Marc-André Moreau
13d61f341d Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-04-21 16:28:01 -04:00
Marc-André Moreau
9b01663e9d channels/cliprdr: fix cliprdr_process_format_data_response callback usage 2014-04-21 15:48:29 -04:00
Vic Lee
2fc7f9c485 channels: fix link errors. 2014-04-21 17:47:12 +08:00
Zhang Zhaolong
bb2e5c5cb9 clipboard: wfreerdp: implement file clipping. 2014-03-10 14:25:59 +08:00
Zhang Zhaolong
edd3bff950 clipboard: implement file clipping on XP.
add temp directory.
    use %TEMP% directory as file transfering temprorary directory.
    if %TEMP% directory is in C:\, driver C:\ should be redirected in order
    to enable file clipping on XP.
2014-03-10 14:25:56 +08:00
Zhang Zhaolong
353b4f8ba3 clipboard: add events for file clipping. 2014-03-10 14:25:56 +08:00
Zhang Zhaolong
69296ce3bd wfreerdp: build fix. 2014-03-04 13:54:25 +08:00
Marc-André Moreau
6e1cdf1b67 libfreerdp-core: expose opaque HANDLE instead of WTSVirtualChannelManager* 2014-02-27 13:30:04 -05:00
Marc-André Moreau
9afddf66ad libfreerdp-core: implement WTSVirtualChannelOpenEx 2014-02-16 23:00:58 -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
Marc-André Moreau
b833073f57 libfreerdp-core: make client virtual channel API prototypes converge towards original API 2014-02-16 17:27:36 -05:00
Marc-André Moreau
cdcd290c44 wfreerdp: fix most build warnings 2014-02-10 22:12:13 -05:00
Marc-André Moreau
4d6f3b6de4 libfreerdp-client: fix bug in pInterface channel registration 2013-12-05 16:55:28 -05:00
Marc-André Moreau
128fb72ec6 mfreerdp: fix possible crash on gdi termination 2013-11-25 00:25:16 -05:00
Marc-André Moreau
8fa7008435 channels/cliprdr: add callback for data request response 2013-11-24 20:46:56 -05:00
Marc-André Moreau
4fbbc03ac9 channels/cliprdr: fix conflict with CLIPRDR_HEADER 2013-11-24 15:35:26 -05:00
Marc-André Moreau
d7379cd4ff channels/cliprdr: implement more of the callback interface 2013-11-23 23:45:31 -05:00
Marc-André Moreau
21ec46036b channels/cliprdr: start implementing clean callback interface 2013-11-23 21:35:44 -05:00
Marc-André Moreau
b4a78c31bb Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-11-06 13:59:03 -05:00
Zhang Zhaolong
870e52ed1d Add cliprdr on windows. File clipping is not supported yet. 2013-11-05 10:52:17 +08: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
518995a05e freerdp: merge with master 2013-09-16 17:10:27 -04:00
Armin Novak
d1c24aa873 Fixed coverity issue 1047640. 2013-09-05 12:14:31 +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
73c02a7637 channels/cliprdr: fix unicode conversion 2013-08-19 12:21:40 -04:00
Marc-André Moreau
3d0d65e917 channels/rdpdr: server-side device list and user logged on pdu 2013-08-18 20:27:50 -04:00
Marc-André Moreau
af93bee5d2 channels/cliprdr: implement initialization of server-side cliprdr 2013-08-18 15:39:28 -04:00
Marc-André Moreau
bca442a477 channels/cliprdr: start exchanging messages with server-side cliprdr 2013-08-16 21:17:24 -04:00
Marc-André Moreau
0fd705c6c7 channels/cliprdr: start server-side implementation 2013-08-16 16:46:47 -04:00
Armin Novak
d41f2fa2ed Added links to documentation of message sequences for clipboard data exchange. 2013-08-12 12:47:47 +02:00
Armin Novak
a57f1302f4 Fixed invalid package size allocation and calculation in cliprdr_process_format_list_event
Enabled and fixed error handling in cliprdr_process_format_list_response
2013-08-09 16:23:00 +02:00
Marc-André Moreau
8e151409be libfreerdp-client: export and register successfully interface pointer for channel 2013-05-12 21:23:12 -04: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
b4cac74136 xfreerdp-server: fix RemoteFX encoding 2013-05-01 18:15:55 -04:00
Marc-André Moreau
51715636a5 freerdp: remove some deprecated stream utils 2013-04-29 22:35:15 -04:00
Marc-André Moreau
f4df4e4b26 channels: partial cleanup 2013-03-29 14:49:09 -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
Marc-André Moreau
72bf8ea032 libfreerdp-utils: start migrating old eventing system 2013-03-28 18:29:57 -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
62eec0c2b5 libfreerdp-utils: rename internal members of STREAM to match new wStream 2013-03-21 15:01:46 -04:00
david
43cb13585d always initialize lpMultiByteStr parameter when calling ConvertFromUnicode 2013-01-16 01:14:03 +01:00
Marc-André Moreau
d19e2042c3 libfreerdp-utils: remove deprecrated unicode utils in favor of WinPR 2012-12-17 10:20:25 -05:00
Marc-André Moreau
af9be28000 libfreerdp-utils: purge deprecated freerdp_UnicodeToAsciiAlloc util in favor of WinPR ConvertFromUnicode 2012-12-16 23:34:07 -05:00
Marc-André Moreau
808fc210e3 libfreerdp-utils: remove hexdump utils in favor of WinPR utils 2012-12-13 23:54:54 -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
ecddb58ba2 channels: cmake cleanup, USB redirection refactoring 2012-11-20 19:34:52 -05:00
Marc-André Moreau
e14aeb1d8a libfreerdp-core: fix gateway command-line settings 2012-11-08 19:56:37 -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
d3b505b008 channels: fix linking of channels 2012-10-14 03:22:58 -04:00
Marc-André Moreau
0feebdbc37 cmake: refactoring of channel scripts 2012-10-14 02:38:58 -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
5612bc43f8 freerdp: change true/false to TRUE/FALSE 2012-10-09 02:31:28 -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
837cc777ce channels: move include/freerdp/plugins to include/freerdp/client 2012-10-08 20:33:58 -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
3d98273185 channels: fix export of symbols on Windows 2012-10-07 10:21:54 -04:00
Marc-André Moreau
e0693c8f4c cmake: refactoring of channels cmake scripts 2012-10-04 16:54:16 -04:00
Marc-André Moreau
58e1fd325a libfreerdp-utils: get rid of freerdp_uniconv_in 2012-09-23 20:11:50 -04:00
Marc-André Moreau
44f18159c4 libfreerdp-utils: get rid of UNICONV unicode conversion context 2012-09-23 18:41:07 -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
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
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
Pawel Jakub Dawidek
87ac97e21e Don't forget to include config.h. 2012-04-06 20:57:34 +02:00
Christian Nilsson
3c2997b352 Fix duplicate xfree on format_name->name, shuld resolve Issue #387 and #395 ? 2012-02-04 00:04:41 +01:00
Marc-André Moreau
9e4d76648b libfreerdp-core: fix more memory leaks 2012-02-01 21:11:46 -05:00
Marc-André Moreau
b4e542ba46 libfreerdp-core: fix multiple memory leaks detected by valgrind 2012-02-01 18:42:20 -05:00
Marc-André Moreau
0c048708b1 cliprdr: fix realloc on null pointer 2012-02-01 17:28:12 -05:00
Dorian Johnson
69ed9290c7 freerdp-cliprdr: Fix parsing of long-style format lists
Long-style format lists use variable length utf-16le names, but parser was treating the chunks as short-style 32-byte chunks, causing various issues
2011-12-21 16:02:53 -06:00
Mike Gilbert
ce28e06158 channels: Optimize storage of string tables. 2011-11-30 19:11:27 -05:00
Marc-André Moreau
65fe2f367f xfreerdp: added WITH_DEBUG_X11_CLIPRDR option 2011-11-23 10:58:13 -05:00
Marc-André Moreau
a63a196f53 types: refactoring to make use of standard data types when available 2011-11-19 12:19:16 -05:00
Marc-André Moreau
7f3bad1d15 cliprdr: added more debug output, still unable to stabilize 2011-11-17 19:51:30 -05:00
Marc-André Moreau
d2335a5167 cliprdr: fix segmentation fault, still not working though 2011-11-15 15:41:00 -05:00
Marc-André Moreau
4dbe450e39 cliprdr: add support for long format names 2011-11-01 01:09:38 -04:00
Marc-André Moreau
1c5f9c173c cliprdr: add more detailed debug output 2011-10-31 19:15:27 -04:00
Vic Lee
783681664a cliprdr: integrate with xfreerdp. 2011-09-23 13:41:26 +08:00
Rex Tsai
ecbe24ca9a cmake: make linking type as option. 2011-09-01 22:18:58 +08:00
Marc-André Moreau
09980c8a7c include: refactor FRDP_ types to RDP_ 2011-08-17 17:28:26 -04:00
Vic Lee
d7e502dbe1 Add event_class in event object. 2011-08-11 11:14:07 +08:00
Vic Lee
0ab607716a cliprdr: fix compile warning, close issue #19. 2011-07-15 23:41:26 +08:00
Vic Lee
c8a5b83186 libfreerdp-utils/svc_plugin: use a macro to simplify plugin entry. 2011-07-15 23:39:38 +08:00
Vic Lee
e10aba7cae cliprdr: add UI data request -> server data response. 2011-07-13 00:50:00 +08:00
Vic Lee
a93194da06 cliprdr: add server data request -> UI data response. 2011-07-13 00:30:25 +08:00
Vic Lee
b4a0b651f8 cliprdr: process format list response PDU. 2011-07-13 00:01:50 +08:00
Vic Lee
a57fe59660 cliprdr: process format list PDU. 2011-07-12 23:53:54 +08:00
Vic Lee
19c309e5d4 cliprdr: use unicode constants for format names. 2011-07-12 23:13:30 +08:00
Vic Lee
4fc7794ae9 cliprdr: add format list ui event. 2011-07-12 23:06:39 +08:00
Vic Lee
128901d60a cliprdr: add cliprdr->ui sync event. 2011-07-12 23:05:31 +08:00
Vic Lee
35cfae8412 cliprdr: initial work. 2011-07-12 17:06:14 +08:00