Commit Graph

259 Commits

Author SHA1 Message Date
Sebastian Lackner 0f133aedd5 server: Avoid invalid memory accesses when create_console_output fails. 2015-08-19 20:19:58 +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
Sebastian Lackner 9aad600d86 server: Always remove inflight fd if alloc_console fails. 2014-11-20 22:33:29 +09:00
Sebastian Lackner d00e8ebda7 server: Avoid calling close on negative value in create_console_output handler (Coverity). 2014-11-20 22:33:10 +09:00
Sebastian Lackner 609d43e408 server: Avoid leaking file descriptors if create_console_input fails. 2014-11-18 14:12:29 +09:00
Alexandre Julliard 39644bb309 server: Pass a wait queue entry to the signaled/satisfied object functions. 2013-08-27 23:48:36 +02:00
Nikolay Sivov 2ef7e5fdae server: Fix string length used with strncmpW(). 2013-08-27 21:30:02 +02:00
Eric Pouech 2a219b948c kernel32: Added support for insert/overwrite modes while editing a line. 2011-01-19 12:57:46 +01:00
Eric Pouech 91e3a40e41 server: Removed the no longer used bare parameter out of get_console_mode request. 2010-11-08 13:30:25 +01:00
Eric Pouech 04607ca632 server: Fix console creation logic. 2010-09-22 12:43:34 +02:00
Alexandre Julliard 1cb09660ce server: Fix a couple of leaks in the new console code. 2010-09-19 12:27:12 +02:00
Eric Pouech 687b3dc25c server: Ensure we set proper errors when getting a NULL fd out of a handle. 2010-09-18 13:03:07 +02:00
Eric Pouech a2322e3735 kernel32: Fixed a couple of cases where the console was not reset in cooked mode after a bare console has been created. 2010-09-13 14:45:18 -05:00
Eric Pouech daaee9e50f server: Properly return the errors for bare console objects. 2010-09-01 14:01:03 +02:00
Eric Pouech 2f7af56d41 server: Simplify the wineconsole event notification code. 2010-09-01 14:01:02 +02:00
Eric Pouech 4fdcdefccf server: Report in get_console_mode request whether it's a bare console or not. 2010-09-01 14:01:02 +02:00
Eric Pouech 6f32644aa0 server: Allow a screen buffer to be attached to a given fd (for bare consoles). 2010-09-01 14:01:02 +02:00
Eric Pouech b39a8d9ea2 server: Enhanced the console input object so that it doesn't require a wineconsole to be running. 2010-09-01 14:01:02 +02:00
Eric Pouech 1f25534628 server: Streamline a bit the console allocation code. 2010-08-30 17:52:11 +02:00
Eric Pouech 465f3d1a85 server: Use generic file access rights (inside of console specific ones) for console management. 2010-08-30 17:51:32 +02:00
XueFeng Chang 4bc7c59f44 server: Check create_event return value in console creation. 2010-02-23 12:09:25 +01:00
Francois Gouget d6abd3835f server: Remove an unneeded cast. 2008-12-01 13:01:40 +01:00
Kirill K. Smirnov 6e76cc7622 server: Properly notify renderer while activating another screen buffer. 2007-12-18 13:30:46 +01: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 dd9e392796 server: Use the security descriptor passed in when creating events. 2007-10-25 12:47:22 +02:00
Lionel Debroux 2f89fe7b37 server: Remove redundant NULL checks before free (found by Smatch). 2007-10-22 12:36:08 +02: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
Kirill K. Smirnov f3e13174c7 wineconsole: Implement GetConsoleWindow. 2007-08-24 12:03:22 +02:00
Alexandre Julliard 627ca4079e server: Stop exporting the console_input structure. Get rid of console.h. 2007-05-11 12:46:32 +02:00
Kirill K. Smirnov 9d74661856 server: Move console codepages to the server. 2007-05-11 12:41:29 +02:00
Kirill K. Smirnov 545d7f130c server: Fix access check in screen buffer handling. 2007-05-10 14:23:37 +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 31b02bbd1f server: Avoid crash in alloc_console when the process has no parent. 2007-01-04 09:41:14 +01:00
Alexandre Julliard 8700c4341b server: Get rid of the server-side file descriptor cache management. 2006-11-02 20:52:05 +01:00
Michael Stefaniuc 5cecceccb2 server: Remove redundant NULL check before free() (found by Smatch). 2006-10-10 12:56:16 +02:00
Michael Stefaniuc a624977f21 server: Fix some comparisons between signed and unsigned. 2006-07-26 11:11:04 +02:00
Alexandre Julliard 0f273c17ff server: Added data_size_t type to represent sizes in the server protocol.
Make it an unsigned int to save some space on Win64, if we need to
transfer more than 4Gb over the server pipe something is seriously
wrong.
2006-07-26 11:11:03 +02:00
Mike McCormack fac494c822 server: open_console's from field should be a handle. 2006-06-07 14:30:28 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Robert Shearman 7a3df4d097 server: Free ptr in console_input_append_hist.
Free ptr in console_input_append_hist before returning, otherwise it
will be leaked (found by Coverity).
Remove the setting of last error on mem_alloc failure, as it is already
done in mem_alloc.
2006-04-07 13:08:49 +02:00
Eric Pouech 2e0b5336f6 Suppress some false-positives reported by valgrind. 2006-01-27 16:17:51 +01:00
Alexandre Julliard b4fa1b914c server: Fixed console access rights handling. 2005-12-22 13:54:34 +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 7a096601e3 server: Use attributes instead of inherit flag in console requests. 2005-12-09 12:05:20 +01:00
Vitaliy Margolen f676bc8d85 Move event and mutex objects into directory name space. 2005-12-02 15:55:48 +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
Alexandre Julliard ead9b062e3 Added a struct unicode_str to encapsulate object names. 2005-11-18 16:31:18 +00:00
Vitaliy Margolen 3585f2fa77 Pass object attributes to create_named_object & find_object. 2005-10-29 12:38:23 +00:00
Alexandre Julliard 01caa5e645 Moved the fields that depends on startup info from the init_process
request to get_startup_info.
2005-07-12 20:27:09 +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
Alexandre Julliard 0502638ee1 Convert the per-process thread list to a standard list. 2005-03-01 10:56:18 +00:00
Alexandre Julliard b2eff1ca01 Converted the global screen buffer list to a standard list. 2005-02-25 21:06:11 +00:00
Eric Pouech 440ad8ccf2 - ctrl-c enabling flag is now inherited
- fixed console-related fields in RTL_USER_PROCESS_PARAMETERS
- various clean-up in kernel32.SetConsoleCtrlHandler
- only send a console event once to a process and not to all the
  process' threads
