Implemented an option to turn off TLS support
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
# created by Luxferre in 2024, released into public domain
|
||||
|
||||
package require uri
|
||||
package require tls
|
||||
package require inifile
|
||||
package require Tk
|
||||
|
||||
@@ -43,6 +42,7 @@ set bfg_highlight_fgcolor $bfg_main_fgcolor
|
||||
set bfg_highlight_bgcolor yellow
|
||||
set bfg_error_fgcolor red
|
||||
set bfg_error_bgcolor $bfg_main_bgcolor
|
||||
set bfg_tls_support 1
|
||||
|
||||
# read configuration from ini
|
||||
set confini ""
|
||||
@@ -52,6 +52,8 @@ set bookmarks ""
|
||||
if {$confini ne ""} {
|
||||
set val [::ini::value $confini net timeout $bfg_net_timeout]
|
||||
if {$val ne ""} {set bfg_net_timeout $val}
|
||||
set val [::ini::value $confini net tls "on"]
|
||||
if {$val ne ""} {set bfg_tls_support $val}
|
||||
set val [::ini::value $confini widget ttkTheme $bfg_theme]
|
||||
if {$val ne ""} {set bfg_theme $val}
|
||||
set val [::ini::value $confini widget font $bfg_widgetfont]
|
||||
@@ -106,6 +108,16 @@ if {$confini ne ""} {
|
||||
::ini::close $confini
|
||||
}
|
||||
|
||||
# load TLS support
|
||||
if {($bfg_tls_support eq "off") || ($bfg_tls_support eq "false" || ($bfg_tls_support eq "none"))} {
|
||||
set bfg_tls_support 0
|
||||
} else {
|
||||
set bfg_tls_support 1
|
||||
}
|
||||
if {$bfg_tls_support eq 1} {
|
||||
package require tls
|
||||
}
|
||||
|
||||
# generate fonts
|
||||
foreach fid {widget entry status text mono} {
|
||||
set vname [string cat bfg_ $fid font]
|
||||
@@ -392,6 +404,7 @@ proc extOpen {url} {
|
||||
# common URL downloader
|
||||
# return the contents in $bfg_response
|
||||
proc urldl {inputurl isbinary} {
|
||||
global bfg_tls_support bfg_response
|
||||
set parts [url2dict $inputurl]
|
||||
set host [dict get $parts host]
|
||||
set port [dict get $parts port]
|
||||
@@ -399,8 +412,18 @@ proc urldl {inputurl isbinary} {
|
||||
set selector [dict get $parts selector]
|
||||
set scheme [dict get $parts scheme]
|
||||
set is_tls 0
|
||||
if {$scheme eq "gemini"} {set is_tls 1}
|
||||
if {$scheme eq "gophers"} {set is_tls 1}
|
||||
if {($scheme eq "gemini") || ($scheme eq "gophers")} {
|
||||
if {$bfg_tls_support eq 0} { # report unsupported content
|
||||
set errmsg {BFG error: TLS support is turned off in the configuration}
|
||||
if {$scheme eq "gemini"} {
|
||||
set bfg_response [string cat "50 " $errmsg "\r\n"]
|
||||
}
|
||||
if {$scheme eq "gophers"} {
|
||||
set bfg_response [string cat "3" $errmsg "\t-\t-\t-\r\n"]
|
||||
}
|
||||
return $scheme
|
||||
} else {set is_tls 1}
|
||||
}
|
||||
set encoding "utf-8"
|
||||
if {$isbinary eq 1} {set encoding "binary"}
|
||||
reqresp $host $port $selector $is_tls $encoding
|
||||
|
||||
Reference in New Issue
Block a user