[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