161 |
#ifdef HAVE_ICONV |
#ifdef HAVE_ICONV |
162 |
size_t ibl = strlen(string), obl = len + 2; |
size_t ibl = strlen(string), obl = len + 2; |
163 |
static iconv_t iconv_h = (iconv_t) - 1; |
static iconv_t iconv_h = (iconv_t) - 1; |
164 |
char *pin = string, *pout = (char *)s->p; |
char *pin = string, *pout = (char *) s->p; |
165 |
|
|
166 |
memset(pout, 0, len + 4); |
memset(pout, 0, len + 4); |
167 |
|
|
234 |
{ |
{ |
235 |
#ifdef HAVE_ICONV |
#ifdef HAVE_ICONV |
236 |
size_t ibl = uni_len, obl = uni_len; |
size_t ibl = uni_len, obl = uni_len; |
237 |
char *pin = (char *)s->p, *pout = string; |
char *pin = (char *) s->p, *pout = string; |
238 |
static iconv_t iconv_h = (iconv_t) - 1; |
static iconv_t iconv_h = (iconv_t) - 1; |
239 |
|
|
240 |
if (g_iconv_works) |
if (g_iconv_works) |
297 |
time_t t = time(NULL); |
time_t t = time(NULL); |
298 |
time_t tzone; |
time_t tzone; |
299 |
|
|
|
#if 0 |
|
|
/* enable rdp compression */ |
|
|
/* some problems still exist with rdp5 */ |
|
|
flags |= RDP_COMPRESSION; |
|
|
#endif |
|
|
|
|
300 |
if (!g_use_rdp5 || 1 == g_server_rdp_version) |
if (!g_use_rdp5 || 1 == g_server_rdp_version) |
301 |
{ |
{ |
302 |
DEBUG_RDP5(("Sending RDP4-style Logon packet\n")); |
DEBUG_RDP5(("Sending RDP4-style Logon packet\n")); |
481 |
rdp_send_data(s, RDP_DATA_PDU_INPUT); |
rdp_send_data(s, RDP_DATA_PDU_INPUT); |
482 |
} |
} |
483 |
|
|
484 |
/* Inform the server on the contents of the persistent bitmap cache */ |
/* Send a client window information PDU */ |
485 |
|
void |
486 |
|
rdp_send_client_window_status(int status) |
487 |
|
{ |
488 |
|
STREAM s; |
489 |
|
static int current_status = 1; |
490 |
|
|
491 |
|
if (current_status == status) |
492 |
|
return; |
493 |
|
|
494 |
|
s = rdp_init_data(12); |
495 |
|
|
496 |
|
out_uint32_le(s, status); |
497 |
|
|
498 |
|
switch (status) |
499 |
|
{ |
500 |
|
case 0: /* shut the server up */ |
501 |
|
break; |
502 |
|
|
503 |
|
case 1: /* receive data again */ |
504 |
|
out_uint32_le(s, 0); /* unknown */ |
505 |
|
out_uint16_le(s, g_width); |
506 |
|
out_uint16_le(s, g_height); |
507 |
|
break; |
508 |
|
} |
509 |
|
|
510 |
|
s_mark_end(s); |
511 |
|
rdp_send_data(s, RDP_DATA_PDU_CLIENT_WINDOW_STATUS); |
512 |
|
current_status = status; |
513 |
|
} |
514 |
|
|
515 |
|
/* Send persistent bitmap cache enumeration PDU's */ |
516 |
static void |
static void |
517 |
rdp_enum_bmpcache2(void) |
rdp_enum_bmpcache2(void) |
518 |
{ |
{ |
689 |
|
|
690 |
out_uint16_le(s, g_bitmap_cache_persist_enable ? 2 : 0); /* version */ |
out_uint16_le(s, g_bitmap_cache_persist_enable ? 2 : 0); /* version */ |
691 |
|
|
692 |
out_uint16_le(s, 0x0300); /* flags? number of caches? */ |
out_uint16_be(s, 3); /* number of caches in this set */ |
693 |
|
|
694 |
|
/* max cell size for cache 0 is 16x16, 1 = 32x32, 2 = 64x64, etc */ |
695 |
out_uint32_le(s, BMPCACHE2_C0_CELLS); |
out_uint32_le(s, BMPCACHE2_C0_CELLS); |
696 |
out_uint32_le(s, BMPCACHE2_C1_CELLS); |
out_uint32_le(s, BMPCACHE2_C1_CELLS); |
697 |
if (pstcache_init(2)) |
if (pstcache_init(2)) |
897 |
} |
} |
898 |
|
|
899 |
/* Process server capabilities */ |
/* Process server capabilities */ |
900 |
void |
static void |
901 |
rdp_process_server_caps(STREAM s, uint16 length) |
rdp_process_server_caps(STREAM s, uint16 length) |
902 |
{ |
{ |
903 |
int n; |
int n; |