BOOL rdp_read_client_time_zone(STREAM* s, rdpSettings* settings) { char* str; TIME_ZONE_INFO* clientTimeZone; if (stream_get_left(s) < 172) return FALSE; clientTimeZone = settings->ClientTimeZone; stream_read_UINT32(s, clientTimeZone->bias); /* Bias */ /* standardName (64 bytes) */ ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), 64 / 2, &str, 0, NULL, NULL); stream_seek(s, 64); strncpy(clientTimeZone->standardName, str, sizeof(clientTimeZone->standardName)); free(str); rdp_read_system_time(s, &clientTimeZone->standardDate); /* StandardDate */ stream_read_UINT32(s, clientTimeZone->standardBias); /* StandardBias */ /* daylightName (64 bytes) */ ConvertFromUnicode(CP_UTF8, 0, (WCHAR*) stream_get_tail(s), 64 / 2, &str, 0, NULL, NULL); stream_seek(s, 64); strncpy(clientTimeZone->daylightName, str, sizeof(clientTimeZone->daylightName)); free(str); rdp_read_system_time(s, &clientTimeZone->daylightDate); /* DaylightDate */ stream_read_UINT32(s, clientTimeZone->daylightBias); /* DaylightBias */ return TRUE; }
boolean rdp_read_client_time_zone(STREAM* s, rdpSettings* settings) { char* str; TIME_ZONE_INFO* clientTimeZone; if (stream_get_left(s) < 172) return false; clientTimeZone = settings->client_time_zone; stream_read_uint32(s, clientTimeZone->bias); /* Bias */ /* standardName (64 bytes) */ str = freerdp_uniconv_in(settings->uniconv, stream_get_tail(s), 64); stream_seek(s, 64); strncpy(clientTimeZone->standardName, str, sizeof(clientTimeZone->standardName)); xfree(str); rdp_read_system_time(s, &clientTimeZone->standardDate); /* StandardDate */ stream_read_uint32(s, clientTimeZone->standardBias); /* StandardBias */ /* daylightName (64 bytes) */ str = freerdp_uniconv_in(settings->uniconv, stream_get_tail(s), 64); stream_seek(s, 64); strncpy(clientTimeZone->daylightName, str, sizeof(clientTimeZone->daylightName)); xfree(str); rdp_read_system_time(s, &clientTimeZone->daylightDate); /* DaylightDate */ stream_read_uint32(s, clientTimeZone->daylightBias); /* DaylightBias */ return true; }
BOOL rdp_read_client_time_zone(wStream* s, rdpSettings* settings) { LPTIME_ZONE_INFORMATION tz; if (!s || !settings) return FALSE; if (Stream_GetRemainingLength(s) < 172) return FALSE; tz = settings->ClientTimeZone; if (!tz) return FALSE; Stream_Read_UINT32(s, tz->Bias); /* Bias */ /* standardName (64 bytes) */ Stream_Read(s, tz->StandardName, sizeof(tz->StandardName)); rdp_read_system_time(s, &tz->StandardDate); /* StandardDate */ Stream_Read_UINT32(s, tz->StandardBias); /* StandardBias */ /* daylightName (64 bytes) */ Stream_Read(s, tz->DaylightName, sizeof(tz->DaylightName)); rdp_read_system_time(s, &tz->DaylightDate); /* DaylightDate */ Stream_Read_UINT32(s, tz->DaylightBias); /* DaylightBias */ return TRUE; }