--- sourceforge.net/trunk/rdesktop/parallel.c 2004/01/21 14:40:40 569 +++ sourceforge.net/trunk/rdesktop/parallel.c 2004/01/27 21:06:22 584 @@ -4,15 +4,14 @@ #define IOCTL_PAR_QUERY_RAW_DEVICE_ID 0x0c -#define PARALLELDEV0 "/dev/lp0" - #include "rdesktop.h" #include #include extern RDPDR_DEVICE g_rdpdr_device[]; -PARALLEL_DEVICE * get_parallel_data(HANDLE handle) +PARALLEL_DEVICE * +get_parallel_data(HANDLE handle) { int index; @@ -32,7 +31,6 @@ int parallel_enum_devices(int *id, char *optarg) { - //TODO: Read from configuration file? CUPS? PARALLEL_DEVICE *ppar_info; char *pos = optarg; @@ -48,7 +46,7 @@ pos2 = next_arg(optarg, '='); strcpy(g_rdpdr_device[*id].name, optarg); - toupper(g_rdpdr_device[*id].name); + toupper_str(g_rdpdr_device[*id].name); g_rdpdr_device[*id].local_path = xmalloc(strlen(pos2) + 1); strcpy(g_rdpdr_device[*id].local_path, pos2); @@ -66,14 +64,17 @@ } static NTSTATUS -parallel_create(uint32 device_id, HANDLE * handle) +parallel_create(uint32 device_id, uint32 access, uint32 share_mode, uint32 disposition, uint32 flags, + char *filename, HANDLE * handle) { int parallel_fd; - parallel_fd = open(PARALLELDEV0, O_WRONLY); + parallel_fd = open(g_rdpdr_device[device_id].local_path, O_WRONLY); if (parallel_fd == -1) return STATUS_ACCESS_DENIED; + g_rdpdr_device[device_id].handle = parallel_fd; + *handle = parallel_fd; return STATUS_SUCCESS; } @@ -81,6 +82,7 @@ static NTSTATUS parallel_close(HANDLE handle) { + g_rdpdr_device[get_device_index(handle)].handle = 0; close(handle); return STATUS_SUCCESS; }