From 4fb8e0103cc176d02ea86c450670dc54b143365a Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Thu, 14 Jul 2016 11:25:29 -0700 Subject: add login info instance callback --- include/freerdp/freerdp.h | 5 ++++- libfreerdp-core/info.c | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/include/freerdp/freerdp.h b/include/freerdp/freerdp.h index 3ac773c..be4ad3b 100644 --- a/include/freerdp/freerdp.h +++ b/include/freerdp/freerdp.h @@ -55,6 +55,7 @@ typedef int (*pSendChannelData)(freerdp* instance, int channelId, uint8* data, i typedef int (*pSendFrameAck)(freerdp* instance, int frame); typedef int (*pSendInvalidate)(freerdp* instance, int code, int x, int y, int w, int h); typedef int (*pReceiveChannelData)(freerdp* instance, int channelId, uint8* data, int size, int flags, int total_size); +typedef int (*pLoginInfo)(freerdp* instance, int infoType, uint8* data, int data_bytes); struct rdp_context { @@ -102,7 +103,9 @@ struct rdp_freerdp pSendFrameAck SendFrameAck; /* 66 */ pSendInvalidate SendInvalidate; /* 67 */ - uint32 paddingE[80 - 68]; /* 68 */ + pLoginInfo LoginInfo; /* 68 */ + + uint32 paddingE[80 - 69]; /* 69 */ }; FREERDP_API void freerdp_context_new(freerdp* instance); diff --git a/libfreerdp-core/info.c b/libfreerdp-core/info.c index 3c780e6..27179c5 100644 --- a/libfreerdp-core/info.c +++ b/libfreerdp-core/info.c @@ -699,6 +699,11 @@ tbool rdp_recv_save_session_info(rdpRdp* rdp, STREAM* s) //printf("%s\n", INFO_TYPE_LOGON_STRINGS[infoType]); + if (rdp->instance->LoginInfo != NULL) + { + rdp->instance->LoginInfo(rdp->instance, infoType, stream_get_tail(s), stream_get_left(s)); + } + switch (infoType) { case INFO_TYPE_LOGON: -- cgit v1.2.3