Commit Graph

346 Commits

Author SHA1 Message Date
Alexandre Julliard 9caa71eef4 Redesign of the server communication protocol to allow arbitrary sized
data to be exchanged.
Split request and reply structures to make backwards compatibility
easier.
Moved many console functions to dlls/kernel, added code page support,
changed a few requests to behave properly with the new protocol.
2001-11-30 18:46:42 +00:00
Alexandre Julliard e806c97610 Skip queue cleanups if queue has been destroyed already. 2001-11-24 03:44:47 +00:00
Eric Pouech 0b83d4cbc6 New console code based on Win32 windows. 2001-11-23 23:04:58 +00:00
Francois Gouget 5c84fff413 Only include 'sys/user.h' for Linux. Fixes a compilation error on
FreeBSD 5.0.
2001-11-20 18:52:42 +00:00
James Juran 49c779a862 Prevent warnings about labels at end of switch statements when
compiling with gcc-3.x.
2001-11-19 02:24:14 +00:00
Francois Gouget 6e04f591f6 Fix the Solaris and FreeBSD compilation errors introduced by the
recent winsock update.
2001-11-19 02:23:22 +00:00
Alexandre Julliard 47f9821817 Moved WIN_FindWinToRepaint functionality to the server. 2001-11-14 21:28:36 +00:00
Francois Gouget 272023190e Make winsock.h and winsock2.h independent from the Unix headers.
Make them compatible with both the Unix C headers and the MSVCRT
headers.
Ensure compatibility with the Unix headers via the USE_WS_PREFIX
macro.
Add WINE_NOWINSOCK: prevents winsock.h from being included from
windows.h when defined.
Add ws2tcpip.h, move definitions to the right header.
2001-11-14 21:26:23 +00:00
Alexandre Julliard 805bdc53e8 Store the window caption text in the server.
Maintain a paint count separately for each window.
2001-11-13 22:23:48 +00:00
Alexandre Julliard c4be541dfa Avoid ftruncate to work around broken UMSDOS file system. 2001-11-07 20:25:12 +00:00
Mike McCormack 309ed4e1f1 Make ConnectNamedPipe work in overlapped mode. 2001-11-07 20:14:45 +00:00
Bill Medland 9e5af61ed5 Prevent danger of accessing freed memory (theoretical but unlikely
bug).
2001-11-06 22:25:11 +00:00
François Gouget 1425941e29 Fix the #include order for config.h.
Add #include "config.h" directives where needed.
2001-11-06 20:57:11 +00:00
Alexandre Julliard 4a9c83998c Allow owner to be the desktop window. 2001-11-06 17:54:15 +00:00
Alexandre Julliard ac2e4f1e3d Don't keep main exe and dlls handles open when the file is on
removable media.
2001-10-25 19:52:12 +00:00
Ove Kaaven 708a846a88 Save a disk file's drive type in the server object. 2001-10-24 00:23:25 +00:00
Alexandre Julliard ddc3317b7a Store in the server all the window information accessible with
Get/SetWindowLong.
2001-10-22 19:08:33 +00:00
Alexandre Julliard 516e40e154 Make sure that GetMessagePos and GetMessageTime return sane values
for all messages.
2001-10-17 17:48:49 +00:00
Alexandre Julliard 0d50965a13 Added requests to store window rectangles in the server. 2001-10-16 21:55:37 +00:00
Francois Gouget 386cf6e342 When including 'wine/port.h', include it first.
Remove redundant 'config.h' includes.
2001-10-14 16:25:47 +00:00
Francois Gouget e5ddd26dd7 When including config.h, include it first. 2001-10-14 16:18:52 +00:00
Alexandre Julliard 7a2017dd65 Store window properties in the server. Moved property.c to dlls/user. 2001-10-12 19:10:26 +00:00
Alexandre Julliard d8a8c1131d Added atom_t type for atoms to make sure we use the same type
everywhere. Handle MIN_STR_ATOM offset in the server.
2001-10-12 18:45:29 +00:00
Alexandre Julliard 003f02b733 Removed the cleanup_window_queue request. 2001-10-11 20:50:10 +00:00
Alexandre Julliard 844ceb98ba Store window class atom in the server.
Keep unlinked windows on a separate list.
Implemented inter-process FindWindow().
2001-10-09 23:26:40 +00:00
Eric Pouech c73316db5b - fixed copy&paste bug (GENERIC_WRITE instead of GENERIC_READ)
- when getting the type of a handle, it has to be done even if no fd
  is attached to it (console for example)
