Commit Graph

83 Commits

Author SHA1 Message Date
Alexandre Julliard
a5f816c6d3 Do a protocol error instead of crashing if the reply fd has not been
set.
2004-02-05 01:48:02 +00:00
Francois Gouget
9591836ffb 'sizeof type' is best avoided as it won't always compile (e.g. 'int
main() {return sizeof int;}'). Use 'sizeof(type)' instead.
2003-06-18 19:45:22 +00:00
Alexandre Julliard
5537dbbf40 Replaced WINE_CHECK_STRUCT_MEMBER autoconf macro by the standard
AC_CHECK_MEMBERS. Added check for si_fd in siginfo_t.
2003-03-28 00:36:12 +00:00
Alexandre Julliard
9037f4bbfe Added generic signal handling mechanism based on pipes to synchronize
signals with the main poll loop.
2003-03-26 01:32:18 +00:00
Alexandre Julliard
7ad5be967d Added -f option to make wineserver remain in the foreground for
debugging.
Close stdin/stdout when not in the foreground (based on a patch by
Francois Gouget).
2003-03-14 04:08:42 +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
91befe1d64 Made process and thread ids small integers instead of pointers. 2003-02-01 01:38:40 +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
Alexandre Julliard
435e2e63f4 winnt.h should not be self-contained, it must depend on windef.h so
that STRICT works correctly; moved some definitions back to windef.h
where they belong, and removed a couple of definitions that don't
exist on Windows.
2002-12-10 22:56:43 +00:00
Alexandre Julliard
14e68ba7fe Added support for system-wide hooks. 2002-11-20 19:54:32 +00:00
Alexandre Julliard
b3332d74b0 Converted the server to -DSTRICT. 2002-10-19 01:00:59 +00:00
Alexandre Julliard
40043ed26f Added -k option to kill an existing wineserver. 2002-08-16 20:02:15 +00:00
Alexandre Julliard
714156d7ab Fixed race condition when a thread gets killed right after starting. 2002-08-13 18:24:27 +00:00
Alexandre Julliard
4144b5b8fc Create the server directory and socket file in /tmp.
Use fcntl file locking to ensure exclusion on the server socket and to
better recover from crashes.
Flush the registry before closing the socket to avoid timeouts on the
client side.
Moved get_config_dir functionality to libwine.
2002-06-20 23:21:27 +00:00
Alexandre Julliard
5188574984 Renamed handle_t to obj_handle_t to avoid conflict with rpcdce.h. 2002-05-30 20:12:58 +00:00
Alexandre Julliard
f5e0f0c60a Added timer on server exit to wait a bit for new clients.
Don't remove the socket until the registry is closed to avoid a race.
2002-04-03 22:51:18 +00:00
Francois Gouget
0763abf115 Fix warnings for Linux, FreeBSD and Solaris. 2002-04-01 21:08:16 +00:00
Alexandre Julliard
0799c1a780 Added LGPL standard comment, and copyright notices where necessary.
Global replacement of debugtools.h by wine/debug.h.
2002-03-09 23:29:33 +00:00
Mike McCormack
6f011c0847 - move async activation into the server
- implement async queues
2001-12-20 00:07:05 +00:00
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
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
516e40e154 Make sure that GetMessagePos and GetMessageTime return sane values
for all messages.
2001-10-17 17:48:49 +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
Alexandre Julliard
b8dd37d239 Don't create the WINEPREFIX directory if it doesn't exist. 2001-08-09 21:22:33 +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
Alexandre Julliard
4b29d669fc Ignore EAGAIN errors in read_request. 2001-06-19 18:23:13 +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
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
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
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
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
Alexandre Julliard
0b6a79c961 Converted enum_key_value request to the new request mechanism. 2000-12-15 20:57:00 +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
Joerg Mayer
abe635cfd7 Get rid of some warnings about unused variables, signed/unsigned
comparisons and incomplete initializations.
2000-11-11 00:38:37 +00:00
Alexandre Julliard
908464d448 Authors: Andreas Mohr <amohr@codeweavers.com>, Dimitrie O. Paun <dimi@cs.toronto.edu>, Patrik Stridvall <ps@leissner.se>
Various warning fixes.
2000-11-01 03:11:12 +00:00
Patrik Stridvall
a9f6a9daec Explicitly initialize structures. 2000-10-24 02:22:16 +00:00
Alexandre Julliard
8611353053 Added the data structures and macros that will be needed to support
reentrant server requests.
2000-08-29 03:54:30 +00:00
Alexandre Julliard
6c8d9171cd Added a real root key and simplified creation of the HKEY_* special root keys.
Do not prefix all keys with the name of the top key when saving to a file.
Try to load $WINEPREFIX/config into the Wine config branch at startup.
2000-08-26 04:40:07 +00:00
Alexandre Julliard
c10c9ef4f1 Made server startup more robust against races caused by a previous
server terminating at the same time.
2000-08-11 21:16:53 +00:00
Alexandre Julliard
5b4f3e8d6d Rewrote Unix process launching to allow passing startup information to
Winelib apps. Improved handling of execve() failures.
2000-05-01 16:24:22 +00:00
Alexandre Julliard
d804111dc5 Made server launching somewhat cleaner and faster. 2000-04-14 14:42:41 +00:00
Alexandre Julliard
de1d5ad444 Added support for WINEPREFIX environment variable. 2000-04-06 20:36:17 +00:00