diff options
Diffstat (limited to 'src/windows/leash/Krb4EditRealmHostList.cpp')
| -rw-r--r-- | src/windows/leash/Krb4EditRealmHostList.cpp | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/src/windows/leash/Krb4EditRealmHostList.cpp b/src/windows/leash/Krb4EditRealmHostList.cpp new file mode 100644 index 0000000000..840f6262e0 --- /dev/null +++ b/src/windows/leash/Krb4EditRealmHostList.cpp @@ -0,0 +1,193 @@ +// ************************************************************************************** +// File: Krb4EditRealmHostList.cpp +// By: Arthur David Leather +// Created: 12/02/98 +// Copyright @1998 Massachusetts Institute of Technology - All rights reserved. +// Description: CPP file for Krb4EditRealmHostList.h. Contains variables and functions +// for Kerberos Four Properties +// +// History: +// +// MM/DD/YY Inits Description of Change +// 12/02/98 ADL Original +// ************************************************************************************** + + +#include "stdafx.h" +#include "leash.h" +#include "Krb4Properties.h" +#include "Krb4EditRealmHostList.h" +#include "lglobals.h" + +#ifdef _DEBUG +#define new DEBUG_NEW +#undef THIS_FILE +static char THIS_FILE[] = __FILE__; +#endif + +///////////////////////////////////////////////////////////////////////////// +// CKrb4EditRealmHostList dialog + +CKrb4EditRealmHostList::CKrb4EditRealmHostList(LPSTR editItem, CWnd* pParent) + : CDialog(CKrb4EditRealmHostList::IDD, pParent) +{ + m_startup = TRUE; + m_editItem = _T(""); + +/* + // Parse the passed in item + LPSTR pEditItem = editItem; + LPSTR findSpace = strchr(editItem, ' '); + if (findSpace) + *findSpace = 0; + else + { + LeashErrorBox("This is a defective entry in file", + CKrb4ConfigFileLocation::m_krbFile); + ASSERT(0); + m_initRealm = m_newRealm = editItem; + m_initHost = m_newHost = _T(""); + } + + m_initRealm = m_newRealm = editItem; // first token + + pEditItem = strchr(editItem, '\0'); + if (pEditItem) + { + pEditItem++; + findSpace++; + } + else + ASSERT(0); + + findSpace = strchr(pEditItem, ' '); + if (findSpace) + { + *findSpace = 0; + } + else + { + m_initAdmin = m_newAdmin = FALSE; + m_initHost = m_newHost = pEditItem; // second token + return; + } + + m_initHost = m_newHost = pEditItem; // second token + + findSpace++; + pEditItem = findSpace; + if (pEditItem) + { + if (strstr(pEditItem, "admin server")) + m_initAdmin = m_newAdmin = TRUE; + //else + //; It must be something else??? :( + } + else + ASSERT(0); +*/ + //{{AFX_DATA_INIT(CKrb4EditRealmHostList) + // NOTE: the ClassWizard will add member initialization here + //}}AFX_DATA_INIT +} + +void CKrb4EditRealmHostList::DoDataExchange(CDataExchange* pDX) +{ + CDialog::DoDataExchange(pDX); + //{{AFX_DATA_MAP(CKrb4EditRealmHostList) + // NOTE: the ClassWizard will add DDX and DDV calls here + //}}AFX_DATA_MAP +} + + +BEGIN_MESSAGE_MAP(CKrb4EditRealmHostList, CDialog) + //{{AFX_MSG_MAP(CKrb4EditRealmHostList) + ON_WM_SHOWWINDOW() + ON_EN_CHANGE(IDC_EDIT_DEFAULT_REALM, OnChangeEditDefaultRealm) + ON_EN_CHANGE(IDC_EDIT_REALM_HOSTNAME, OnChangeEditRealmHostname) + ON_BN_CLICKED(IDC_RADIO_ADMIN_SERVER, OnRadioAdminServer) + ON_BN_CLICKED(IDC_RADIO_NO_ADMIN_SERVER, OnRadioNoAdminServer) + //}}AFX_MSG_MAP +END_MESSAGE_MAP() + +///////////////////////////////////////////////////////////////////////////// +// CKrb4EditRealmHostList message handlers + +BOOL CKrb4EditRealmHostList::OnInitDialog() +{ + CDialog::OnInitDialog(); + + SetDlgItemText(IDC_EDIT_DEFAULT_REALM, m_newRealm); + SetDlgItemText(IDC_EDIT_REALM_HOSTNAME, m_newHost); + + if (m_initAdmin) + { // has Admin Server + CheckRadioButton(IDC_RADIO_ADMIN_SERVER, IDC_RADIO_NO_ADMIN_SERVER, IDC_RADIO_ADMIN_SERVER); + } + else + { // no Admin Server + CheckRadioButton(IDC_RADIO_ADMIN_SERVER, IDC_RADIO_NO_ADMIN_SERVER, IDC_RADIO_NO_ADMIN_SERVER); + } + + //GetDlgItem(IDC_EDIT_DEFAULT_REALM)->EnableWindow(); + //GetDlgItem(IDC_EDIT_DEFAULT_REALM)->SetFocus(); + + return TRUE; +} + +void CKrb4EditRealmHostList::OnShowWindow(BOOL bShow, UINT nStatus) +{ + CDialog::OnShowWindow(bShow, nStatus); + m_startup = FALSE; +} + +void CKrb4EditRealmHostList::OnChangeEditDefaultRealm() +{ + if (!m_startup) + GetDlgItemText(IDC_EDIT_DEFAULT_REALM, m_newRealm); +} + +void CKrb4EditRealmHostList::OnChangeEditRealmHostname() +{ + if (!m_startup) + GetDlgItemText(IDC_EDIT_REALM_HOSTNAME, m_newHost); +} + +void CKrb4EditRealmHostList::OnRadioAdminServer() +{ + m_newAdmin = TRUE; +} + +void CKrb4EditRealmHostList::OnRadioNoAdminServer() +{ + m_newAdmin = FALSE; +} + +void CKrb4EditRealmHostList::OnOK() +{ + m_newRealm.TrimLeft(); + m_newRealm.TrimRight(); + m_newHost.TrimLeft(); + m_newHost.TrimRight(); + + if (m_newRealm.IsEmpty() || m_newHost.IsEmpty()) + { // stay + MessageBox("OnOK::Both Realm and Host fields must be filled in!", + "Leash", MB_OK); + } + else if (-1 != m_newRealm.Find(' ') || -1 != m_newHost.Find(' ')) + { // stay + MessageBox("OnOK::Illegal space found!", "Leash", MB_OK); + } + + else + CDialog::OnOK(); // exit + + m_editItem = m_newRealm + " " + m_newHost; + + if (m_newAdmin) + { + m_editItem += " "; + m_editItem += ADMIN_SERVER; + } +} |
