diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2013-09-24 11:17:50 -0700 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2013-09-24 11:17:50 -0700 |
commit | 675e1b86c44d6b75032ec4cb40f4ccfb8cd06358 (patch) | |
tree | 74076c1a8a96e2fa3cb9001e778f2dbb81d2cabe /sesman/chansrv/smartcard.c | |
parent | fc31ae1f48bc2162c49daee8b79f66c67c9cf428 (diff) | |
download | xrdp-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.c | 8 |
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"); } |