summaryrefslogtreecommitdiffstats
path: root/common/xrdp_client_info.h
blob: ca349f0a11aedcf18bdf8fa5af077d4d6e95b50b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/**
 * xrdp: A Remote Desktop Protocol server.
 *
 * Copyright (C) Jay Sorg 2004-2014
 *
 * 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.
 *
 * xrdp / xserver info / caps
 */

#if !defined(XRDP_CLIENT_INFO_H)
#define XRDP_CLIENT_INFO_H

struct monitor_info
{
  int left;
  int top;
  int right;
  int bottom;
  int is_primary;
};

struct xrdp_client_info
{
  int size; /* bytes for this structure */
  int bpp;
  int width;
  int height;
  /* bitmap cache info */
  int cache1_entries;
  int cache1_size;
  int cache2_entries;
  int cache2_size;
  int cache3_entries;
  int cache3_size;
  int bitmap_cache_persist_enable; /* 0 or 2 */
  int bitmap_cache_version; /* ored 1 = original version, 2 = v2, 4 = v3 */
  /* pointer info */
  int pointer_cache_entries;
  /* other */
  int use_bitmap_comp;
  int use_bitmap_cache;
  int op1; /* use smaller bitmap header, non cache */
  int op2; /* use smaller bitmap header in bitmap cache */
  int desktop_cache;
  int use_compact_packets; /* rdp5 smaller packets */
  char hostname[32];
  int build;
  int keylayout;
  char username[256];
  char password[256];
  char domain[256];
  char program[256];
  char directory[256];
  int rdp_compression;
  int rdp_autologin;
  int crypt_level; /* 1, 2, 3 = low, medium, high */
  int channels_allowed; /* 0 = no channels 1 = channels */
  int sound_code; /* 1 = leave sound at server */
  int is_mce;
  int rdp5_performanceflags;
  int brush_cache_code; /* 0 = no cache 1 = 8x8 standard cache
                           2 = arbitrary dimensions */
  char client_ip[256];
  int max_bpp;
  int jpeg; /* non standard bitmap cache v2 cap */
  int offscreen_support_level;
  int offscreen_cache_size;
  int offscreen_cache_entries;
  int rfx;

  /* CAPSETTYPE_RAIL */
  int rail_support_level;
  /* CAPSETTYPE_WINDOW */
  int wnd_support_level;
  int wnd_num_icon_caches;
  int wnd_num_icon_cache_entries;
  /* codecs */
  int rfx_codec_id;
  int rfx_prop_len;
  char rfx_prop[64];
  int ns_codec_id;
  int ns_prop_len;
  char ns_prop[64];
  int jpeg_codec_id;
  int jpeg_prop_len;
  char jpeg_prop[64];
  int v3_codec_id;
  int rfx_min_pixel;
  char orders[32];
  int order_flags_ex;
  int use_bulk_comp;
  int pointer_flags; /* 0 color, 1 new, 2 no new */
  int use_fast_path;
  int require_credentials; /* when true, credentials *must* be passed on cmd line */
  char client_addr[256];
  char client_port[256];

  int security_layer; /* 0 = rdp, 1 = tls , 2 = hybrid */
  int multimon; /* 0 = deny , 1 = allow */
  int monitorCount; /* number of monitors detected (max = 16) */
  struct monitor_info minfo[16]; /* client monitor data */
  struct monitor_info minfo_wm[16]; /* client monitor data, non-negative values */

  int keyboard_type;
  int keyboard_subtype;

  int png_codec_id;
  int png_prop_len;
  char png_prop[64];
  int vendor_flags[4];
  int mcs_connection_type;
  int mcs_early_capability_flags;

  int max_fastpath_frag_bytes;
  int capture_code;
  int capture_format;

  char certificate[1024];
  char key_file[1024];

  /* X11 keyboard layout - inferred from keyboard type/subtype */
  char model[16];
  char layout[16];
  char variant[16];
  char options[256];

  /* !!!!!!!!!!!!!!!!!!!!!!!!!! */
  /* NO CHANGES ABOVE THIS LINE */
  /* !!!!!!!!!!!!!!!!!!!!!!!!!! */

  /* codec */
  int h264_codec_id;
  int h264_prop_len;
  char h264_prop[64];

  int use_frame_acks;
  int max_unacknowledged_frame_count;

  long ssl_protocols;
  char *tls_ciphers;

  int client_os_major;
  int client_os_minor;

  int no_orders_supported;
  int use_cache_glyph_v2;
  int rail_enable;
};

#endif