Commit Graph

190 Commits

Author SHA1 Message Date
Alexandre Julliard ad53ffc9c0 server: Make async objects waitable. 2015-05-08 17:32:06 +09:00
Alexandre Julliard 83e3a9c9ba server: Allow cancelling async I/O for all object types. 2015-05-06 17:16:16 +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
Alexandre Julliard 5db44d15ac server: Copy completion information for accepted socket into the new file descriptor. 2015-03-17 00:19:55 +09:00
Erich E. Hoover 67c47e401b server: Implement the interface change notification object. 2015-02-10 22:57:36 +09:00
Erich E. Hoover b121f27b72 server: Add blocked support for SIO_ADDRESS_LIST_CHANGE ioctl(). 2015-02-10 22:45:02 +09:00
Erich E. Hoover 315de61bb2 server: Add socket-side support for the interface change notification object. 2015-02-10 22:45:00 +09:00
Erich E. Hoover 1239663fcb server: Implement socket-specific ioctl() routine. 2015-02-10 22:29:40 +09:00
Bruno Jesus 3591e5fd9f server: Store the time of the socket connection.
Based on a patch by Erich Hoover.
2014-11-12 20:07:55 +09:00
Bruno Jesus 8821967bd6 server: Add a missing socket protocol attribution.
The new socket has to inherit the information just like family and type.
2014-11-12 20:07:55 +09:00
Felix Janda e3faab267c server: Add missing includes of poll.h. 2014-06-12 18:05:08 +02:00
Sebastian Lackner 0b261bef76 server: Don't call close() on uninitialized memory in sock_check_pollhup. 2014-01-01 20:45:32 +01:00
Bruno Jesus c52eb21754 server: Fix a comment. 2013-09-23 11:50:56 +02:00
Dmitry Timoshkov e22f8d2fd8 server: Print the debug trace to stderr. 2013-09-04 11:32:53 +02:00
Bruno Jesus ec49a574de server: Add a request to get socket information. 2013-09-02 19:51:16 +02:00
Bruno Jesus f5023dda2d server: Store the protocol while creating the socket. 2013-09-02 19:48:08 +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
Qian Hong 31b9455b7e server: Automatically sets a socket to non-blocking mode when WSAAsyncSelect or WSAEventSelect is called even when lEvent is zero. 2013-05-28 19:43:48 +02:00
Alexandre Julliard 9fdf7bc771 server: Use socklen_t where appropriate. 2013-03-06 13:40:58 +01:00
Marcus Meissner 3199fe147d server: Removed duplicate close of acceptfd (Coverity). 2012-10-10 10:35:38 +02:00
Francois Gouget c7cb3e6cb2 configure: Use errno.h instead of the non-standard sys/errno.h header. 2011-12-15 17:46:38 +01:00
Marcus Meissner 27c9a61e15 server: Remove superflous NULL check (Coverity). 2011-06-14 15:27:13 +02:00
Mike Kaplinskiy f58c709b5f server: Fix connect failures on newer kernels. 2011-01-24 14:43:28 +01:00
Francois Gouget c4c03180b0 server: Make sock_check_pollhup() more reliable on Solaris. 2010-11-29 19:43:35 +01:00
Gerald Pfeifer 87624c2c21 server: Remove pollev from set_socket_event. 2010-09-06 16:13:22 +02:00
Mike Kaplinskiy 333313aa2b server: Allow queuing async reads on listening sockets. 2010-08-31 14:23:49 +02:00
Mike Kaplinskiy ae5ad61fa8 server: Add accept_into_socket to accept into an initialized socket. 2010-08-31 14:23:49 +02:00
Mike Kaplinskiy 92b83ddffb server: Don't cache sockets until they are pollable. 2010-08-31 14:23:49 +02:00
Eric Pouech c1d35ba540 server: Fix method name in comments for fd_ops. 2010-08-30 17:51:05 +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
Mike Kaplinskiy fae0b6fa63 ws2_32: Don't set FD_READ/FD_WRITE before the connection is complete. 2010-08-03 12:00:48 +02:00
Mike Kaplinskiy a6203f8b53 server: Fix some comments.
Apparently windows reports only currently valid events for WSAEnumNetworkEvents.
2010-07-28 16:28:27 +02:00
Mike Kaplinskiy 93db86a7e0 server: Don't delay events, we simply shouldn't send them in the first place. 2010-07-28 16:28:27 +02:00
Mike Kaplinskiy 0b251c08f2 server: Consume events triggered. 2010-07-28 16:28:26 +02:00
Mike Kaplinskiy 8d9fbe59b3 server: Forward the correct error to asyncs. 2010-07-20 14:40:31 +02:00
Mike Kaplinskiy be230adbb7 server: In case of hangup/error, wake up all asyncs that can no longer be completed. 2010-07-20 14:40:31 +02:00
Mike Kaplinskiy 394a142237 server: Propagate error from recv. 2010-07-20 14:40:31 +02:00
Mike Kaplinskiy 75c7c63886 server: Move signaling FD_* events to a separate function. 2010-07-20 14:40:31 +02:00
Hans Leidekker 0a4984280f server: Map EHOSTUNREACH to STATUS_HOST_UNREACHABLE. 2010-05-25 13:29:07 +02:00
Mike Kaplinskiy ee5ee5c538 server: Move async activation into separate function. 2010-05-20 16:48:37 +02:00
Mike Kaplinskiy ac12c67f40 server: Don't poll for events when there are async operations queued. 2010-05-19 16:57:59 +02:00
Mike Kaplinskiy 42debac149 server: Move socket async activation to sock_poll_event. 2010-05-17 14:41:33 +02:00
Mike Kaplinskiy 4f9e09ea57 server: Get rid of sock_try_event.
We *might* need to ignore POLLERR messages for UDP sockets, as the
condition is actually temporary and sock_try_event was hiding this.
2010-05-14 11:47:26 +02:00
Mike Kaplinskiy d03fe9d4ec server: Always treat POLLHUP as a hangup, just special case checking TCP sockets. 2010-05-14 11:45:44 +02:00
Mike Kaplinskiy 3aa93e11ad server: Use a less hackish approach to not POLLIN when we have a hung up socket. 2010-05-13 11:54:27 +02:00
Mike Kaplinskiy 535f878e3d server: Keep polling sockets after we got a 0 recv, but not for POLLIN. 2010-05-13 11:53:31 +02:00
Mike Kaplinskiy f928580ac3 server: Set FD_READ in only 1 place (cleanup). 2010-05-13 11:51:34 +02:00
Mike Kaplinskiy 798c9e5161 ws2_32: Use ntstatus in overlapped functions. 2010-03-23 12:35:56 +01:00
Francois Gouget bc8d21b5d7 server: Don't include winsock.h to avoid creating a dependency on generated headers.
The dependency does not really exist thanks to various #ifdefs, but
makedep does not know that and records it which causes a build failure.
2010-03-19 12:27:45 +01:00
Mike Kaplinskiy 8e669d9a61 server: Activate pending asyncs on a hangup/error. 2010-01-19 15:03:57 +01:00
Mike Kaplinskiy b05774ee7e server: Change cancel_async to take an optional iosb and only_thread. 2009-08-18 12:26:30 +02:00
Alexandre Julliard 31282b3f63 server: Define an lparam_t type for message parameters that can hold all sorts of data. 2008-12-10 16:01:50 +01:00
Alexandre Julliard d764107434 server: Make user handles ints instead of pointers. 2008-12-08 16:57:38 +01:00
Alexandre Julliard 7d5f732d30 server: Convert source files to utf-8. 2008-10-18 19:22:26 +02:00
Alexandre Julliard 8382eb01b2 server: Return correct object types in the get_directory_entry request. 2007-12-05 18:16:42 +01:00
Rob Shearman c1707d8938 server: Add get_sd and set_sd object operations to allow the security descriptor to be stored somewhere other than server memory, such as on disk. 2007-10-04 12:30:52 +02:00
Alexandre Julliard 24001e8ddc server: Add a default access mapping function for files, and use it for devices too. 2007-10-02 14:20:15 +02:00
Dmitry Timoshkov 69025bafe7 server: Print a more informative message when file_set_error or sock_get_error can't map errno to a status code. 2007-09-10 15:29:46 +02:00
Alexandre Julliard 635714397f server: Add infrastructure for ioctl server request. 2007-04-16 14:45:03 +02:00
Alexandre Julliard 7a9363a4d4 server: Rename the get_file_info function to get_fd_type and get rid of the flags. 2007-04-10 22:26:23 +02:00
Alexandre Julliard f85437c57f server: Store the opening options in the file descriptor instead of in the individual objects.
Allows moving the FD_FLAG_OVERLAPPED support to the generic
get_handle_fd request handling.
2007-04-10 22:25:07 +02:00
Alexandre Julliard 72bff2e445 server: Add support for restarting an async I/O when the client side couldn't finish it right away. 2007-04-10 17:07:27 +02:00
Alexandre Julliard b2cba95abd server: Hold a pointer to the queue from the async operations. 2007-04-03 19:36:07 +02:00
Alexandre Julliard 0aae1ca8bf server: Add a separate function to set the timeout of an async I/O operation. 2007-04-02 20:41:59 +02:00
Alexandre Julliard df09ac5194 server: Make async I/O queues into real objects. 2007-04-02 20:09:29 +02:00
Alexandre Julliard 589ce2bb8d server: Always return STATUS_PENDING when an async I/O operation has been queued. 2007-03-26 19:13:21 +02:00
Alexandre Julliard 7e71c1ddee server: Add an open_file() function to the object operations. 2007-03-22 11:44:29 +01:00
Alexandre Julliard 111610c45e server: Add an async_data_t structure to store parameters for async I/O requests. 2007-03-20 20:21:12 +01:00
Andrew Talbot b1788c8462 server: Replace inline static with static inline. 2007-03-17 20:05:05 +01:00
Alexandre Julliard 24b64534e5 server: Explicitly shutdown destroyed sockets to force pending poll() calls to return. 2006-12-04 18:02:02 +01:00
Alexandre Julliard 8930427b21 server: Return an fd type in the get_handle_fd request. 2006-11-20 14:14:04 +01:00
Alexandre Julliard 715d78e006 server: Refuse to close handles in other processes if they have an associated fd. 2006-11-02 20:52:22 +01:00
Eric Pouech e0477ce92a winsock: Clear the held mask with the requested events so that they can be signaled. 2006-10-23 12:26:18 +02:00
Mike McCormack db9b557b54 server: Make wparam and lparam values unsigned long for win64 compatability. 2006-06-08 10:39:58 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Alexandre Julliard a510a7e117 server: Added access rights mapping to file objects. 2005-12-12 16:46:17 +01:00
Alexandre Julliard 28beba31d6 server: Added infrastructure for access rights mapping. 2005-12-12 14:57:40 +01:00
Alexandre Julliard 24560e70bb server: Make alloc_handle use attributes instead of inherit flag. 2005-12-09 13:58:25 +01:00
Alexandre Julliard bc30303c56 server: Use attributes instead of inherit flag in socket requests. 2005-12-09 11:58:55 +01:00
Ge van Geldorp 1a1583a364 Match PSDK STATUS_* definitions. 2005-11-28 17:32:54 +01:00
Vitaliy Margolen baffcb95d3 Add name_lookup function in object_ops. 2005-11-22 14:55:42 +00:00
Mike McCormack e659f1e60c Fix some gcc 4.0 warnings. 2005-08-09 10:37:50 +00:00
Mike McCormack 390bc5f52f Don't include winbase.h when it's not necessary. 2005-06-21 09:46:15 +00:00
Alexandre Julliard b9b1ea9c9f Added a close_handle method to the object operations, and use it to
implement registry notifications and the strange behavior of
CloseHandle on winstation/desktop handles.
2005-06-09 15:39:52 +00:00
Robert Shearman c516571481 - Use NULL instead of 0 for all non-handle pointers.
- Fix non-ANSI function declarations.
- Make a function static.
2005-05-25 18:41:09 +00:00
Mike McCormack f92fff66a2 Implemented NtSignalAndWaitForSingleObject. 2005-04-24 17:35:52 +00:00
Eric Pouech 7001d6ed34 Clean-up async IO internal functions. 2005-03-29 11:40:10 +00:00
Alexandre Julliard dd81ac50a9 Convert async I/O queues to standard lists. 2005-02-24 17:06:31 +00:00
Eric Pouech 4634447d6b - got rid of include/async.h
- fixed some overlapped issues in socket handling
- moved kernel32.CancelIo implementation to ntdll
2005-01-14 19:54:38 +00:00
Alexandre Julliard 6a27b48895 Fd type is no longer used, get rid of it. 2004-08-18 00:04:58 +00:00
Eric Pouech 1ffddb4d0c - better support for non-blocking COMM and socket read/writes:
+ added necessary semantics to fd flags
  + no longer uses fd type (but fd flags) read/write semantic behavior
