mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
182 lines
3.4 KiB
182 lines
3.4 KiB
// Copyright (C) 1997 Microsoft Corporation
|
|
//
|
|
// dns client configuration page
|
|
//
|
|
// 12-22-97 sburns
|
|
|
|
|
|
|
|
#include "headers.hxx"
|
|
#include "page.hpp"
|
|
#include "ConfigureDnsClientPage.hpp"
|
|
#include "resource.h"
|
|
#include "state.hpp"
|
|
#include "common.hpp"
|
|
|
|
|
|
|
|
ConfigureDnsClientPage::ConfigureDnsClientPage()
|
|
:
|
|
DCPromoWizardPage(
|
|
IDD_CONFIG_DNS_CLIENT,
|
|
IDS_CONFIG_DNS_CLIENT_PAGE_TITLE,
|
|
IDS_CONFIG_DNS_CLIENT_PAGE_SUBTITLE)
|
|
{
|
|
LOG_CTOR(ConfigureDnsClientPage);
|
|
}
|
|
|
|
|
|
|
|
ConfigureDnsClientPage::~ConfigureDnsClientPage()
|
|
{
|
|
LOG_DTOR(ConfigureDnsClientPage);
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
ConfigureDnsClientPage::OnCommand(
|
|
HWND /* windowFrom */ ,
|
|
unsigned controlIDFrom,
|
|
unsigned code)
|
|
{
|
|
// LOG_FUNCTION(ConfigureDnsClientPage::OnCommand);
|
|
|
|
if (controlIDFrom == IDC_JUMP)
|
|
{
|
|
if (code == BN_CLICKED)
|
|
{
|
|
ShowTroubleshooter(hwnd, IDS_CONFIG_DNS_HELP_TOPIC);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
|
|
|
|
void
|
|
ConfigureDnsClientPage::OnInit()
|
|
{
|
|
LOG_FUNCTION(ConfigureDnsClientPage::OnInit);
|
|
}
|
|
|
|
|
|
|
|
bool
|
|
ConfigureDnsClientPage::OnSetActive()
|
|
{
|
|
LOG_FUNCTION(ConfigureDnsClientPage::OnSetActive);
|
|
|
|
State& state = State::GetInstance();
|
|
if (state.RunHiddenUnattended() || Dns::IsClientConfigured())
|
|
{
|
|
LOG(L"planning to Skip Configure DNS Client page");
|
|
|
|
Wizard& wiz = GetWizard();
|
|
|
|
if (wiz.IsBacktracking())
|
|
{
|
|
// backup once again
|
|
wiz.Backtrack(hwnd);
|
|
return true;
|
|
}
|
|
|
|
int nextPage = ConfigureDnsClientPage::Validate();
|
|
if (nextPage != -1)
|
|
{
|
|
LOG(L"skipping DNS Client Page");
|
|
wiz.SetNextPageID(hwnd, nextPage);
|
|
return true;
|
|
}
|
|
|
|
state.ClearHiddenWhileUnattended();
|
|
}
|
|
|
|
Win::PropSheet_SetWizButtons(
|
|
Win::GetParent(hwnd),
|
|
PSWIZB_BACK | PSWIZB_NEXT);
|
|
|
|
return true;
|
|
}
|
|
|
|
|
|
|
|
int
|
|
ConfigureDnsClientPage::Validate()
|
|
{
|
|
LOG_FUNCTION(ConfigureDnsClientPage::Validate);
|
|
|
|
int nextPage = -1;
|
|
|
|
if (Dns::IsClientConfigured())
|
|
{
|
|
State& state = State::GetInstance();
|
|
if (state.GetRunContext() == State::BDC_UPGRADE)
|
|
{
|
|
ASSERT(state.GetOperation() == State::REPLICA);
|
|
|
|
// Get the DNS name of the domain. If it is empty, then the domain is
|
|
// not NT5 DS yet.
|
|
|
|
// this will search for the domain if necessary.
|
|
|
|
String dnsDomainName = state.GetComputer().GetDomainDnsName();
|
|
if (dnsDomainName.empty())
|
|
{
|
|
String message = String::load(IDS_CONVERT_PDC_FIRST);
|
|
|
|
LOG(message);
|
|
|
|
popup.Info(hwnd, message);
|
|
nextPage = IDD_REPLICA_OR_MEMBER;
|
|
}
|
|
else
|
|
{
|
|
state.SetReplicaDomainDNSName(dnsDomainName);
|
|
nextPage = IDD_GET_CREDENTIALS;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (state.GetOperation())
|
|
{
|
|
case State::FOREST:
|
|
case State::TREE:
|
|
case State::CHILD:
|
|
case State::REPLICA:
|
|
{
|
|
nextPage = IDD_GET_CREDENTIALS;
|
|
break;
|
|
}
|
|
case State::ABORT_BDC_UPGRADE:
|
|
case State::DEMOTE:
|
|
case State::NONE:
|
|
default:
|
|
{
|
|
ASSERT(false);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
String message = String::load(IDS_CONFIG_DNS_FIRST);
|
|
|
|
popup.Info(hwnd, message);
|
|
}
|
|
|
|
return nextPage;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|