[Spice-devel] [PATCH 2/8] server/smartcard: libcacard removed ReaderAddResponse
Hans de Goede
hdegoede at redhat.com
Fri Feb 4 00:38:10 PST 2011
Ack.
On 02/03/2011 08:02 PM, Alon Levy wrote:
> ---
> server/smartcard.c | 46 ++++------------------------------------------
> 1 files changed, 4 insertions(+), 42 deletions(-)
>
> diff --git a/server/smartcard.c b/server/smartcard.c
> index 63e4a99..8af87d8 100644
> --- a/server/smartcard.c
> +++ b/server/smartcard.c
> @@ -17,7 +17,6 @@ typedef struct SmartCardDeviceState {
>
> enum {
> PIPE_ITEM_TYPE_ERROR=1,
> - PIPE_ITEM_TYPE_READER_ADD_RESPONSE,
> PIPE_ITEM_TYPE_MSG,
> };
>
> @@ -27,11 +26,6 @@ typedef struct ErrorItem {
> uint32_t error;
> } ErrorItem;
>
> -typedef struct ReaderAddResponseItem {
> - PipeItem base;
> - uint32_t reader_id;
> -} ReaderAddResponseItem;
> -
> typedef struct MsgItem {
> PipeItem base;
> VSCMsgHeader* vheader;
> @@ -108,21 +102,15 @@ void smartcard_char_device_on_message_from_device(
> case VSC_Init:
> return;
> break;
> - case VSC_ReaderAddResponse:
> - /* The device sends this for vscclient, we send one ourselves,
> - * a second would be an error. */
> - return;
> - break;
> - case VSC_Reconnect:
> - /* Ignore VSC_Reconnect messages, spice channel reconnection does the same. */
> - return;
> - break;
> default:
> break;
> }
> + /* We pass any VSC_Error right now - might need to ignore some? */
> ASSERT(state->reader_id != VSCARD_UNDEFINED_READER_ID);
> ASSERT(g_smartcard_channel != NULL);
> sent_header = spice_memdup(vheader, sizeof(*vheader) + vheader->length);
> + /* We patch the reader_id, since the device only knows about itself, and
> + * we know about the sum of readers. */
> sent_header->reader_id = state->reader_id;
> smartcard_on_message_from_device(g_smartcard_channel, sent_header);
> }
> @@ -299,16 +287,6 @@ static void smartcard_channel_send_error(
> VSC_Error, (uint8_t*)&error, sizeof(error));
> }
>
> -static void smartcard_channel_send_reader_add_response(
> - SmartCardChannel *smartcard_channel, PipeItem *item)
> -{
> - ReaderAddResponseItem* rar_item = (ReaderAddResponseItem*)item;
> - VSCMsgReaderAddResponse rar;
> -
> - smartcard_channel_send_message(&smartcard_channel->base, item, rar_item->reader_id,
> - VSC_ReaderAddResponse, (uint8_t*)&rar, sizeof(rar));
> -}
> -
> static void smartcard_channel_send_msg(
> SmartCardChannel *smartcard_channel, PipeItem *item)
> {
> @@ -326,9 +304,6 @@ static void smartcard_channel_send_item(RedChannel *channel, PipeItem *item)
> case PIPE_ITEM_TYPE_ERROR:
> smartcard_channel_send_error(smartcard_channel, item);
> break;
> - case PIPE_ITEM_TYPE_READER_ADD_RESPONSE:
> - smartcard_channel_send_reader_add_response(smartcard_channel, item);
> - break;
> case PIPE_ITEM_TYPE_MSG:
> smartcard_channel_send_msg(smartcard_channel, item);
> }
> @@ -368,15 +343,6 @@ static void smartcard_push_error(SmartCardChannel* channel, uint32_t reader_id,
> smartcard_channel_pipe_add(channel,&error_item->base);
> }
>
> -static void smartcard_push_reader_add_response(SmartCardChannel *channel, uint32_t reader_id)
> -{
> - ReaderAddResponseItem *rar_item = spice_new0(ReaderAddResponseItem, 1);
> -
> - rar_item->base.type = PIPE_ITEM_TYPE_READER_ADD_RESPONSE;
> - rar_item->reader_id = reader_id;
> - smartcard_channel_pipe_add(channel,&rar_item->base);
> -}
> -
> static void smartcard_push_vscmsg(SmartCardChannel *channel, VSCMsgHeader *vheader)
> {
> MsgItem *msg_item = spice_new0(MsgItem, 1);
> @@ -422,7 +388,7 @@ static void smartcard_add_reader(SmartCardChannel *smartcard_channel, uint8_t *n
> if (char_device != NULL) {
> state = SPICE_CONTAINEROF(char_device->st, SmartCardDeviceState, base);
> smartcard_char_device_attach(char_device, smartcard_channel);
> - smartcard_push_reader_add_response(smartcard_channel, state->reader_id);
> + smartcard_push_error(smartcard_channel, state->reader_id, VSC_SUCCESS);
> } else {
> smartcard_push_error(smartcard_channel, VSCARD_UNDEFINED_READER_ID,
> VSC_CANNOT_ADD_MORE_READERS);
> @@ -461,10 +427,6 @@ static int smartcard_channel_handle_message(RedChannel *channel, SpiceDataHeader
> smartcard_remove_reader(smartcard_channel, vheader->reader_id);
> return TRUE;
> break;
> - case VSC_ReaderAddResponse:
> - /* We shouldn't get this - we only send it */
> - return TRUE;
> - break;
> case VSC_Init:
> case VSC_Error:
> case VSC_ATR:
More information about the Spice-devel
mailing list