- fixed socket code to use the proper manifest constants
- fixes for kernel32.GetOverlappedResult without hEvent set
- in ntdll.Nt{Read|Write}File
  + always reset the event
  + added support for longlong offsets
  + better object disposal in error handling code paths
2004-08-17 23:37:55 +00:00
Filip Navara 2392a36370 Get rid of non-standard ERROR_UNKNOWN value. 2004-04-12 23:15:11 +00:00
Alexandre Julliard 18c08d307a Removed the get_file_info request. 2004-04-08 19:09:04 +00:00
Alexandre Julliard e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard 580da246f5 Added an inode object to keep track of all file descriptors open for a
given file.
Plugged a couple of potential file descriptor leaks.
2003-03-12 22:38:14 +00:00
Alexandre Julliard e66207ebfc Moved all references to file descriptors out of the generic object
structure.
Changed the poll()-related routines to deal with file descriptors
instead of objects and integrated poll support into fd.c.
2003-02-19 00:33:32 +00:00
Alexandre Julliard cf27a7fa3b Changed fd operations to take a struct fd instead of a struct object.
Removed get_file_info function from object operations.
Added get_device_id request to avoid abusing get_file_info.
2003-02-14 20:27:09 +00:00
Steven Edwards 037c8a1246 Porting fixes. 2003-02-11 22:27:13 +00:00
Alexandre Julliard 863637b158 Started moving functions that deal with Unix file descriptors to a
separate fd object. This will be needed for file locking.
2003-01-30 00:26:44 +00:00