FreeRDP
dyn-channel-dump.cpp File Reference
#include <fstream>
#include <iostream>
#include <regex>
#include <vector>
#include <sstream>
#include <string>
#include <algorithm>
#include <map>
#include <memory>
#include <mutex>
#include <atomic>
#include <freerdp/server/proxy/proxy_modules_api.h>
#include <freerdp/server/proxy/proxy_context.h>
#include <freerdp/channels/drdynvc.h>
#include <freerdp/channels/rdpgfx.h>
#include <freerdp/utils/gfx.h>

Macros

#define TAG   MODULE_TAG("dyn-channel-dump")
 

Functions

static PluginData * dump_get_plugin_data (proxyPlugin *plugin)
 
static ChannelData * dump_get_plugin_data (proxyPlugin *plugin, proxyData *pdata)
 
static BOOL dump_set_plugin_data (proxyPlugin *plugin, proxyData *pdata, ChannelData *data)
 
static bool dump_channel_enabled (proxyPlugin *plugin, proxyData *pdata, const std::string &name)
 
static BOOL dump_dyn_channel_intercept_list (proxyPlugin *plugin, proxyData *pdata, void *arg)
 
static BOOL dump_static_channel_intercept_list (proxyPlugin *plugin, proxyData *pdata, void *arg)
 
static BOOL dump_dyn_channel_intercept (proxyPlugin *plugin, proxyData *pdata, void *arg)
 
static std::vector< std::string > split (const std::string &input, const std::string &regex)
 
static BOOL dump_session_started (proxyPlugin *plugin, proxyData *pdata, void *)
 
static BOOL dump_session_end (proxyPlugin *plugin, proxyData *pdata, void *)
 
static BOOL dump_unload (proxyPlugin *plugin)
 
FREERDP_API BOOL proxy_module_entry_point (proxyPluginsManager *plugins_manager, void *userdata)
 

Variables

static constexpr char plugin_name [] = "dyn-channel-dump"
 
static constexpr char plugin_desc []
 
static const std::vector< std::string > plugin_static_intercept = { DRDYNVC_SVC_CHANNEL_NAME }
 
static constexpr char key_path [] = "path"
 
static constexpr char key_channels [] = "channels"
 

Macro Definition Documentation

◆ TAG

#define TAG   MODULE_TAG("dyn-channel-dump")

FreeRDP: A Remote Desktop Protocol Implementation FreeRDP Proxy Server persist-bitmap-filter Module

this module is designed to deactivate all persistent bitmap cache settings a client might send.

Copyright 2023 Armin Novak anova.nosp@m.k@th.nosp@m.incas.nosp@m.t.co.nosp@m.m Copyright 2023 Thincast Technologies GmbH

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ dump_channel_enabled()

static bool dump_channel_enabled ( proxyPlugin *  plugin,
proxyData *  pdata,
const std::string &  name 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_dyn_channel_intercept()

static BOOL dump_dyn_channel_intercept ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_dyn_channel_intercept_list()

static BOOL dump_dyn_channel_intercept_list ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  arg 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_get_plugin_data() [1/2]

static PluginData* dump_get_plugin_data ( proxyPlugin *  plugin)
static
Here is the caller graph for this function:

◆ dump_get_plugin_data() [2/2]

static ChannelData* dump_get_plugin_data ( proxyPlugin *  plugin,
proxyData *  pdata 
)
static
Here is the call graph for this function:

◆ dump_session_end()

static BOOL dump_session_end ( proxyPlugin *  plugin,
proxyData *  pdata,
void *   
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_session_started()

static BOOL dump_session_started ( proxyPlugin *  plugin,
proxyData *  pdata,
void *   
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_set_plugin_data()

static BOOL dump_set_plugin_data ( proxyPlugin *  plugin,
proxyData *  pdata,
ChannelData *  data 
)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dump_static_channel_intercept_list()

static BOOL dump_static_channel_intercept_list ( proxyPlugin *  plugin,
proxyData *  pdata,
void *  arg 
)
static
Here is the caller graph for this function:

◆ dump_unload()

static BOOL dump_unload ( proxyPlugin *  plugin)
static
Here is the caller graph for this function:

◆ proxy_module_entry_point()

FREERDP_API BOOL proxy_module_entry_point ( proxyPluginsManager *  plugins_manager,
void *  userdata 
)
Here is the call graph for this function:

◆ split()

static std::vector<std::string> split ( const std::string &  input,
const std::string &  regex 
)
static
Here is the caller graph for this function:

Variable Documentation

◆ key_channels

constexpr char key_channels[] = "channels"
staticconstexpr

◆ key_path

constexpr char key_path[] = "path"
staticconstexpr

◆ plugin_desc

constexpr char plugin_desc[]
staticconstexpr
Initial value:
=
"This plugin dumps configurable dynamic channel data to a file."

◆ plugin_name

constexpr char plugin_name[] = "dyn-channel-dump"
staticconstexpr

◆ plugin_static_intercept

const std::vector<std::string> plugin_static_intercept = { DRDYNVC_SVC_CHANNEL_NAME }
static