2004-09-08 01:25:05 +00:00
Eric Pouech 449d10fd79 Fixed regression in process creation (std handle inheritance). 2003-08-19 01:05:17 +00:00
Eric Pouech a86a289420 In console input record queue, replace semaphore with a manual reset
event, so that we get correct behavior in synchronization handling.
2003-06-23 03:37:14 +00:00
Eric Pouech 412d37f6e6 - adapted kernel32 so that it no longer (directly) manages console
handles as wineserver handles
- console input handle object is no longer waitable (input record
  synchronisation is now implemented as a simple semaphore), and removed
  FD_TYPE_CONSOLE from fd types in wineserver
- console handles now always have their two lower bit set so one can
  distinguish a console handle from a kernel object handle
- implemented some undocumented kernel32 console related APIs
  (CloseConsoleHandle, GetConsoleInputWaitHandle, OpenConsoleW,
  VerifyConsoleIoHandle, DuplicateConsoleHandle)
- allowed a few kernel32 APIs to take console pseudo-handles
  (FlushFileBuffer, GetFileType, WaitFor*Object*)
- simplified the console inheritance at process creation
- in console tests, no longer create a console if one already exists
2003-06-21 02:07:10 +00:00
Alexandre Julliard 02a53c176e Added send_thread_signal() function and properly handle errors caused
by the thread having already died when we send it a signal.
Use -1 instead of 0 as invalid Unix pid value.
2003-02-25 04:17:22 +00:00
Eric Pouech 58711741a4 Fixed read-overflow spotted by valgrind. 2003-02-19 23:27:49 +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
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
Eric Pouech fa8b85aa5c Set the edition mode as a specific attribute, not an extension of the
console mode.
2003-01-09 06:01:32 +00:00
Eric Pouech f4b298b811 - Fixed several bugs while resizing an existing screenbuffer.
- Reduced update area for some write conditions.
- Started implementing event message collapsing.
2003-01-05 01:07:34 +00:00
Alexandre Julliard 54f228733a Added process_id_t and thread_it_t types to the server interface
instead of using void*, and removed a number of type casts.
2002-10-03 19:54:57 +00:00
Andreas Mohr 17a2fe0f71 - Use PeekMessage loop around GetMessage.
- Added German resource file.
- Realign some dialog parts.
- "Property" -> "Properties"
- Add some traces.
2002-07-01 23:22:48 +00:00
Eric Pouech 93bfa0d6b1 Implementation for console control events (includes process groups
support).
2002-06-02 21:22:22 +00:00
Vincent Béron 9a62491660 Removed trailing whitespace. 2002-05-31 23:06:46 +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
Eric Pouech 47205b823e Fixed missing wineconsole notification of title modification. 2002-05-11 22:53:56 +00:00
Alexandre Julliard 5769d1de00 Better support for configure detection of missing types, added check
for ssize_t.
Removed a couple of no longer used portability functions.
Various portability fixes in port.h.
2002-04-26 19:05:15 +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
Martin Wilck 88cd32b2d1 More general approach to file descriptor types and flags. 2002-01-09 20:30:51 +00:00
Eric Pouech a90875686f Fixed color definition (bg and fg were swapped).
Fixed some initialisation issues.
Fixed exit condition when nothing was allocated.
2002-01-02 21:45:47 +00:00
Mike McCormack 6f011c0847 - move async activation into the server
- implement async queues
2001-12-20 00:07:05 +00:00
Eric Pouech 3940d8a294 Let the console renderer be defined as a thread. 2001-12-04 20:17:43 +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
Eric Pouech 0b83d4cbc6 New console code based on Win32 windows. 2001-11-23 23:04:58 +00:00
Mike McCormack ff58be5c7f Fetch a handle type in FILE_GetUnixHandle. 2001-10-04 16:18:15 +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
Alexandre Julliard a5a872efca Use the new send_fd mechanism for the set_console_fd server request. 2001-03-22 19:35:27 +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 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 92643003cf Converted a lot of server requests to the new exception handling
mechanism.
2000-08-31 01:59:51 +00:00
Alexandre Julliard f818d42fae Fixed COORD structure definition.
Fixed GetLargestConsoleWindowSize to not return a structure when
called from the Window binary.
2000-05-03 17:48:21 +00:00
Alexandre Julliard ef88637f5b Made request tracing more robust against bogus lengths. 2000-04-04 19:33:27 +00:00
Alexandre Julliard cb1fc735f0 Changed the server to return STATUS_* error codes. 2000-01-24 21:58:06 +00:00
Alexandre Julliard 1dca5e24c7 Moved poll handling to the generic part of the server objects.
Fixed busy waiting on POLLERR events.
Merged struct client into struct thread.
2000-01-01 00:56:27 +00:00
Alexandre Julliard 247b8aeeb9 Use poll() instead of select() for the server main loop.
Fixed races with SIGCHLD handling and ptrace.
Minor fixes to timeout handling.
1999-12-13 00:16:44 +00:00
Patrik Stridvall 96336324cf - Added missing configuration #if:s and #includes:s.
- Minor configuration related changes.
1999-10-24 22:13:47 +00:00
Howard Abrams 132774804e Added checks for sys/errno.h, sys/signal.h and sys/mman.h. 1999-07-10 13:16:29 +00:00
Alexandre Julliard ebe29ef376 Further server optimizations:
- merged request and reply structures
- build requests directly into the buffer to avoid a copy
1999-06-26 08:43:26 +00:00
Alexandre Julliard 5bc78089db Made server communication faster by using a shared memory block.
A few other optimizations in request processing in the server.
Moved automatically generated request definitions to server.h and
removed include/server/request.h.
1999-06-22 17:26:53 +00:00
Alexandre Julliard 039aa42373 Return console handles in alloc_console request.
Fixed read_console_input parameters to conform to the reply structure
declaration.
1999-06-11 18:31:22 +00:00
Alexandre Julliard 57e1131334 Adapted to new select interface.
Fixed bug in *_signaled routines that could cause busy-waiting in the
select loop.
1999-05-16 16:59:38 +00:00
Alexandre Julliard 43c190e7ba Server reorganization:
- moved request handlers to the specific C files
- moved handle management to handle.c
- moved server private includes to server/ instead of include/server/
1999-05-15 10:48:19 +00:00
Alexandre Julliard 068a26e848 Moved process definitions to include/server/process.h 1999-02-14 17:58:51 +00:00
Alexandre Julliard 4b461128d6 Added input queue to server-side console object,
read/write_console_input requests, and use them for
Read/WriteConsoleInput.
1999-01-31 19:04:30 +00:00
Alexandre Julliard 62a8b43301 Hacked server-side device support
Added user APCs support.
Many changes to the xterm console to make use of the server (not
finished yet).
Moved some other small stuff to the server.
1999-01-19 17:48:23 +00:00
Alexandre Julliard 638f169b1e Recovery of release 990110 after disk crash.
See Changelog for changes between 990103 and 990110.
1999-01-17 16:32:32 +00:00
Alexandre Julliard 0562539d18 Implemented file sharing checks in the server.
Added set file time server request.
Overall clean up of the file handling (DOS device handling is now
broken, should be redone).
1999-01-03 11:55:56 +00:00
Alexandre Julliard a8b8d9c0f6 Added server-side file mapping object support. 1999-01-01 16:59:27 +00:00
Alexandre Julliard aa0ebd0f1c Added several file server requests
Added server-side pipes and consoles
1998-12-30 12:06:45 +00:00