]> git.sesse.net Git - rdpsrv/blobdiff - mcs.c
Fix lengths (mstsc gets further now!)
[rdpsrv] / mcs.c
diff --git a/mcs.c b/mcs.c
index 038886ad0ebd58ec693b11319e3f51caed6f59be..a61b6f5e8f85e40f8e738da858931de7d1e43b3f 100644 (file)
--- a/mcs.c
+++ b/mcs.c
@@ -199,10 +199,10 @@ mcs_send_connect_response()
        STREAM s;
        int i;
 
-       s = iso_init(98);
+       s = iso_init(97);
        printf("INITLEN: %u\n", s->p - s->iso_hdr);
 
-       ber_out_header(s, MCS_CONNECT_RESPONSE, 93);
+       ber_out_header(s, MCS_CONNECT_RESPONSE, 94);
        ber_out_header(s, BER_TAG_RESULT, 1);
        out_uint8(s, 0);
 
@@ -211,7 +211,7 @@ mcs_send_connect_response()
        
        mcs_out_domain_params(s, 34, 2, 0, 0xffff);  // dumdidum?
 
-       ber_out_header(s, BER_TAG_OCTET_STRING, 59);
+       ber_out_header(s, BER_TAG_OCTET_STRING, 58);
 
        // some unknown header of sorts
        out_uint8(s, 0x00);
@@ -224,8 +224,8 @@ mcs_send_connect_response()
        out_uint8(s, 0x2a);
        out_uint8(s, 0x14);
        out_uint8(s, 0x76);
-       out_uint8(s, 0x0a); // length?
-       out_uint8(s, 0x01); // length?
+       out_uint8(s, 0x0a); 
+       out_uint8(s, 0x01);
        out_uint8(s, 0x01);
        out_uint8(s, 0x00);
        out_uint8(s, 0x01);
@@ -236,8 +236,7 @@ mcs_send_connect_response()
        out_uint8(s, 0x44);
        out_uint8(s, 0x6e);
        
-       out_uint8(s, 0x81);  // one byte length
-       out_uint8(s, 0x04);  // unknown
+       out_uint8(s, 36);  // one byte length
 
        // server info -- we claim to support RDP5
        out_uint16_le(s, SEC_TAG_SRV_INFO);
@@ -259,7 +258,7 @@ mcs_send_connect_response()
        out_uint16_le(s, SEC_TAG_SRV_CRYPT);
        out_uint16_le(s, 12); // length
        out_uint32_le(s, 1); // 40-bit
-       out_uint32_le(s, 0); // no encryption
+       out_uint32_le(s, 0); // no encryption 
        
        s_mark_end(s);
        printf("LEN: %u\n", s->p - s->iso_hdr);
@@ -412,6 +411,7 @@ mcs_recv(uint16 * channel)
 
                return s;
        case MCS_DPUM:
+               printf("Received DPUM (?)\n");
                return NULL;
        case MCS_EDRQ:
                // Erect Domain (ignore)