176 |
{ |
{ |
177 |
out_uint16_le(s, len_password); |
out_uint16_le(s, len_password); |
178 |
} |
} |
179 |
out_uint16_le(s, 0); /* Seems to be length of a 512 byte blob with |
out_uint16(s, 0); /* Seems to be length of a 512 byte blob with |
180 |
completely unknown data, but hopefully we'll do |
completely unknown data, but hopefully we'll do |
181 |
with a 0 length block as well */ |
with a 0 length block as well */ |
182 |
out_uint16_le(s, len_program); |
out_uint16_le(s, len_program); |
187 |
} |
} |
188 |
rdp_out_unistr(s, domain, len_domain); |
rdp_out_unistr(s, domain, len_domain); |
189 |
rdp_out_unistr(s, user, len_user); |
rdp_out_unistr(s, user, len_user); |
190 |
out_uint16_le(s, 0); |
out_uint16(s, 0); |
191 |
out_uint16_le(s, 0); |
out_uint16(s, 0); |
192 |
if (0 < len_program) |
if (0 < len_program) |
193 |
rdp_out_unistr(s, program, len_program); |
rdp_out_unistr(s, program, len_program); |
194 |
if (0 < len_directory) |
if (0 < len_directory) |
204 |
out_uint32_le(s, 0x0a0000); |
out_uint32_le(s, 0x0a0000); |
205 |
out_uint32_le(s, 0x050000); |
out_uint32_le(s, 0x050000); |
206 |
out_uint32_le(s, 2); |
out_uint32_le(s, 2); |
207 |
out_uint32_le(s, 0); |
out_uint32(s, 0); |
208 |
out_uint32_le(s, 0xffffffc4); |
out_uint32_le(s, 0xffffffc4); |
209 |
out_uint32_le(s, 0xfffffffe); |
out_uint32_le(s, 0xfffffffe); |
210 |
out_uint32_le(s, 0x0f); |
out_uint32_le(s, 0x0f); |
211 |
out_uint32_le(s, 0); |
out_uint32(s, 0); |
212 |
|
|
213 |
rdp_out_unistr(s, "GTB, sommartid", 2 * strlen("GTB, sommartid") - 1); |
rdp_out_unistr(s, "GTB, sommartid", 2 * strlen("GTB, sommartid") - 1); |
214 |
out_uint8s(s, 30 - 2 * strlen("GTP, sommartid")); |
out_uint8s(s, 30 - 2 * strlen("GTP, sommartid")); |
216 |
out_uint32_le(s, 0x030000); |
out_uint32_le(s, 0x030000); |
217 |
out_uint32_le(s, 0x050000); |
out_uint32_le(s, 0x050000); |
218 |
out_uint32_le(s, 2); |
out_uint32_le(s, 2); |
219 |
out_uint32_le(s, 0); |
out_uint32(s, 0); |
220 |
out_uint32_le(s, 0xffffffc4); |
out_uint32_le(s, 0xffffffc4); |
221 |
out_uint32_le(s, 0xfffffffe); |
out_uint32_le(s, 0xfffffffe); |
222 |
out_uint32_le(s, 0x0f); |
out_uint32_le(s, 0x0f); |
223 |
out_uint32_le(s, 0); |
out_uint32(s, 0); |
224 |
|
|
225 |
} |
} |
226 |
s_mark_end(s); |
s_mark_end(s); |
308 |
out_uint16_le(s, 0x200); /* Protocol version */ |
out_uint16_le(s, 0x200); /* Protocol version */ |
309 |
out_uint16(s, 0); /* Pad */ |
out_uint16(s, 0); /* Pad */ |
310 |
out_uint16(s, 0); /* Compression types */ |
out_uint16(s, 0); /* Compression types */ |
311 |
out_uint16(s, use_rdp5 ? 0x40d : 0); |
out_uint16_le(s, use_rdp5 ? 0x40d : 0); |
312 |
/* Pad, according to T.128. 0x40d seems to |
/* Pad, according to T.128. 0x40d seems to |
313 |
trigger |
trigger |
314 |
the server to start sending RDP5 packets. |
the server to start sending RDP5 packets. |