2001-10-08 20:57:12 +00:00
Mike McCormack 568c67e173 Make serial fd blocking mode depend on FILE_FLAG_OVERLAPPED. 2001-10-08 20:40:57 +00:00
Alexandre Julliard 646d621fec Added get_file_info support to named pipes and sockets to avoid
breaking the get_handle_fd request.
2001-10-05 19:45:45 +00:00
Mike McCormack ff58be5c7f Fetch a handle type in FILE_GetUnixHandle. 2001-10-04 16:18:15 +00:00
Alexandre Julliard 7695d69046 A couple of optimizations to avoid some server calls in WIN_FindWndPtr
and related functions.
2001-09-24 01:19:59 +00:00
Alexandre Julliard 5af055d8df Avoid list corruption when linking window with HWND_BOTTOM (thanks to
Gerard Patel).
2001-09-24 01:13:48 +00:00
Alexandre Julliard a09da0cbbd Added proper support for storing window parents in the server.
Added a few requests to query the window hierarchy.
2001-09-21 21:08:40 +00:00
Alexandre Julliard bc878ef4d9 Convert user handles received from client to full handles. 2001-09-12 17:09:24 +00:00
Alexandre Julliard 1a66d226eb Added global management of user handles in the server.
Very preliminary support for shared window handles.
2001-08-28 18:44:52 +00:00
Mike McCormack f2e7ce7f6a Implemented GetNamedPipeInfo. 2001-08-27 19:03:42 +00:00
Francois Gouget 126e6b8175 Rename the regular WS_FD_XXX macros to FD_XXX.
Rename the Wine specific WS_FD_XXX macros to FD_WINE_XXX.
2001-08-24 19:14:56 +00:00
Mike McCormack bf55457f24 Implement WaitNamedPipe and DisconnectNamedPipe.
Add a state for each pipe handle in the server.
Create a socket on when the pipe is opened, not before.
2001-08-23 23:29:20 +00:00
Daniel Walker c86517fcb6 - Fix for nonblocking sockets using WSAEventSelect() (patch from Ove
Kaaven).
- Changed WSAEnumNetworkEvents() so it only returns events that the
  application is looking for.
- Changed sock_poll_event() to interpret a POLLIN event with zero
  bytes waiting to be read as a POLLHUP.
2001-08-23 23:25:33 +00:00
Mike McCormack 05b6618ff3 Unconditionally set O_NONBLOCK when opening. 2001-08-21 17:01:48 +00:00
Alexandre Julliard b8dd37d239 Don't create the WINEPREFIX directory if it doesn't exist. 2001-08-09 21:22:33 +00:00
Andreas Mohr d66130ac9d Don't crash if send_thread_wakeup() fails. 2001-08-07 19:31:43 +00:00
Alexandre Julliard d253c58b1b Rewrote most of SendMessage/PeekMessage.
Implemented inter-process messaging.
Moved most message routines to dlls/user, and split off 16-bit
routines to a separate file.
2001-08-07 19:19:08 +00:00
Bernhard Rosenkraenzer 5dda1f7e2c Set executable permissions when creating .exe/.com files. 2001-07-23 18:09:41 +00:00
Alexandre Julliard 37ec927536 Use the new protocol.def file to build the request structures.
Define protocol structures in a separate server_protocol.h file.
Removed __WINE_SERVER__ checks now that all includes are in the right
directory.
2001-07-19 00:35:37 +00:00
Ove Kaaven 705e7d708b Added STATUS_* constant for named pipes. Return STATUS_PIPE_NOT_AVAILABLE
when opening a named pipe if the pipe exists but no instances of it are
currently waiting for a connection.
2001-07-17 00:38:00 +00:00
Alexandre Julliard 5f258c68f3 Backed out the suspend_process_for_ptrace change.
Fixed a couple of races in ptrace code.
2001-07-14 00:50:30 +00:00
Alexandre Julliard 10109e6083 Removed unused functions suspend/remove_all_threads. 2001-07-12 22:35:20 +00:00
Alexandre Julliard 7614180e2d Small fixes to the debugger support. 2001-07-11 17:30:59 +00:00
Alexandre Julliard e630aa0b68 Merge WM_MOUSEMOVE messages. 2001-07-11 17:29:01 +00:00
Mike McCormack de7c3003e2 Start implementing named pipes. 2001-07-10 19:16:49 +00:00
Alexandre Julliard 9f55ae6f62 - Remove cooked hardware messages when they are dropped (reported by
Gerard Patel).
- Convert all posted 32-bit messages to Unicode before storing them in
  the queue.
