mcs = mcs_new(transport);
mcs_send_connect_initial(mcs);
+ mcs_recv(mcs);
+
return 0;
}
void ber_write_integer(STREAM* s, uint32 value)
{
ber_write_universal_tag(s, BER_TAG_INTEGER);
-
- if (value <= 0xFF)
- {
- ber_write_length(s, 1);
- stream_write_uint8(s, value);
- }
- else if (value <= 0xFFFF)
- {
- ber_write_length(s, 2);
- stream_write_uint16_be(s, value);
- }
- else if (value <= 0xFFFFFFFF)
- {
- ber_write_length(s, 4);
- stream_write_uint32_be(s, value);
- }
+ ber_write_length(s, 2);
+ stream_write_uint16_be(s, value);
}
stream_write_uint32(s, 0); /* serialNumber (should be initialized to 0) */
highColorDepth = MIN(settings->color_depth, 24);
- supportedColorDepths = RNS_UD_24BPP_SUPPORT | RNS_UD_16BPP_SUPPORT | RNS_UD_15BPP_SUPPORT;
+
+ supportedColorDepths =
+ RNS_UD_32BPP_SUPPORT |
+ RNS_UD_24BPP_SUPPORT |
+ RNS_UD_16BPP_SUPPORT |
+ RNS_UD_15BPP_SUPPORT;
connectionType = 0;
earlyCapabilityFlags = RNS_UD_CS_SUPPORT_ERRINFO_PDU;
gcc_write_user_data_header(s, CS_SECURITY, 12);
- encryptionMethods =
- ENCRYPTION_40BIT_FLAG |
- ENCRYPTION_56BIT_FLAG |
- ENCRYPTION_128BIT_FLAG |
- ENCRYPTION_FIPS_FLAG;
+ encryptionMethods = ENCRYPTION_40BIT_FLAG | ENCRYPTION_128BIT_FLAG;
if (settings->encryption > 0)
{
static void mcs_write_domain_parameters(STREAM* s, DOMAIN_PARAMETERS* domainParameters)
{
- int length;
- uint8 *bm, *em;
-
- stream_get_mark(s, bm);
- stream_seek(s, 2);
-
+ ber_write_sequence_of_tag(s, 32);
ber_write_integer(s, domainParameters->maxChannelIds);
ber_write_integer(s, domainParameters->maxUserIds);
ber_write_integer(s, domainParameters->maxTokenIds);
ber_write_integer(s, domainParameters->maxHeight);
ber_write_integer(s, domainParameters->maxMCSPDUsize);
ber_write_integer(s, domainParameters->protocolVersion);
-
- stream_get_mark(s, em);
- length = (em - bm) - 2;
- stream_set_mark(s, bm);
-
- ber_write_sequence_of_tag(s, length);
- stream_set_mark(s, em);
}
/**
int length;
int gcc_CCrq_length = stream_get_length(user_data);
- length = gcc_CCrq_length + 97;
+ length = gcc_CCrq_length + (3* 34) + 13;
/* Connect-Initial (APPLICATION 101, IMPLICIT SEQUENCE) */
ber_write_application_tag(s, MCS_TYPE_CONNECT_INITIAL, length);
ber_write_octet_string(s, user_data->data, gcc_CCrq_length);
}
+int mcs_recv(rdpMcs* mcs)
+{
+ int bytes_read;
+ int size = 2048;
+ char *recv_buffer;
+
+ recv_buffer = xmalloc(size);
+ bytes_read = tls_read(mcs->transport->tls, recv_buffer, size);
+
+ return 0;
+}
+
void mcs_send_connect_initial(rdpMcs* mcs)
{
STREAM* s;
typedef struct
{
- uint32 maxChannelIds;
- uint32 maxUserIds;
- uint32 maxTokenIds;
- uint32 numPriorities;
- uint32 minThroughput;
- uint32 maxHeight;
- uint32 maxMCSPDUsize;
- uint32 protocolVersion;
+ uint16 maxChannelIds;
+ uint16 maxUserIds;
+ uint16 maxTokenIds;
+ uint16 numPriorities;
+ uint16 minThroughput;
+ uint16 maxHeight;
+ uint16 maxMCSPDUsize;
+ uint16 protocolVersion;
} DOMAIN_PARAMETERS;
struct rdp_mcs
void mcs_send_connect_initial(rdpMcs* mcs);
+int mcs_recv(rdpMcs* mcs);
+
rdpMcs* mcs_new(rdpTransport* transport);
void mcs_free(rdpMcs* mcs);
settings->tls_security = 1;
settings->rdp_security = 1;
settings->client_build = 2600;
- settings->kbd_type = 4;
+ settings->kbd_type = 0;
settings->kbd_subtype = 0;
- settings->kbd_fn_keys = 12;
+ settings->kbd_fn_keys = 0;
settings->kbd_layout = 0x409;
settings->encryption = 1;
PERF_DISABLE_WALLPAPER;
settings->uniconv = freerdp_uniconv_new();
- strcpy(settings->client_product_id, "69712-783-0357974-42714");
gethostname(settings->client_hostname, sizeof(settings->client_hostname) - 1);
}