Hello Vic,
--- On Mon, 2/5/11, Vic Lee <[email protected]> wrote:
> I think the right thing to do is to
> announce only smartcard before
> login, and accounce all after login. I remember the device
> will be
> cleared after the server sends PAKID_CORE_USER_LOGGEDON.
Something like that?
diff --git a/channels/rdpdr/rdpdr_main.c b/channels/rdpdr/rdpdr_main.c
index d55229f..868776a 100644
--- a/channels/rdpdr/rdpdr_main.c
+++ b/channels/rdpdr/rdpdr_main.c
@@ -673,6 +673,7 @@ thread_process_message(rdpdrPlugin * plugin, char * data,
int data_size)
uint16 packetID;
uint32 deviceID;
uint32 status;
+ SERVICE * srv;
component = GET_UINT16(data, 0);
packetID = GET_UINT16(data, 2);
@@ -700,15 +701,19 @@ thread_process_message(rdpdrPlugin * plugin, char * data,
int data_size)
LLOGLN(10, ("PAKID_CORE_CLIENTID_CONFIRM"));
rdpdr_process_server_clientid_confirm(plugin,
&data[4], data_size - 4);
+ srv =
devman_get_service_by_type(plugin->devman, RDPDR_DTYP_SMARTCARD);
+
/* versionMinor 0x0005 doesn't send
PAKID_CORE_USER_LOGGEDON,
so we have to send it here */
- if (plugin->versionMinor == 0x0005)
+ if (plugin->versionMinor == 0x0005 || srv->type
== RDPDR_DTYP_SMARTCARD)
rdpdr_send_device_list_announce_request(plugin);
break;
case PAKID_CORE_USER_LOGGEDON:
LLOGLN(10, ("PAKID_CORE_USER_LOGGEDON"));
- rdpdr_send_device_list_announce_request(plugin);
+ srv =
devman_get_service_by_type(plugin->devman, RDPDR_DTYP_SMARTCARD);
+ if (!srv->type == RDPDR_DTYP_SMARTCARD)
+
rdpdr_send_device_list_announce_request(plugin);
break;
case PAKID_CORE_DEVICE_REPLY:
Thank you,
Eduardo
>
> On 05/02/2011 08:19 AM, Aaron Small wrote:
> > Hello,
> >
> > Thanks for implementing smart card redirection! I have
> access to a computer that requires a smart card to login, so
> can help to test this. I find the remote computer doesn't
> detect the smartcard in time, though, since it's needed for
> login, the smartcard's presence needs to be announced before
> login completes, and it seems the FreeRDP announces it only
> after login completes. The following patch fixes the problem
> for me, so that it can properly use the smartcard during
> login:
> >
> > diff --git a/channels/rdpdr/rdpdr_main.c
> b/channels/rdpdr/rdpdr_main.c
> > index d55229f..2a8bd25 100644
> > --- a/channels/rdpdr/rdpdr_main.c
> > +++ b/channels/rdpdr/rdpdr_main.c
> > @@ -700,15 +700,11 @@
> thread_process_message(rdpdrPlugin * plugin, char * data,
> int data_size)
> >
> LLOGLN(10,
> ("PAKID_CORE_CLIENTID_CONFIRM"));
> >
>
> rdpdr_process_server_clientid_confirm(plugin,&data[4],
> data_size - 4);
> >
> > -
> /* versionMinor 0x0005
> doesn't send PAKID_CORE_USER_LOGGEDON,
> > -
> so
> we have to send it here */
> > -
> if
> (plugin->versionMinor == 0x0005)
> > -
>
> rdpdr_send_device_list_announce_request(plugin);
> > +
>
> rdpdr_send_device_list_announce_request(plugin);
> >
> break;
> >
> >
> case PAKID_CORE_USER_LOGGEDON:
> >
> LLOGLN(10,
> ("PAKID_CORE_USER_LOGGEDON"));
> > -
>
> rdpdr_send_device_list_announce_request(plugin);
> >
> break;
> >
> >
> case PAKID_CORE_DEVICE_REPLY:
> >
> >
> >
> > Thanks,
> > Aaron
>
>
>
> ------------------------------------------------------------------------------
> WhatsUp Gold - Download Free Network Management Software
> The most intuitive, comprehensive, and cost-effective
> network
> management toolset available today. Delivers lowest
> initial
> acquisition cost and overall TCO of any competing
> solution.
> http://p.sf.net/sfu/whatsupgold-sd
> _______________________________________________
> Freerdp-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freerdp-devel
>
------------------------------------------------------------------------------
WhatsUp Gold - Download Free Network Management Software
The most intuitive, comprehensive, and cost-effective network
management toolset available today. Delivers lowest initial
acquisition cost and overall TCO of any competing solution.
http://p.sf.net/sfu/whatsupgold-sd
_______________________________________________
Freerdp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freerdp-devel