summaryrefslogtreecommitdiff
path: root/src/rdp/rdp_channels.c
diff options
context:
space:
mode:
authorsss <sss@dark-alexandr.net>2023-01-17 00:38:19 +0300
committersss <sss@dark-alexandr.net>2023-01-17 00:38:19 +0300
commitcc3f33db7a8d3c4ad373e646b199808e01bc5d9b (patch)
treeec09d690c7656ab5f2cc72607e05fb359c24d8b2 /src/rdp/rdp_channels.c
added webrdp public code
Diffstat (limited to 'src/rdp/rdp_channels.c')
-rw-r--r--src/rdp/rdp_channels.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/rdp/rdp_channels.c b/src/rdp/rdp_channels.c
new file mode 100644
index 0000000..a4d95eb
--- /dev/null
+++ b/src/rdp/rdp_channels.c
@@ -0,0 +1,39 @@
+/* BSD-2-Clause license
+ *
+ * Copyright (c) 2018-2023 NST <www.newinfosec.ru>, sss <sss at dark-alexandr dot net>.
+ *
+ */
+
+#include <string.h>
+#include "rdp_channels.h"
+#include "rdp_clipboard.h"
+#include "rdp_rail.h"
+
+void
+rdp_on_channel_connected(void *context, const ChannelConnectedEventArgs *e)
+{
+ if (strcmp(e->name, CLIPRDR_SVC_CHANNEL_NAME) == 0)
+ {
+ rdp_cliprdr_init(
+ context, (CliprdrClientContext *)e->pInterface);
+ }
+ else if (strcmp(e->name, RAIL_SVC_CHANNEL_NAME) == 0)
+ {
+ rdp_rail_init(context, (RailClientContext *)e->pInterface);
+ }
+}
+
+void
+rdp_on_channel_disconnected(
+ void *context, const ChannelDisconnectedEventArgs *e)
+{
+ if (strcmp(e->name, CLIPRDR_SVC_CHANNEL_NAME) == 0)
+ {
+ rdp_cliprdr_uninit(
+ context, (CliprdrClientContext *)e->pInterface);
+ }
+ else if (strcmp(e->name, RAIL_SVC_CHANNEL_NAME) == 0)
+ {
+ rdp_rail_uninit(context, (RailClientContext *)e->pInterface);
+ }
+}