- Faster implementation of MSG_IsPointerMessage.
- Moved a couple of functions from queue.c to message.c.
2001-06-28 04:37:22 +00:00
Mike McCormack 585e976f1a Remove truncate debug message printed on successful truncates. 2001-06-22 23:20:36 +00:00
Alexandre Julliard 4b0343dc5f Moved queue paint count to the server. Removed a few no longer used
routines.
2001-06-20 22:55:31 +00:00
Alexandre Julliard 838d65aebe Moved hardware message queue handling to the server. 2001-06-19 19:16:41 +00:00
Alexandre Julliard 4b29d669fc Ignore EAGAIN errors in read_request. 2001-06-19 18:23:13 +00:00
Bill Medland e81bf3f3ce SetFilePointer correction; return ERROR_NEGATIVE_SEEK (broken by the
64 bit file access enhancement).
2001-06-19 03:30:53 +00:00
Marcus Meissner 6bb990f7fd Drop any file64 functions, try to use system supplied 64-bit mode by
using proper defines.
2001-05-29 20:55:21 +00:00
Gerard Patel 63b1d175b3 Take message filters into account for WM_PAINT too. 2001-05-21 18:33:56 +00:00
Eric Pouech 476c2b4cc3 Fixed reply_message when there is no received message. 2001-05-19 17:38:21 +00:00
Alexandre Julliard 9be457dd3b Fixed typo in message filter check. 2001-05-18 23:22:12 +00:00
Alexandre Julliard 51ab43bd13 Moved the major part of message queue and window timer handling into
the server.
Implemented MsgWaitForMultipleObjectsEx.
2001-05-18 22:51:56 +00:00
Marcus Meissner 3f1ed52d8b Implemented 64bit file size handling.
Removed several unneeded sys/stat.h includes.
2001-05-14 20:09:37 +00:00
Bang Jun-Young 18bf392b41 Added support for NetBSD. 2001-05-09 19:44:47 +00:00
Ove Kaaven ada7383852 Preserve the TF (Trap Flag) when continuing from a ptraced suspend. 2001-04-27 18:39:47 +00:00
Alexandre Julliard 84fdfd087a Repaired shared PE data sections. 2001-04-13 22:38:39 +00:00
Alexandre Julliard 21044c6319 Fixed handling of \\Registry prefix. 2001-04-10 21:18:17 +00:00
Alexandre Julliard 09cc91d1a8 Make sure the process socket is non-blocking.
Don't fail if nothing ready on recvmsg for a file descriptor.
2001-04-04 00:11:13 +00:00
Michael McCormack 1c32a46d5a Use poll() on the client-side during server waits to implement
overlapped I/O.
2001-03-22 20:09:34 +00:00
Alexandre Julliard a5a872efca Use the new send_fd mechanism for the set_console_fd server request. 2001-03-22 19:35:27 +00:00
Jeff Garzik 3ea0c073f8 Warning fixes. 2001-03-21 20:31:26 +00:00
Jeff Garzik f46eb1db43 Added some inclusions of string.h where necessary. 2001-03-21 20:30:46 +00:00
Mike McCormack 147ddfefcb Removed broken support for EV_TXEMPTY because it causes busy loops. 2001-03-14 17:25:52 +00:00
Mike McCormack 7526540e03 Add missing release object so server exits cleanly. 2001-03-14 17:25:26 +00:00
Alexandre Julliard e5dedb1906 Added support for nested server waits (to allow waiting in signal
handlers).
2001-03-08 01:16:41 +00:00
Alexandre Julliard 566a52ad8c Changed isolated for loops to while loops (based on a patch by Andreas
Mohr).
2001-03-05 19:34:17 +00:00
Alexandre Julliard 8859d77279 Create the server pipes on the client side and transfer them to the
server on thread creation.
Use a single per-process socket instead of one per thread for
transferring file handles between client and server.
2001-03-01 22:13:49 +00:00
Alexandre Julliard f52424055f New mechanism to transfer file descriptors from client to server. 2001-02-28 21:45:23 +00:00
Alexandre Julliard 67a749999a New set of macros for server calls; makes requests without variable
part somewhat faster.
2001-02-27 02:09:16 +00:00
Alexandre Julliard d90e964cee Added separate server pipe to wait on blocking server calls.
Send the complete request/reply through the request fifo instead of
just a dummy byte.
Convert error status to text in server reply tracing.
2001-02-21 04:21:50 +00:00
Alexandre Julliard 5f195f8c01 Small server protocol cleanups. 2001-02-20 23:45:07 +00:00
Alexandre Julliard a4bc5a2138 Pass the stdin/stdout handles on startup to use as console (based on a
patch by Eric Pouech).
2001-02-16 19:08:19 +00:00
Alexandre Julliard e939eae00b Made exception_event_request non-blocking, and added
get_exception_status to retrieve the exception result returned by the
debugger.
2001-01-26 20:45:41 +00:00
Alexandre Julliard e9936d96e1 Changed wait_process and wait_debug_event requests to never block;
waiting is always done through WaitForSingleObject().
2001-01-26 00:22:26 +00:00
Andreas Mohr 22c80a2e9a Workaround for SuSE 7 2.2.16 kernel bug. 2001-01-12 23:02:39 +00:00
Josh DuBois 558b66077f Added a simple usage() function. 2001-01-11 22:28:35 +00:00
Mike McCormack 21ea8a9107 Calculate the timeout time once when the async is created. 2001-01-07 21:46:17 +00:00
Alexandre Julliard 2362380b64 Added separate queue for "system" APCs that get called even when the
thread is not in an alertable state.
Specify the select_request timeout as absolute value so that we can
restart the request when interrupted.
2001-01-06 01:48:51 +00:00
Alexandre Julliard ad29b90d08 Send the exe file handle in init_process_done request. 2001-01-05 22:24:15 +00:00
Alexandre Julliard 8081e5a1e5 Added handle_t type to server interface so that we can make handles
pointers later on.
Always use 0 to signal invalid handle in server requests.
2001-01-05 04:08:07 +00:00
Alexandre Julliard 7f74824d9f Fixed error recovery during thread creation. 2000-12-26 00:30:30 +00:00
Alexandre Julliard 63411dbde5 Avoid dup'ing file descriptors when not necessary.
Do not send fd to the client if ops->get_fd() fails.
2000-12-22 21:12:36 +00:00
Alexandre Julliard d549f6909e Use a separate FIFO pair for server requests that don't need to pass a
file descriptor.
Associate file descriptors with handles on the server side so that we
don't need to pass the fd every time the client wants to use it.
2000-12-22 02:04:15 +00:00
Alexandre Julliard 1ab243bac1 Merged the get_read_fd and get_write_fd requests. 2000-12-19 02:12:45 +00:00
François Gouget ecae926945 Needs to include windef.h. 2000-12-15 21:30:35 +00:00
Alexandre Julliard 0b6a79c961 Converted enum_key_value request to the new request mechanism. 2000-12-15 20:57:00 +00:00
Martin Pilka 0c86432ea5 Changed the condition so it also works in case when sscanf returns EOF. 2000-12-12 00:34:44 +00:00
Alexandre Julliard e2222fd8ff Use libwine and libwine_unicode directly from their build directory
instead of using symlinks.
2000-12-06 00:05:14 +00:00
Andreas Mohr 1c99af4a7a Check the attributes of the *current* section, not only the attributes
of the *first* section...
2000-12-03 04:02:09 +00:00
Patrik Stridvall 7a4e599780 Fixed some issues found by winapi_check. 2000-12-01 23:53:46 +00:00
Dimitrie O. Paun 2af03e45b5 Do not include sys/ptrace.h and sys/user.h unconditionally.
Other portability fixes.
2000-11-29 20:04:09 +00:00