Age | Commit message (Collapse) | Author | Files | Lines |
|
for the case path contains a space, see CreateService() doc:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682450.aspx
rhbz #918635
|
|
rhbz #919451 preparation
|
|
vdagent terminates when the global event is set by vdservice. vdservice is also
responsible to reset the event in any case, without trusting vdagent to do so.
Otherwise, it may terminate the following vdagent instance immediately as well.
Regression was due to commit 2d03cc.
rhbz #868254
|
|
Terminate agent politely instead of ugly TerminateProcess(), so now
VD_AGENT_CLIPBOARD_RELEASE is sent (if guest owned the clipboard),
followed by cleanup.
rhbz #903379
|
|
The problem on XP was failing to terminate agent running on session>0,
since during agent process creation, a handle was not set, so it was NULL.
Therefore, the new agent created (at the session we switched to) was unable
to open vitio-serial which was still used by the other running agent instance.
rhbz#868254
|
|
vdagent was ok, but vdservice required adding these to the version check.
Both are handled as the rest of the Win7 class.
Tested on Win8x64.
|
|
|
|
|
|
read & write are async, and their completion is handled by handle_event(),
which returns status used by service execute loop.
previously an error in GetOverlappedResult caused vdservice hang.
rhbz#839564
|
|
as recommended by MS. seems like defined behavior of the driver.
rhbz#839564
|
|
win7-only issue
rhbz#845222
|
|
|
|
Add missing declaration left-over.
|
|
The service code should be commented out if DEBUG_VDSERVICE.
Otherwise it fails to run as a standalone process.
|
|
Thanks Paolo for the suggestion:
http://lists.freedesktop.org/archives/spice-devel/2012-May/009291.html
|
|
This patch wasn't sent for review, and wasn't meant to be pushed
as part of the mingw series
This reverts commit 63541ea6ac722d332966f28e1779e4d668244fcb.
|
|
mingw does not support it.
|
|
%ls (or %S) must be used to printf a wchar_t *
|
|
|
|
gcc complains about mixed use of signed/unsigned otherwise
|
|
Most of them are caused by not using %lu to print a DWORD (which
is an unsigned long).
|
|
When checking for ConnectNamedPipe status, the error check uses
if ( err = ERROR_IO_PENDING) instead of using == which causes this
error check to always trigger. This commit fixes this, however it
needs careful testing since the fact that it went unnoticed means
the code with the bug was working as expected. Maybe changing it
will cause unexpected regressions.
|
|
rhbz#750037
In case of agent launch failure: if connection state is not active(*), wait for
agent launch on the next session connection. Otherwise, the service is stopped.
(*) The failure was due to system startup timings and logon settings, causing
the first agent instance lifetime (before session connect) to be too short to
connect the service.
|
|
-extend vdagent wait timeouts
-timeout occured when connecting during windows startup, using wan emulator with
1Mbps bandwith, and only when qxl driver is installed. It might be due to spice
commands window control which in this case indirectly affects windows startup
timings (needs further investigation).
-fix wait for vdagent connect
-fix wait for vdagent termination & exit code handling
-cleanup & nicify relevant logs while debugging
|
|
pending (rhbz#725734)
Therefore in case of virtio-serial ReadFile timeout (new driver behavior),
the next VirtioVDIPort::read() call by the service will be performed,
since it is now (!_read.pending).
|
|
|
|
fill_agent_events() will not add it to the events used by WaitFor(),
preventing usage of a dead process handle.
|
|
passing NULL is buggy when pipe opened with FILE_FLAG_OVERLAPPED
|
|
-prevent race between service control manager (SCM) & the service main thread.
-use events for stop, logon, agent restart.
-thread-safe control command queue
|
|
instead of SPICE_COMMON_DIR, which is an old and confusing name,
due to the common directory in spice git repo.
|
|
|
|
(rhbz#667777)
which is beacuse ReadFile completed successfully without pending and the data was already consumed
|
|
unix2dos
|
|
* move comment about ring to the proper file, vdi_port.h
* introduce enums for EVENT indices (0,1 for Virtio, 0 for PCI)
* move fill_events to cpp (leave the single lines inline).
|
|
This patch is a little dirty due to EOL convertion to windows format.
+ add pci_vdi_port with PCIVDIPort taken from last commit before
changing to virtio-serial (a17ccbf323768c3cb977f0f062366ba7cf7f19db)
+ move handle_error to VDIPort (identical in VIRTIOVDIPort and PCIVDIPort)
+ make VDService create first a virtio, then init, the pci, then init,
stopping when the first init succeeds, and reporting to log which was
created.
|
|
debug prints
|
|
make VDIPort an abstract class.
rename old VDIPort VirtioVDIPort.
h file for virtio_vdi_port will be introduced later.
|
|
introduce VDIPort::get_num_events and VDIPort::fill_events,
change VDService::_events to be dynamically allocated
document _events contents: STATIC events, then vdi_port, then agent.
|
|
This reverts commit 349e6a5bf8804b25c3af6e1f439122a7cc269cc2 which breaks vsdervice on Windows 7
|
|
remove get_device_path() by GUID & dependency on setupapi.lib
|
|
|
|
-remove deprecated Detect64BitPortabilityProblems
-add setupapi.lib to AdditionalDependencies in x64
|
|
|
|
smoothing)
The configuration is received from Spice client.
The main usage of this option is for disabling display features in order to accelerate Spice performance over limited network connections.
|
|
-add VDAgent::dispatch_message()
-in VDAgent::read_completion() handle multi-chunk msgs
-fix chunk size bug in VDService::handle_pipe_data()
-add size to VDPipeMessage
|
|
of completion routine
|
|
|
|
|
|
|
|
replaced vdiport device by virtio-serial device which is also an easy
to use stream between guest and host but is already in qemu.
* VDIPortBuffer split off from VDIPort
* use setupapi to get device path
* setupapi.lib dependency added, magic GUID instead of a magic filename
* retry several times to open device, fixes startup race between driver
initialization and service start on boot.
* limit writes to device, a limitation of current windows driver.
* virtio-serial uses overlapped structure and events for async read/write
instead of vdi_port special event.
|