Commit Graph

86 Commits

Author SHA1 Message Date
Norbert Federa 1eff1a345e free can handle NULL perfectly fine 2015-05-11 09:07:39 +02:00
MartinHaimberger 9a4f645f78 Merge pull request #2582 from nfedera/fix-2015-04-28-01
Fix unchecked CreateEvent calls and misc fixes
2015-05-04 10:14:27 +02:00
Baruch Siach 3b7d3190a1 Fix build with newer uclibc versions
uClibc master branch, as well as uclibc-ng add eventfd_{read,write}
definitions. Instead of testing for __UCLIBC__, have cmake explicitly check
for the existence of eventfd_read and save the result in
WITH_EVENTFD_READ_WRITE.

Fixes build errors like:

.../winpr/libwinpr/synch/event.c:120:12: error: static declaration of 'eventfd_read' follows non-static declaration
 static int eventfd_read(int fd, eventfd_t* value)
            ^
In file included from .../winpr/libwinpr/synch/event.c:39:0:
.../usr/include/sys/eventfd.h:37:12: note: previous declaration of 'eventfd_read' was here
 extern int eventfd_read (int __fd, eventfd_t *__value);
            ^
.../winpr/libwinpr/synch/event.c:125:12: error: static declaration of 'eventfd_write' follows non-static declaration
 static int eventfd_write(int fd, eventfd_t value)
            ^
In file included from .../winpr/libwinpr/synch/event.c:39:0:
.../usr/include/sys/eventfd.h:40:12: note: previous declaration of 'eventfd_write' was here
 extern int eventfd_write (int __fd, eventfd_t __value);
2015-04-29 20:31:25 +03:00
Norbert Federa ef1fd12b15 Fix unchecked CreateEvent calls and misc fixes
1)
Added missing checks for CreateEvent which also required the
following related changes:

- changed freerdp_context_new API to BOOL
- changed freerdp_peer_context_new API to BOOL
- changed pRdpClientNew callback to BOOL
- changed pContextNew callback to BOOL
- changed psPeerAccepted callback to BOOL
- changed psPeerContextNew callback to BOOL

2)
Fixed lots of missing alloc and error checks in the
changed code's neighbourhood.

3)
Check freerdp_client_codecs_prepare result to avoid segfaults
caused by using non-initialized codecs.

4)
Fixed deadlocks in x11 caused by missing xf_unlock_x11() calls
in some error handlers

