--- sourceforge.net/trunk/rdesktop/parallel.c 2004/01/29 11:47:14 588 +++ sourceforge.net/trunk/rdesktop/parallel.c 2004/01/29 12:24:15 589 @@ -69,9 +69,11 @@ { int parallel_fd; - parallel_fd = open(g_rdpdr_device[device_id].local_path, O_WRONLY); - if (parallel_fd == -1) + parallel_fd = open(g_rdpdr_device[device_id].local_path, O_RDWR); + if (parallel_fd == -1) { + perror("open"); return STATUS_ACCESS_DENIED; + } g_rdpdr_device[device_id].handle = parallel_fd; @@ -87,6 +89,13 @@ return STATUS_SUCCESS; } +NTSTATUS +parallel_read(HANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) +{ + *result = read(handle, data, length); + return STATUS_SUCCESS; +} + static NTSTATUS parallel_write(HANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) { @@ -121,7 +130,7 @@ DEVICE_FNS parallel_fns = { parallel_create, parallel_close, - NULL, + parallel_read, parallel_write, parallel_device_control };