BOOL MakeDate3(time_t* t, uni_char* buf, size_t buf_len) { time_t loc_time = *t; struct tm* gmt_time = op_gmtime(&loc_time); if(!gmt_time) return FALSE; return FMakeDate(*gmt_time, "\247w, \247D \247n \247Y \247h:\247m:\247s UTC", buf, buf_len); }
int GetThisYear(unsigned int *month) { // look a day ahead if (g_thistime != g_timecache->CurrentTime()) { g_thistime = g_timecache->CurrentTime(); struct tm* gmt_time = op_gmtime(&g_thistime); g_thisyear = gmt_time ? gmt_time->tm_year + 1900 : 1970; g_thismonth = gmt_time ? gmt_time->tm_mon+1 : 1; } if(month) *month = g_thismonth; return g_thisyear; }
HX_DATETIME HX_GET_DATETIME(void) { op_tm tm; time_t t = op_time(); HX_DATETIME dt; // XXXSAB - localtime? op_gmtime(t, &tm); dt.second = tm.tm_sec; dt.minute = tm.tm_min; dt.hour = tm.tm_hour; dt.dayofweek = tm.tm_wday; dt.dayofmonth = tm.tm_mday; dt.dayofyear = tm.tm_yday; dt.month = tm.tm_mon + 1; // 0 based (11 = December) dt.year = tm.tm_year; dt.gmtDelta = 0; // or something return dt; }
void CertificateManagerDialog::AddImportedCert(CertImportExportCallback::Mode mode) { OpString tmp_string; int i = 0; switch (mode) { case CertImportExportCallback::IMPORT_PERSONAL_CERT_MODE: { m_personal_certs_model.DeleteAll(); while (m_personal_cert_context->GetCertificateShortName(tmp_string, i)) { m_personal_certs_model.AddItem(tmp_string.CStr()); m_personal_cert_context->GetIssuerShortName(tmp_string, i); m_personal_certs_model.SetItemData(i, 1, tmp_string.CStr()); i++; } } break; case CertImportExportCallback::IMPORT_AUTHORITIES_CERT_MODE: { m_authorities_certs_model.DeleteAll(); while (m_site_cert_context->GetCertificateShortName(tmp_string, i++)) m_authorities_certs_model.AddItem(tmp_string.CStr()); } break; case CertImportExportCallback::IMPORT_INTERMEDIATE_CERT_MODE: { m_intermediate_certs_model.DeleteAll(); while (m_intermediate_cert_context->GetCertificateShortName(tmp_string, i++)) m_intermediate_certs_model.AddItem(tmp_string.CStr()); } break; case CertImportExportCallback::IMPORT_REMEMBERED_CERT_MODE: { m_remembered_certs_model.DeleteAll(); while (m_remembered_cert_context->GetCertificateShortName(tmp_string, i)) { // Format of the string "server:port certname" // Sanity check: int colon = tmp_string.FindFirstOf((uni_char)':'); int space = tmp_string.FindFirstOf((uni_char)' '); if(colon == KNotFound || space == KNotFound || space < colon) continue; // Get the server OpString server; server.Set(tmp_string.CStr(), colon); // Get the port OpString port; port.Set(tmp_string.SubString(colon+1).CStr(), space-colon); // Get the certificate name OpString cert_name; cert_name.Set(tmp_string.SubString(space)); // Get the expiration time - currently not supported from core #323251 OpString time; GetExpiredTimeString(m_remembered_cert_context, i, time); m_remembered_certs_model.AddItem(cert_name.CStr()); m_remembered_certs_model.SetItemData(i, 1, server.CStr()); m_remembered_certs_model.SetItemData(i, 2, port.CStr()); // m_remembered_certs_model.SetItemData(i, 3, time); // See above i++; } } break; case CertImportExportCallback::IMPORT_REMEMBERED_REFUSED_CERT_MODE: { m_remembered_refused_certs_model.DeleteAll(); while (m_remembered_refused_cert_context->GetCertificateShortName(tmp_string, i)) { int space = tmp_string.FindFirstOf((uni_char)' '); OpString cert_name, server; if (space != KNotFound) { cert_name.Set(tmp_string.CStr(), space); server.Set(tmp_string.SubString(space)); } else { cert_name.Set(tmp_string); server.Empty(); } m_remembered_refused_certs_model.AddItem(cert_name.CStr()); m_remembered_refused_certs_model.SetItemData(i, 1, server.CStr()); time_t trusted_until = m_remembered_refused_cert_context->GetTrustedUntil(i); if (trusted_until > 0) // 0 signals error { OpString time_buf; time_buf.Reserve(64); tm* gmt_trusted_until = op_gmtime(&trusted_until); g_oplocale->op_strftime(time_buf.CStr(), time_buf.Length(), UNI_L("%x"), gmt_trusted_until); m_remembered_refused_certs_model.SetItemData(i, 2, time_buf.CStr()); } i++; } } break; } // Even though the import may take time the current implementation // only supports importing one at a time, so the buttons are disabled // while importing, now the import is done and it is safe to enable them // again. EnableDisableImportExportButtons(TRUE); }