Beispiel #1
0
static void smartcard_device_state_free(SmartCardDeviceState* st)
{
    if (st->scc) {
        st->scc->smartcard_state = NULL;
    }
    free(st->buf);
    spice_char_device_state_destroy(st->chardev_st);
    free(st);
}
Beispiel #2
0
/* Must be called from RedClient handling thread. */
void spicevmc_device_disconnect(SpiceCharDeviceInstance *sin)
{
    SpiceVmcState *state;

    state = (SpiceVmcState *)spice_char_device_state_opaque_get(sin->st);

    if (state->recv_from_client_buf) {
        spice_char_device_write_buffer_release(state->chardev_st, state->recv_from_client_buf);
    }
    spice_char_device_state_destroy(sin->st);
    state->chardev_st = NULL;

    reds_unregister_channel(&state->channel);
    free(state->pipe_item);
    red_channel_destroy(&state->channel);
}