5)
Some fixes in thread pool:
- DEFAULT_POOL assignment did not match TP_POOL definition
- don't free the pool pointer if it points to the static DEFAULT_POOL
- added error handling and cleanup in InitializeThreadpool
2015-04-29 18:18:39 +02:00
Bernhard Miklautz 850de59b55 winpr: add checks for *alloc
Add missing checks if memory allocation was successful. Also adapt
caller(s) when possible.
2015-04-08 11:34:37 +02:00
Bernhard Miklautz 20e2774aa8 comm/tests: set label comm
Set the comm label to all comm related test that they can be excluded
more easily.
2015-04-08 11:34:37 +02:00
Armin Novak afe8bd2a86 Fixed missing checks for invalid handle. 2015-03-31 15:18:45 +02:00
David FORT 52bd4469d9 Make handle operations static
This patch moves the handle operations in a static struct.
2015-03-16 10:31:26 +01:00
Marc-André Moreau e6ceb5e13f Merge pull request #2459 from akallabeth/handle_close_cb
Refactored WaitForSingleObject and CloseHandle
2015-03-12 07:35:39 -04:00
Armin Novak 7fb4c9ae14 Using new handle cleanup structure 2015-03-11 17:57:01 +01:00
Emmanuel Ledoux a8fc5fc68b winpr-comm: fixed a regression about timeouts to block of first bytes when required. Added timeouts values in the DEBUG log. 2015-03-09 20:01:51 +01:00
Emmanuel Ledoux 6f06c2ff3c winpr-comm: fixed timeouts to return immediately with zeroed timeval structures instead of a NULL pointer. 2015-02-03 21:16:29 +01:00
Armin Novak be3df80c9c Fixed memory leak. 2014-11-16 22:45:09 +01:00
Emmanuel Ledoux 096159054b winpr-comm: ignore errors on TIOCGICOUNT during the port initialization but the permissive mode must be on afterwards. 2014-11-13 19:54:32 +01:00
Emmanuel Ledoux e9749c6b3f serial: ability to turn on the permissive mode from the command line 2014-09-16 12:08:33 +02:00
Emmanuel Ledoux 275a1b9bc4 winpr-comm: fixed set_baud_rate()/get_baud_rate() functions in comm_serial_sys.c (the issue came from a wrong extrapolation of the COMMPROP's MaxBaud field)
winpr-comm: got rid of SERIAL_BAUD_* values which are identical to BAUD_* ones
2014-09-16 11:21:01 +02:00
Marc-André Moreau f30d7cf66a Merge pull request #2024 from repzilon/master
uclibc build fixes and recompressed images
2014-08-18 13:08:52 -04:00
Armin Novak 2436e41e63 Fixed warnings for comm tests. 2014-08-11 09:17:56 +02:00
Rene Rheaume 5f9c36da5d * Use futimens that is POSIX-compliant and compatible with uclibc instead of futimes.
* Borrowed eventfd_read and eventfd_write from bionic for uclibc compatibility (uclibc headers are broken unfortunately). Bionic and
FreeRDP are both under the Apache 2.0 license.
2014-08-06 22:06:01 -04:00
Bernhard Miklautz 352dbd52e2 winpr/comm: don't build on apple
Since code is only defined on linux building comm causes /usr/bin/ranlib
to warn about empty objects and the test doesn't build at all on apple.
2014-07-29 05:22:29 +02:00
Bernhard Miklautz 8c318da7b1 fix compiler warnings 2014-07-29 05:22:29 +02:00
Marc-André Moreau 4f4603133e winpr: fix build on Windows with unit tests 2014-07-17 12:02:47 -04: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
Emmanuel Ledoux 80f641c38a winpr-comm, serial: excluded Android platforms as well 2014-07-04 17:40:06 +02:00
Emmanuel Ledoux 7bbeff3427 winpr-comm: made its current implementation verific specific to __linux__ since it was done on top of NTTY. 2014-07-04 16:16:26 +02:00
Emmanuel Ledoux 37dc55d7c2 winpr-comm: fixed QueryCommDevice() when used with some wide characters 2014-07-04 12:24:41 +02:00
Emmanuel Ledoux 94dfce4f52 winpr-comm: made the unit tests to succeed when /dev/ttyS0 is not available 2014-07-03 19:01:45 +02:00
Emmanuel Ledoux 0bd9f1b789 winpr-comm: added _CommDevicesLock to protect accesses to _CommDevices 2014-07-03 11:07:48 +02:00
Emmanuel Ledoux db1fba3a68 Revert "winpr-handle: removed RegisterHandleCloseCb() which would require a better synchronization"
RegisterHandleCloseCb() is also useful to don't get a circular dependency, a better synchronization must be find out...

This reverts commit 8f3b3fa573.
2014-07-02 16:57:20 +02:00
Emmanuel Ledoux 8f3b3fa573 winpr-handle: removed RegisterHandleCloseCb() which would require a better synchronization
winpr-comm: don't use anymore RegisterHandleCloseCb()
2014-07-02 16:19:28 +02:00
Emmanuel Ledoux 0d54307251 winpr-comm: introduced CommLog_Print(...). Don't use anymore DEBUG_WARN() and DEBUG_MSG() macros 2014-07-02 15:59:16 +02:00
Emmanuel Ledoux d93c6b1362 serial: don't use wlog API yet
winpr-comm: cleared some #warnings due to wrong printf formats
2014-06-25 17:02:10 +02:00
Emmanuel Ledoux 11ed1f122f winpr-comm: comm_serial_sys, got rid of the latest TMP tags 2014-06-20 16:30:59 +02:00
Emmanuel Ledoux b2bfc8004c winpr-comm: gathered together all SERIAL_EV_* #defines 2014-06-20 15:56:41 +02:00
Emmanuel Ledoux f454a5c0c8 winpr-handle: CloseHandle(), added ability to register some callback functions
winpr-comm: implemented CommCloseHandle()
2014-06-19 19:07:45 +02:00
Emmanuel Ledoux d38a323526 winpr-comm, winpr-file: better initialization of the static variables 2014-06-19 12:03:36 +02:00
Emmanuel Ledoux e6c82f99d5 serial: ability to setup the server serial driver thanks to a third parameter on the command line 2014-06-18 18:20:21 +02:00
Emmanuel Ledoux 62298fcd95 winpr-comm: renamed REMOTE_SERIAL_DRIVER by SERIAL_DRIVER or ServerSerialDriver according the context 2014-06-18 15:58:08 +02:00
Emmanuel Ledoux 62d893b2bd winpr-comm: implemented IOCTL_SERIAL_RESET_DEVICE 2014-06-17 17:49:06 +02:00
Emmanuel Ledoux 9fc0e6eccc winpr-comm: CommReadFile and CommWriteFile are now protected by a mutex
winpr-comm: implemented IOCTL_SERIAL_IMMEDIATE_CHAR
2014-06-17 16:34:20 +02:00
Emmanuel Ledoux 34c3654faf winpr-comm: implemented IOCTL_SERIAL_CONFIG_SIZE 2014-06-17 15:19:16 +02:00
Emmanuel Ledoux 0db3d9dbb0 winpr-comm: cleaning up code, focused on indentation and whitespaces 2014-06-16 19:18:45 +02:00
Emmanuel Ledoux 50efce67f5 winpr-comm: completed support of Read*Timeout 2014-05-28 22:11:19 +02:00
Emmanuel Ledoux 16b6c44ef7 winpr-comm: need to purge _purge()'s events before read and write operations 2014-05-28 20:15:08 +02:00
Emmanuel Ledoux f26c7ee498 winpr-comm: fixed _purge(), eventfd_read() and eventfd_write() just return a error code, not a number of bytes read or written 2014-05-28 19:10:01 +02:00
Emmanuel Ledoux 85343a435a winpr-comm: completed _purge() supporting SERIAL_PURGE_RXABORT
winpr-comm: CommReadFile, support of FREERDP_PURGE_RXABORT sent by _purge()
2014-05-28 18:42:23 +02:00
Emmanuel Ledoux cdbba47eee winpr-comm: CommWriteFile, completed support of WriteTotalTimeout 2014-05-28 17:18:33 +02:00
Emmanuel Ledoux 4715009965 winpr-comm: completing _purge() on write operations (SERIAL_PURGE_TXABORT)
winpr-comm: CommWriteFile, implemented the WriteTotalTimeout
2014-05-28 16:41:24 +02:00
Emmanuel Ledoux 1e9e8b68bf winpr-comm: got IOCTL_SERIAL_GET_DTRRTS 2014-05-28 11:39:10 +02:00
Emmanuel Ledoux f959590bd2 winpr-comm: _get_commstatus() just some comments about HoldReasons. 2014-05-28 10:44:52 +02:00