From 3072aaa22641784b8a953e26afa0e570f74ba6bf Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sun, 13 Sep 2020 17:16:13 -0700 Subject: [PATCH] Add the HSTS Support checkbox so the Web server config TLS tab --- src/sbbs3/ctrl/WebCfgDlgUnit.cpp | 9 +++++++++ src/sbbs3/ctrl/WebCfgDlgUnit.dfm | 15 +++++++++++++-- src/sbbs3/ctrl/WebCfgDlgUnit.h | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/sbbs3/ctrl/WebCfgDlgUnit.cpp b/src/sbbs3/ctrl/WebCfgDlgUnit.cpp index 708a3700db..b6dc232e1f 100644 --- a/src/sbbs3/ctrl/WebCfgDlgUnit.cpp +++ b/src/sbbs3/ctrl/WebCfgDlgUnit.cpp @@ -82,6 +82,10 @@ void __fastcall TWebCfgDlg::FormShow(TObject *Sender) TlsEnableCheckBox->Checked = true; else TlsEnableCheckBox->Checked = false; + if(MainForm->web_startup.options&WEB_OPT_HSTS_SAFE) + HSTSEnableCheckBox->Checked = true; + else + HSTSEnableCheckBox->Checked = false; AuthTypesEdit->Text = AnsiString(MainForm->web_startup.default_auth_list); HtmlRootEdit->Text=AnsiString(MainForm->web_startup.root_dir); @@ -135,6 +139,10 @@ void __fastcall TWebCfgDlg::OKBtnClick(TObject *Sender) MainForm->web_startup.options |= WEB_OPT_ALLOW_TLS; else MainForm->web_startup.options &= ~WEB_OPT_ALLOW_TLS; + if(HSTSEnableCheckBox->Checked) + MainForm->web_startup.options |= WEB_OPT_HSTS_SAFE; + else + MainForm->web_startup.options &= ~WEB_OPT_HSTS_SAFE; SAFECOPY(MainForm->web_startup.default_auth_list ,AuthTypesEdit->Text.c_str()); @@ -281,6 +289,7 @@ void __fastcall TWebCfgDlg::TlsEnableCheckBoxClick(TObject *Sender) TlsInterfaceLabel->Enabled = enabled; TlsPortEdit->Enabled = enabled; TlsPortLabel->Enabled = enabled; + HSTSEnableCheckBox->Enabled = enabled; } //--------------------------------------------------------------------------- diff --git a/src/sbbs3/ctrl/WebCfgDlgUnit.dfm b/src/sbbs3/ctrl/WebCfgDlgUnit.dfm index d2c6743199..2f1cac2676 100644 --- a/src/sbbs3/ctrl/WebCfgDlgUnit.dfm +++ b/src/sbbs3/ctrl/WebCfgDlgUnit.dfm @@ -25,8 +25,8 @@ object WebCfgDlg: TWebCfgDlg Top = 3 Width = 278 Height = 199 - ActivePage = HttpTabSheet - TabIndex = 2 + ActivePage = TlsTabSheet + TabIndex = 1 TabOrder = 0 object GeneralTabSheet: TTabSheet Caption = 'General' @@ -200,6 +200,17 @@ object WebCfgDlg: TWebCfgDlg ShowHint = True TabOrder = 2 end + object HSTSEnableCheckBox: TCheckBox + Left = 148 + Top = 10 + Width = 119 + Height = 20 + Hint = 'HTTP Strict Transport Security' + Caption = 'HSTS Support' + ParentShowHint = False + ShowHint = True + TabOrder = 3 + end end object HttpTabSheet: TTabSheet Caption = 'HTTP' diff --git a/src/sbbs3/ctrl/WebCfgDlgUnit.h b/src/sbbs3/ctrl/WebCfgDlgUnit.h index c0979f9a2d..1b4083111d 100644 --- a/src/sbbs3/ctrl/WebCfgDlgUnit.h +++ b/src/sbbs3/ctrl/WebCfgDlgUnit.h @@ -108,6 +108,7 @@ __published: // IDE-managed Components TEdit *TlsPortEdit; TLabel *AuthTypesLabel; TEdit *AuthTypesEdit; + TCheckBox *HSTSEnableCheckBox; void __fastcall FormShow(TObject *Sender); void __fastcall AnswerSoundButtonClick(TObject *Sender); void __fastcall HangupSoundButtonClick(TObject *Sender); -- GitLab