ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

static void sec_out_mcs_data ( STREAM  s) [static]

Definition at line 465 of file secure.c.

Referenced by sec_connect(), and sec_reconnect().

{
    int hostlen = 2 * strlen(g_hostname);
    int length = 158 + 76 + 12 + 4;
    unsigned int i;

    if (g_num_channels > 0)
        length += g_num_channels * 12 + 8;

    if (hostlen > 30)
        hostlen = 30;

    /* Generic Conference Control (T.124) ConferenceCreateRequest */
    out_uint16_be(s, 5);
    out_uint16_be(s, 0x14);
    out_uint8(s, 0x7c);
    out_uint16_be(s, 1);

    out_uint16_be(s, (length | 0x8000));    /* remaining length */

    out_uint16_be(s, 8);    /* length? */
    out_uint16_be(s, 16);
    out_uint8(s, 0);
    out_uint16_le(s, 0xc001);
    out_uint8(s, 0);

    out_uint32_le(s, 0x61637544);   /* OEM ID: "Duca", as in Ducati. */
    out_uint16_be(s, ((length - 14) | 0x8000)); /* remaining length */

    /* Client information */
    out_uint16_le(s, SEC_TAG_CLI_INFO);
    out_uint16_le(s, 212);  /* length */
    out_uint16_le(s, g_use_rdp5 ? 4 : 1);   /* RDP version. 1 == RDP4, 4 == RDP5. */
    out_uint16_le(s, 8);
    out_uint16_le(s, g_width);
    out_uint16_le(s, g_height);
    out_uint16_le(s, 0xca01);
    out_uint16_le(s, 0xaa03);
    out_uint32_le(s, g_keylayout);
    out_uint32_le(s, 2600); /* Client build. We are now 2600 compatible :-) */

    /* Unicode name of client, padded to 32 bytes */
    rdp_out_unistr(s, g_hostname, hostlen);
    out_uint8s(s, 30 - hostlen);

    /* See
       http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceddk40/html/cxtsksupportingremotedesktopprotocol.asp */
    out_uint32_le(s, g_keyboard_type);
    out_uint32_le(s, g_keyboard_subtype);
    out_uint32_le(s, g_keyboard_functionkeys);
    out_uint8s(s, 64);  /* reserved? 4 + 12 doublewords */
    out_uint16_le(s, 0xca01);   /* colour depth? */
    out_uint16_le(s, 1);

    out_uint32(s, 0);
    out_uint8(s, g_server_depth);
    out_uint16_le(s, 0x0700);
    out_uint8(s, 0);
    out_uint32_le(s, 1);
    out_uint8s(s, 64);  /* End of client info */

    out_uint16_le(s, SEC_TAG_CLI_4);
    out_uint16_le(s, 12);
    out_uint32_le(s, g_console_session ? 0xb : 9);
    out_uint32(s, 0);

    /* Client encryption settings */
    out_uint16_le(s, SEC_TAG_CLI_CRYPT);
    out_uint16_le(s, 12);   /* length */
    out_uint32_le(s, g_encryption ? 0x3 : 0);   /* encryption supported, 128-bit supported */
    out_uint32(s, 0);   /* Unknown */

    DEBUG_RDP5(("g_num_channels is %d\n", g_num_channels));
    if (g_num_channels > 0)
    {
        out_uint16_le(s, SEC_TAG_CLI_CHANNELS);
        out_uint16_le(s, g_num_channels * 12 + 8);  /* length */
        out_uint32_le(s, g_num_channels);   /* number of virtual channels */
        for (i = 0; i < g_num_channels; i++)
        {
            DEBUG_RDP5(("Requesting channel %s\n", g_channels[i].name));
            out_uint8a(s, g_channels[i].name, 8);
            out_uint32_be(s, g_channels[i].flags);
        }
    }

    s_mark_end(s);
}

Generated on Fri May 25 2012 04:40:38 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.