Add rdpcontext so read thread can report channel error
Also fix copyright dates...
This commit is contained in:
parent
639930869a
commit
c27541e9ac
@ -2,7 +2,7 @@
|
|||||||
# FreeRDP cmake build script
|
# FreeRDP cmake build script
|
||||||
#
|
#
|
||||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||||
# Copyright 2012 Ben Cohen
|
# Copyright 2017 Ben Cohen
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# FreeRDP cmake build script
|
# FreeRDP cmake build script
|
||||||
#
|
#
|
||||||
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
# Copyright 2012 Marc-Andre Moreau <marcandre.moreau@gmail.com>
|
||||||
# Copyright 2012 Ben Cohen
|
# Copyright 2017 Ben Cohen
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
# you may not use this file except in compliance with the License.
|
# you may not use this file except in compliance with the License.
|
||||||
|
@ -66,6 +66,7 @@ struct _SSHAGENT_LISTENER_CALLBACK
|
|||||||
IWTSPlugin* plugin;
|
IWTSPlugin* plugin;
|
||||||
IWTSVirtualChannelManager* channel_mgr;
|
IWTSVirtualChannelManager* channel_mgr;
|
||||||
|
|
||||||
|
rdpContext* rdpcontext;
|
||||||
const char *agent_uds_path;
|
const char *agent_uds_path;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -78,6 +79,7 @@ struct _SSHAGENT_CHANNEL_CALLBACK
|
|||||||
IWTSVirtualChannelManager* channel_mgr;
|
IWTSVirtualChannelManager* channel_mgr;
|
||||||
IWTSVirtualChannel* channel;
|
IWTSVirtualChannel* channel;
|
||||||
|
|
||||||
|
rdpContext* rdpcontext;
|
||||||
int agent_fd;
|
int agent_fd;
|
||||||
HANDLE thread;
|
HANDLE thread;
|
||||||
CRITICAL_SECTION lock;
|
CRITICAL_SECTION lock;
|
||||||
@ -89,6 +91,8 @@ struct _SSHAGENT_PLUGIN
|
|||||||
IWTSPlugin iface;
|
IWTSPlugin iface;
|
||||||
|
|
||||||
SSHAGENT_LISTENER_CALLBACK* listener_callback;
|
SSHAGENT_LISTENER_CALLBACK* listener_callback;
|
||||||
|
|
||||||
|
rdpContext* rdpcontext;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -174,9 +178,9 @@ static void *sshagent_read_thread(void *data)
|
|||||||
|
|
||||||
close(callback->agent_fd);
|
close(callback->agent_fd);
|
||||||
|
|
||||||
//if (status != CHANNEL_RC_OK)
|
if (status != CHANNEL_RC_OK)
|
||||||
// setChannelError(rdpei->rdpcontext, status,
|
setChannelError(callback->rdpcontext, status,
|
||||||
// "sshagent_read_thread reported an error");
|
"sshagent_read_thread reported an error");
|
||||||
|
|
||||||
ExitThread(0);
|
ExitThread(0);
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -289,6 +293,7 @@ static UINT sshagent_on_new_channel_connection(IWTSListenerCallback* pListenerCa
|
|||||||
callback->plugin = listener_callback->plugin;
|
callback->plugin = listener_callback->plugin;
|
||||||
callback->channel_mgr = listener_callback->channel_mgr;
|
callback->channel_mgr = listener_callback->channel_mgr;
|
||||||
callback->channel = pChannel;
|
callback->channel = pChannel;
|
||||||
|
callback->rdpcontext = listener_callback->rdpcontext;
|
||||||
|
|
||||||
callback->thread
|
callback->thread
|
||||||
= CreateThread(NULL,
|
= CreateThread(NULL,
|
||||||
@ -325,6 +330,7 @@ static UINT sshagent_plugin_initialize(IWTSPlugin* pPlugin, IWTSVirtualChannelMa
|
|||||||
return CHANNEL_RC_NO_MEMORY;
|
return CHANNEL_RC_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sshagent->listener_callback->rdpcontext = sshagent->rdpcontext;
|
||||||
sshagent->listener_callback->iface.OnNewChannelConnection = sshagent_on_new_channel_connection;
|
sshagent->listener_callback->iface.OnNewChannelConnection = sshagent_on_new_channel_connection;
|
||||||
sshagent->listener_callback->plugin = pPlugin;
|
sshagent->listener_callback->plugin = pPlugin;
|
||||||
sshagent->listener_callback->channel_mgr = pChannelMgr;
|
sshagent->listener_callback->channel_mgr = pChannelMgr;
|
||||||
@ -386,6 +392,8 @@ UINT DVCPluginEntry(IDRDYNVC_ENTRY_POINTS* pEntryPoints)
|
|||||||
sshagent->iface.Connected = NULL;
|
sshagent->iface.Connected = NULL;
|
||||||
sshagent->iface.Disconnected = NULL;
|
sshagent->iface.Disconnected = NULL;
|
||||||
sshagent->iface.Terminated = sshagent_plugin_terminated;
|
sshagent->iface.Terminated = sshagent_plugin_terminated;
|
||||||
|
sshagent->rdpcontext = ((freerdp*)((rdpSettings*) pEntryPoints->GetRdpSettings(
|
||||||
|
pEntryPoints))->instance)->context;
|
||||||
|
|
||||||
status = pEntryPoints->RegisterPlugin(pEntryPoints, "sshagent", (IWTSPlugin*) sshagent);
|
status = pEntryPoints->RegisterPlugin(pEntryPoints, "sshagent", (IWTSPlugin*) sshagent);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user