summaryrefslogtreecommitdiffstats
path: root/sesman/chansrv/smartcard.c
diff options
context:
space:
mode:
authorJay Sorg <jay.sorg@gmail.com>2013-09-24 11:17:50 -0700
committerJay Sorg <jay.sorg@gmail.com>2013-09-24 11:17:50 -0700
commit675e1b86c44d6b75032ec4cb40f4ccfb8cd06358 (patch)
tree74076c1a8a96e2fa3cb9001e778f2dbb81d2cabe /sesman/chansrv/smartcard.c
parentfc31ae1f48bc2162c49daee8b79f66c67c9cf428 (diff)
downloadxrdp-proprietary-675e1b86c44d6b75032ec4cb40f4ccfb8cd06358.tar.gz
xrdp-proprietary-675e1b86c44d6b75032ec4cb40f4ccfb8cd06358.zip
chansrv: work on smartcard
Diffstat (limited to 'sesman/chansrv/smartcard.c')
-rw-r--r--sesman/chansrv/smartcard.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sesman/chansrv/smartcard.c b/sesman/chansrv/smartcard.c
index 1a81efea..e4d144bd 100644
--- a/sesman/chansrv/smartcard.c
+++ b/sesman/chansrv/smartcard.c
@@ -1163,6 +1163,8 @@ scard_send_Connect(IRP* irp, tui32 context, int wide, READER_STATE* rs)
/* insert reader name */
num_chars = g_mbstowcs(w_reader_name, rs->reader_name, 99);
+ xstream_wr_u32_le(s, 0);
+ xstream_wr_u32_le(s, 0);
xstream_wr_u32_le(s, num_chars);
if (wide)
{
@@ -1178,6 +1180,7 @@ scard_send_Connect(IRP* irp, tui32 context, int wide, READER_STATE* rs)
xstream_wr_u8(s, w_reader_name[index]);
}
}
+ align_s(s, 4);
/* insert context */
xstream_wr_u32_le(s, 4);
@@ -1670,6 +1673,7 @@ scard_handle_Connect_Return(struct stream *s, IRP *irp,
tui32 IoStatus)
{
tui32 len;
+ struct trans *con;
log_debug("entered");
@@ -1689,7 +1693,9 @@ scard_handle_Connect_Return(struct stream *s, IRP *irp,
/* get OutputBufferLen */
xstream_rd_u32_le(s, len);
-
+ con = (struct trans *) (irp->user_data);
+ scard_function_connect_return(con, s, len);
+ devredir_irp_delete(irp);
log_debug("leaving");
}