diff options
author | Jay Sorg <jay.sorg@gmail.com> | 2016-07-14 21:25:29 +0300 |
---|---|---|
committer | Jay Sorg <jay.sorg@gmail.com> | 2016-07-14 21:25:29 +0300 |
commit | 4fb8e0103cc176d02ea86c450670dc54b143365a (patch) | |
tree | 11e11abaf88d9c728a0a1d6999046ef32419f0c8 | |
parent | 67ea8cae60cf6b1023f5c475d0f79e1652d93a10 (diff) |
add login info instance callback
-rw-r--r-- | include/freerdp/freerdp.h | 5 | ||||
-rw-r--r-- | libfreerdp-core/info.c | 5 |
2 files changed, 9 insertions, 1 deletions
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: |