diff options
author | speidy <speidy@gmail.com> | 2017-01-15 09:11:49 +0300 |
---|---|---|
committer | speidy <speidy@gmail.com> | 2017-01-15 09:11:49 +0300 |
commit | 96fd736f04efe50854acf07b824001b7d5e65e4e (patch) | |
tree | 84d7490436c5f53f2b08cd38791c3bfd04b6c349 | |
parent | eee121bccd3c46782095dc03bdc95b14a2530d90 (diff) | |
parent | 04ba5bef9292dca17928c79e389a7910651418bd (diff) |
Merge branch 'devel' of https://github.com/Osirium/NeutrinoRDP into devel
-rw-r--r-- | include/freerdp/freerdp.h | 7 | ||||
-rw-r--r-- | libfreerdp-core/info.c | 5 |
2 files changed, 11 insertions, 1 deletions
diff --git a/include/freerdp/freerdp.h b/include/freerdp/freerdp.h index 3ac773c..b3074f1 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 (*pSessionInfo)(freerdp* instance, uint8* data, int data_bytes); struct rdp_context { @@ -76,6 +77,8 @@ struct rdp_context uint8 temp[32 * 1024]; }; +/* SessionInfo added with version 1 */ +#define VERSION_STRUCT_RDP_FREERDP 1 struct rdp_freerdp { rdpContext* context; /* 0 */ @@ -102,7 +105,9 @@ struct rdp_freerdp pSendFrameAck SendFrameAck; /* 66 */ pSendInvalidate SendInvalidate; /* 67 */ - uint32 paddingE[80 - 68]; /* 68 */ + pSessionInfo SessionInfo; /* 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..1c33ed4 100644 --- a/libfreerdp-core/info.c +++ b/libfreerdp-core/info.c @@ -695,6 +695,11 @@ tbool rdp_recv_save_session_info(rdpRdp* rdp, STREAM* s) { uint32 infoType; + if (rdp->instance->SessionInfo != NULL) + { + rdp->instance->SessionInfo(rdp->instance, stream_get_tail(s), stream_get_left(s)); + } + stream_read_uint32(s, infoType); /* infoType (4 bytes) */ //printf("%s\n", INFO_TYPE_LOGON_STRINGS[infoType]); |