summaryrefslogtreecommitdiff
path: root/vdservice
AgeCommit message (Collapse)AuthorFilesLines
2013-04-22vdservice: add quotes to service pathArnon Gilboa1-2/+6
for the case path contains a space, see CreateService() doc: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682450.aspx rhbz #918635
2013-03-18vdservice: extract supported_system_version() to vdcommonArnon Gilboa2-24/+4
rhbz #919451 preparation
2013-02-26vdservice: reset vdagent stop event after waitArnon Gilboa1-0/+1
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
2013-01-31vdservice stops vdagent via eventArnon Gilboa1-1/+4
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
2012-11-25vdservice: set process handle for vdagent launched on session>0Arnon Gilboa1-0/+7
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
2012-11-25vdservice: support Windows 8 & Server 2012Arnon Gilboa1-2/+2
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.
2012-11-14vdagent: mv vdi_port files from vdserviceArnon Gilboa6-576/+0
2012-11-14vdservice: remove virtio-serial & pipe usageArnon Gilboa2-459/+36
2012-09-16vdservice: stop service on virtio failureArnon Gilboa6-23/+27
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
2012-09-13vdservice: retry virtio-serial read on ERROR_NO_SYSTEM_RESOURCES (1450)Arnon Gilboa1-1/+1
as recommended by MS. seems like defined behavior of the driver. rhbz#839564
2012-09-10vdservice: restart vdagent if killed manuallyArnon Gilboa1-0/+10
win7-only issue rhbz#845222
2012-07-25Fix remaining warningsMarc-André Lureau1-4/+5
2012-05-24mingw: fix broken buildMarc-André Lureau1-1/+1
Add missing declaration left-over.
2012-05-24Allow running as a normal process againMarc-André Lureau1-4/+4
The service code should be commented out if DEBUG_VDSERVICE. Otherwise it fails to run as a standalone process.
2012-05-24mingw: add standard main() entry functionMarc-André Lureau1-1/+16
Thanks Paolo for the suggestion: http://lists.freedesktop.org/archives/spice-devel/2012-May/009291.html
2012-03-01Revert "mingw: remove tMain use"Christophe Fergeau1-3/+3
This patch wasn't sent for review, and wasn't meant to be pushed as part of the mingw series This reverts commit 63541ea6ac722d332966f28e1779e4d668244fcb.
2012-03-01mingw: remove tMain useChristophe Fergeau1-3/+3
mingw does not support it.
2012-03-01mingw: fix format string for wchar_tChristophe Fergeau1-1/+1
%ls (or %S) must be used to printf a wchar_t *
2012-03-01mingw: don't redefine CTL_CODE if it's already definedChristophe Fergeau1-0/+3
2012-03-01mingw: use unsigned int in for loops when neededChristophe Fergeau1-1/+1
gcc complains about mixed use of signed/unsigned otherwise
2012-02-23mingw: fix format string warningsChristophe Fergeau4-33/+33
Most of them are caused by not using %lu to print a DWORD (which is an unsigned long).
2012-02-23Fix = use instead of ==Christophe Fergeau1-1/+1
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.
2011-12-28vdservice: fix vdagent first launch (during startup) failure handling ↵Arnon Gilboa1-8/+34
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.
2011-11-16vdservice: fix vdagent connection & termination handling rhbz#750037Arnon Gilboa1-28/+40
-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
2011-08-01virtio_vdi_port: if async read returns with ERROR_OPERATION_ABORTED, cancel ↵Arnon Gilboa1-4/+10
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).
2011-07-24vdservice: extract init_vdi_port()Arnon Gilboa1-13/+16
2011-07-24vdservice: clean agent proc handle in kill_agent()Arnon Gilboa1-4/+7
fill_agent_events() will not add it to the events used by WaitFor(), preventing usage of a dead process handle.
2011-07-24vdservice: use overlap ConnectNamedPipe() in launch_agent()Arnon Gilboa1-6/+19
passing NULL is buggy when pipe opened with FILE_FLAG_OVERLAPPED
2011-07-24vdservice: add control events RHBZ #719140 #722980Arnon Gilboa1-28/+55
-prevent race between service control manager (SCM) & the service main thread. -use events for stop, logon, agent restart. -thread-safe control command queue
2011-05-03vdagent: use SPICE_PROTOCOL_DIR in project include dirsArnon Gilboa1-4/+4
instead of SPICE_COMMON_DIR, which is an old and confusing name, due to the common directory in spice git repo.
2011-04-28vdservice: support w2k3 32/64/r2, w2k8 32/64/r2 (rhbz#683166)Arnon Gilboa1-11/+10
2011-04-28vdservice: don't close pipe if overlapped I/O event is not in signaled state ↵Arnon Gilboa1-1/+1
(rhbz#667777) which is beacuse ReadFile completed successfully without pending and the data was already consumed
2011-01-11vdservice: s/fill_events(HANDLE *handle)/fill_events(HANDLE* handles)/ + ↵Alon Levy5-362/+362
unix2dos
2011-01-11vdservice/vdi_port refactor: cosmetic changesAlon Levy6-89/+113
* 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).
2011-01-11vdi_port refactor: introduce old pci_vdi_portAlon Levy7-86/+306
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.
2011-01-11vdi_port refactor: move ring handling to VDIPort, split h file, remove some ↵Alon Levy5-123/+136
debug prints
2011-01-11vdi_port refactor: introduce interfaceAlon Levy3-30/+46
make VDIPort an abstract class. rename old VDIPort VirtioVDIPort. h file for virtio_vdi_port will be introduced later.
2011-01-11start refactoring vdi_portAlon Levy3-36/+66
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.
2010-11-09Revert "vdservice: don't start when no qxl device present"Arnon Gilboa2-33/+2
This reverts commit 349e6a5bf8804b25c3af6e1f439122a7cc269cc2 which breaks vsdervice on Windows 7
2010-09-22vdservice: use "com.redhat.spice.0" symbolic link as virtio-serial port pathArnon Gilboa2-66/+6
remove get_device_path() by GUID & dependency on setupapi.lib
2010-09-21vdservice: replace VDAgentDataChunk with VDIChunkHeaderArnon Gilboa2-10/+4
2010-09-21vdservice: cleanup vcprojsArnon Gilboa1-158/+2
-remove deprecated Detect64BitPortabilityProblems -add setupapi.lib to AdditionalDependencies in x64
2010-08-24vdservice: don't start when no qxl device presentAlon Levy2-2/+33
2010-08-24Controlling Windows display settings (e.g., wallpaper, UI effects and font ↵Yonit Halperin1-4/+25
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.
2010-08-23vdservice/vdagent: fixes leading to clipboard (aka large) message handlingArnon Gilboa1-17/+25
-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
2010-08-23vdservice: change pipe write completion to use overlapped structure instead ↵Alon Levy1-27/+45
of completion routine
2010-08-23vdservice: add debug only define for standalone executableAlon Levy1-0/+11
2010-08-23vdservice: use enum for events in main loopAlon Levy1-15/+22
2010-08-23vdservice: remove dead defines in vdi_port.hAlon Levy1-4/+0
2010-08-23vdservice: replace vdiport device with virtio-serial deviceAlon Levy4-90/+222
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.