[Spice-devel] [phodav PATCH 2/2 v2] spice-webdavd: Auto dismount shared folder on service stop
Lukas Venhoda
lvenhoda at redhat.com
Thu Feb 25 14:19:24 UTC 2016
When stopping the service, automatically disconnect shared folder on
windows. Not dismounting could lead to multiple shared folders.
---
Changes since v1:
- New patch
---
spice/spice-webdavd.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/spice/spice-webdavd.c b/spice/spice-webdavd.c
index 55b7bbb..74d4efc 100644
--- a/spice/spice-webdavd.c
+++ b/spice/spice-webdavd.c
@@ -805,6 +805,28 @@ map_drive(GTask *task,
return;
}
+
+static void
+unmap_drive(void)
+{
+ gchar local_name[3];
+ guint32 retval;
+
+ local_name[0] = drive_letter;
+ local_name[1] = ':';
+ local_name[2] = 0;
+
+ retval = WNetCancelConnection2(local_name, CONNECT_UPDATE_PROFILE, TRUE);
+
+ if (retval == NO_ERROR)
+ g_debug ("unmap_drive ok");
+ else if (retval == ERROR_NOT_CONNECTED)
+ g_debug ("drive not connected");
+ else
+ g_error ("map_drive error %d", retval);
+
+ return;
+}
#endif
static void
@@ -894,6 +916,7 @@ service_ctrl_handler (DWORD ctrl, DWORD type, LPVOID data, LPVOID ctx)
{
case SERVICE_CONTROL_STOP:
case SERVICE_CONTROL_SHUTDOWN:
+ unmap_drive ();
quit (SIGTERM);
service_status.dwCurrentState = SERVICE_STOP_PENDING;
SetServiceStatus (service_status_handle, &service_status);
--
2.5.0
More information about the Spice-devel
mailing list