Commit Graph

266 Commits

Author SHA1 Message Date
Jacek Caban 0973b8d2c3 server: Improve FSCTL_PIPE_PEEK error handling.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 10:49:07 +02:00
Jacek Caban 8e5bc0daf7 server: Store pipe state in pipe_end struct and return it in FSCTL_PIPE_PEEK.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-08-15 10:49:07 +02:00
Hans Leidekker dedd450689 kernel32: Implement GetNamedPipeClient/ServerProcessId.
Signed-off-by: Hans Leidekker <hans@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-04-11 16:23:05 +02:00
Jacek Caban c9833f89e5 server: Add FSCTL_PIPE_TRANSCEIVE implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 16:06:03 +02:00
Jacek Caban a588a5a397 server: Add a helper for queuing pipe message.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 16:06:02 +02:00
Jacek Caban bb9c4198fc server: Don't change iosb without associated async in wake_message.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-29 16:06:02 +02:00
Jacek Caban 1ce2201ed8 server: Share security descriptor among all pipe instances.
Based on patch by Jonathan Doron.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-27 11:06:43 +01:00
Jacek Caban d4d6330f0a server: Add support for querying FileNameInformation on named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-22 12:19:43 +01:00
Jacek Caban 6b08e60f03 server: Introduce get_file_info request for server-side NtQueryInformationFile implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-22 12:19:43 +01:00
Jacek Caban 0a11448968 server: Use default_fd_signaled for named pipe client.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-28 19:08:44 +01:00
Zebediah Figura 7477792b4c server: FSCTL_PIPE_LISTEN on a pipe client should return STATUS_ILLEGAL_FUNCTION.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-10 19:52:36 +02:00
Jacek Caban c295dd6bda server: Store named pipe fd in pipe_end throughout its whole life time.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-09 19:53:51 +02:00
Jacek Caban d520f30b4d server: Get rid of no longer needed use_server_io.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-05 19:33:09 +02:00
Jacek Caban 2659a796f7 server: Get rid of no longer used support for queuing client side asyncs on named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-05 19:33:09 +02:00
Jacek Caban f16f7dc8ce server: Get rid of no longer used support for flush on socket-based named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-04 21:52:37 +02:00
Jacek Caban 4dbb2cbfc4 server: Get rid of no longer used support for creating socket-based named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-04 21:51:23 +02:00
Jacek Caban 7eb7854161 server: Use server side named pipe implementation in byte mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-04 21:40:56 +02:00
Jacek Caban e5a43fa9c8 server: Don't queue zero size writes in byte mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-04 21:34:47 +02:00
Jacek Caban f68bea526f server: Support FSCTL_PIPE_PEEK in byte mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-04 21:33:02 +02:00
Jacek Caban 688c7a99d2 server: Return error for FSCTL_PIPE_PEEK calls on disconnected pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-04 21:24:28 +02:00
Jacek Caban 3f07c6e256 server: Add FileFsDeviceInformation implementation for named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-03 09:41:19 +02:00
Jacek Caban 2ab2f31f18 server: Allow server side NtQueryVolumeInformationFile implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-10-03 09:39:52 +02:00
Alexandre Julliard 38d0aa68da server: Always make pipes non-blocking.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-09-22 15:11:55 +02:00
Jacek Caban 7b33613fc4 server: Make fd_queue_async infallible.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-05 10:43:14 +02:00
Jacek Caban 0b4c8bf93f server: Make async_queue object a simple list instead of a server object.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-05 10:39:54 +02:00
Jacek Caban 54234b8a47 server: Associate named pipe device waiters queue with its fd.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-03 15:57:46 +02:00
Jacek Caban 10c1f245e4 server: Use create_request_async in flush request handler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:35:33 +02:00
Jacek Caban c56c42ff79 server: Use create_request_async in ioctl request handler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:32:49 +02:00
Jacek Caban 2bd828b13c server: Use create_request_async for write requests.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:23:36 +02:00
Jacek Caban 0fb6099b01 server: Preallocate wait handle in create_request_async and return it in read request.
alloc_handle is failable and when we're returning the handle, handling
error properly is not really possible.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 12:23:35 +02:00
Zebediah Figura d37bfe960f kernel32: Implement bytes left in PeekNamedPipe().
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-22 13:46:18 +02:00
Jacek Caban f6b2ccc54b server: Use common get_fd_type implementation for both pipe end implementations.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-24 15:29:40 +02:00
Jacek Caban 9d666869f3 server: Remove no longer needed blocking argument from flush fd op.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:29 +02:00
Jacek Caban c9d9adaf65 server: Remove no longer needed blocking argument from write fd op.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:27 +02:00
Jacek Caban 5e584e936b server: Remove no longer needed blocking argument from read fd op.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:26 +02:00
Jacek Caban 047062b28b server: Remove no longer needed blocking argument from ioctl fd op.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-12 19:11:24 +02:00
Jacek Caban 975c5381ed server: Added support for flushing client pipe.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-27 16:54:24 +02:00
Jacek Caban aa472f5eb5 server: Added support for message mode named pipe reads.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-27 16:54:24 +02:00
Jacek Caban b682e1c41d server: Use server-side I/O for message mode named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 21:07:09 +01:00
Jacek Caban 197674669e server: Don't release client fd in do_disconnect for pipes in server-side I/O mode.
If server closes without disconnect, it should be still possible to read
remaining buffered data.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 21:06:58 +01:00
Jacek Caban 56ae76ce84 server: Implement server-side named pipe read.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 21:06:49 +01:00
Jacek Caban d4139833c1 server Introduce read queue for server-side named pipe I/O.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-24 21:06:47 +01:00
Jacek Caban 134c83203a server: Added server-side FSCTL_PIPE_PEEK implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 18:52:58 +01:00
Jacek Caban 7ae689d668 server: Implement server-side named pipe write.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 18:51:51 +01:00
Jacek Caban 4b2d5171e0 server Introduce write queue for server-side named pipe I/O.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 18:50:32 +01:00
Jacek Caban 2fad531cb5 server: Implement disconnecting message queue.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 18:50:19 +01:00
Jacek Caban 9db22fdfcf server: Introduce pipe message queue.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-22 18:50:15 +01:00
Jacek Caban ae5684479e server: Use no_fd_queue_async for named pipe ends in server I/O mode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 19:36:55 +01:00
Jacek Caban a8023d300c server: Introduce server-side I/O mode for named pipes.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 19:36:45 +01:00
Jacek Caban c5afc9f9b6 server: Store buffer size in pipe_end.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 19:36:37 +01:00
Jacek Caban 316112e3b4 server: Store connected pipe_end in pipe_end struct.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-20 19:36:35 +01:00
Jacek Caban e50d49c17a server: Moved server-independent parts of pipe_server_flush into separated function.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-22 20:20:55 +01:00
Jacek Caban 8989867544 server: Introduced new pipe_end struct containing common parts of pipe_client and pipe_server.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-22 20:20:53 +01:00
Jacek Caban a3acdf117f server: Pass existing async object to fd_queue_async.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-22 20:20:50 +01:00
Jacek Caban a9c51f4e8a server: Create async object in flush request handler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:24:13 +01:00
Jacek Caban bede6499ed server: Create async object in ioctl request handler.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:24:11 +01:00
Jacek Caban 91bd81441f server: Allow creating async object not associated with a queue.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-02-21 14:22:44 +01:00
Jacek Caban 64dc8f5c48 server: Store iosb in async object.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-05 16:11:03 +01:00
Jacek Caban d8bfbbdc07 server: Signal pipe server fd in create_pipe_server.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-02 15:56:05 +01:00
Jacek Caban ad1e0609a0 server: Get rid of no loner used cancel_async from fd_ops.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-12-01 13:50:59 +01:00
Ken Thomases 780ede1cde server: Make disconnecting a named pipe immediately close the client's connection and allow the server to initiate a new connection.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-21 13:39:10 +02:00
Alexandre Julliard c7f16d6220 server: Add a helper function to create a symlink to an existing object.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 15:34:08 +09:00
Sebastian Lackner 20651c7dfe server: Fix possible leak of root object in create_named_pipe handler.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-26 14:50:50 +09:00
Alexandre Julliard 3ea7f7d2f4 server: Set the security descriptor at object creation.time.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:07:30 +09:00
Alexandre Julliard ff9d90bbb0 server: Use a standard object for object attribute roots instead of a directory.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-12 23:07:30 +09:00
Alexandre Julliard 7ad32cf56a server: Allow lookup_name to distinguish the case of an empty path.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-09 20:36:16 +09:00
Alexandre Julliard 7646df9f4b server: Use the generic named object functions for named pipes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-08 20:03:32 +09:00
Alexandre Julliard b21a324070 server: Use the link_name operation to create named objects.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-05 00:20:01 +09:00
Alexandre Julliard f55db7882d server: Add link_name and unlink_name object operations.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-04 21:07:19 +09:00
Alexandre Julliard 37503be654 server: Fix checks for a valid directory in object attributes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-01 14:57:37 +09:00
Alexandre Julliard d15f47412e server: Always print the full path of objects when dumping them.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-22 01:26:15 +09:00
Alexandre Julliard 9504e2addf server: Add a helper function to validate and return object attributes.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Alexandre Julliard 7350682aa6 server: Store the attributes in the object_attributes structure.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-01-16 00:05:57 +09:00
Sebastian Lackner ace9d329e9 server: Fix crash when calling SetNamedPipeHandleState on partially closed pipe.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-23 23:35:16 +09:00
Sebastian Lackner ee02530bc4 server: Fix crash when calling GetNamedPipeHandleState on partially closed pipe.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-23 23:35:16 +09:00
Sebastian Lackner 52f9acedd2 server: Clear last error when creating object without name.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-02 23:02:22 +09:00
Sebastian Lackner b3fb5992b6 server: Fix leak of async handle in pipe_server_flush. 2015-05-11 15:19:05 +09:00
Alexandre Julliard 67da7ba597 server: Use the async queue for pipe flush requests. 2015-05-08 18:02:57 +09:00
Alexandre Julliard ad53ffc9c0 server: Make async objects waitable. 2015-05-08 17:32:06 +09:00
Alexandre Julliard 860091d2fd server: Add an async structure to the flush request to follow the common pattern. 2015-05-06 17:16:15 +09:00
Alexandre Julliard 837b39b202 server: Add read and write fd member functions.
Also rename no_flush() to no_fd_flush() for consistency.
2015-05-06 09:07:42 +09:00
Alexandre Julliard 6f2ed23c16 server: Retrieve ioctl data directly from the request. 2015-05-06 08:44:29 +09:00
Erich E. Hoover b121f27b72 server: Add blocked support for SIO_ADDRESS_LIST_CHANGE ioctl(). 2015-02-10 22:45:02 +09:00
Hans Leidekker b31ed58b96 server: Set the security descriptor of named pipe objects. 2014-11-12 21:09:50 +09:00
Sebastian Lackner 82ce3fdcfd server: Implement set_named_pipe_info wineserver call for NtSetInformationFile/FilePipeInformation.
Based on a patch by Adam Martinson.
2014-08-20 19:40:07 +02:00
Sebastian Lackner 2e95f370d4 server: Store pipe_flags in a separate variable for both server and client of named pipes. 2014-08-20 19:38:04 +02:00
Michael Müller 9602fa7a93 server: Fix return value for FSCTL_PIPE_WAIT if pipe does not exist. 2014-06-11 13:07:11 +02:00
Alexandre Julliard 39644bb309 server: Pass a wait queue entry to the signaled/satisfied object functions. 2013-08-27 23:48:36 +02:00
Bernhard Loos c368df4865 server: PIPE_TYPE_BYTE | PIPE_READMODE_MESSAGE is invalid for named pipes. 2011-10-13 19:57:19 +02:00
Bernhard Loos 07b681e04a ntdll: Implement the NamedPipeConfiguration value for the FilePipeLocalInformation class of NtQueryInformationFile. 2011-10-08 19:56:08 +02:00
Bernhard Loos 9034e694a3 server: Correctly implement permission checking for named pipes. 2011-10-08 19:55:35 +02:00
Bernhard Loos e4c2a6d1cd server: It's possible to call NtQueryInformationFile on a pipe if it was opened with access 0. 2011-10-08 19:55:19 +02:00
Bernhard Loos bded698462 server: Sharing 0 is not allowed for named pipes. 2011-09-27 16:54:00 +02:00
Bernhard Loos 5098b13177 server: Only the sharing parameter of two instances of the same pipe have to match. 2011-09-27 16:54:00 +02:00
Bernhard Loos 039bacb0c9 server: Store sharing state for named pipes. 2011-09-27 16:54:00 +02:00
Alexandre Julliard a2ca2ebd50 server: Change the removable fd flag to a cacheable flag to make it possible for fd users to set it dynamically. 2010-08-23 17:09:45 +02:00
Andrey Turkin 85cc2c13f6 server: Connect named pipe synchronously when overlapped param is NULL. 2010-05-24 12:39:35 +02:00
Alexandre Julliard 7a344c14af server: Avoid a crash when trying to wait on a disconnected pipe client. 2009-06-09 17:01:13 +02:00
Alexandre Julliard 50171c5cc1 server: Make the new named pipe server fd inherit the I/O completion if it was set before connecting. 2009-03-03 11:59:29 +01:00
Alexandre Julliard 9dd3fe5467 server: Overlapped named pipes are never blocking, even if no APC was specified. 2009-03-02 20:34:07 +01:00