diff --git a/server/reds.c b/server/reds.c index f0ebf0cd..9898fe54 100644 --- a/server/reds.c +++ b/server/reds.c @@ -3265,6 +3265,7 @@ static void spice_server_char_device_remove_interface(RedsState *reds, SpiceBase if (strcmp(char_device->subtype, SUBTYPE_VDAGENT) == 0) { if (reds->vdagent) { reds_agent_remove(reds); + red_char_device_reset_dev_instance(RED_CHAR_DEVICE(reds->agent_dev), NULL); } } #ifdef USE_SMARTCARD diff --git a/server/spice-server.h b/server/spice-server.h index d309f180..87c5c59d 100644 --- a/server/spice-server.h +++ b/server/spice-server.h @@ -67,6 +67,11 @@ int spice_server_add_ssl_client(SpiceServer *s, int socket, int skip_auth); int spice_server_add_interface(SpiceServer *s, SpiceBaseInstance *sin); +/** + * Remove an interface from SpiceServer. + * SpiceServer won't be using the interface anymore, so it can + * be freed or reused. + */ int spice_server_remove_interface(SpiceBaseInstance *sin); // Needed for backward API compatibility