132 |
s->p += len; |
s->p += len; |
133 |
} |
} |
134 |
|
|
135 |
|
/* Input a string in Unicode |
136 |
|
* |
137 |
|
* Returns str_len of string |
138 |
|
*/ |
139 |
|
int |
140 |
|
rdp_in_unistr(STREAM s, char *string, int uni_len) |
141 |
|
{ |
142 |
|
int i = 0; |
143 |
|
|
144 |
|
while (i < uni_len / 2) |
145 |
|
{ |
146 |
|
in_uint8a(s, &string[i++], 1); |
147 |
|
in_uint8s(s, 1); |
148 |
|
} |
149 |
|
|
150 |
|
return i - 1; |
151 |
|
} |
152 |
|
|
153 |
|
|
154 |
/* Parse a logon info packet */ |
/* Parse a logon info packet */ |
155 |
static void |
static void |
156 |
rdp_send_logon_info(uint32 flags, char *domain, char *user, |
rdp_send_logon_info(uint32 flags, char *domain, char *user, |
270 |
out_uint16_le(s, len_dll + 2); |
out_uint16_le(s, len_dll + 2); |
271 |
rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll); |
rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll); |
272 |
|
|
273 |
tzone = (mktime(localtime(&t)) - mktime(gmtime(&t))) / 60; |
tzone = (mktime(gmtime(&t)) - mktime(localtime(&t))) / 60; |
274 |
out_uint16_le(s, tzone); |
out_uint32_le(s, tzone); |
|
out_uint16_le(s, 0x0000); |
|
275 |
|
|
276 |
rdp_out_unistr(s, "GTB, normaltid", 2 * strlen("GTB, normaltid")); |
rdp_out_unistr(s, "GTB, normaltid", 2 * strlen("GTB, normaltid")); |
277 |
out_uint8s(s, 62 - 2 * strlen("GTB, normaltid")); |
out_uint8s(s, 62 - 2 * strlen("GTB, normaltid")); |