Skip to content

Commit 771f049

Browse files
committed
fix for "security::get_secure_qualified_url" when no an old-style servername is used
1 parent 10e2014 commit 771f049

1 file changed

Lines changed: 26 additions & 5 deletions

File tree

‎packages/acs-tcl/tcl/security-procs.tcl‎

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2639,11 +2639,32 @@ ad_proc -public security::driver {} {
26392639
return $::acs::sdriver
26402640
}
26412641
set ::acs::sdriver ""
2642-
set server_modules [ad_server_modules]
2643-
foreach driver {nsssl nsssl_v4 nsssl_v6 nsopenssl nsssle} {
2644-
if {$driver ni $server_modules} continue
2645-
set ::acs::sdriver $driver
2646-
break
2642+
2643+
# Get the drivers registered for nsd (this requires at least NaviServer 4.99.15, Jan 2017)
2644+
try {
2645+
foreach driver_info [ns_driver info] {
2646+
if {[dict get $driver_info type] eq "nsssl"} {
2647+
# check, if the current server is using this driver
2648+
set serversSection [ns_configsection ns/module/[dict get $driver_info module]/servers]
2649+
if {$serversSection ne "" && [ns_info server] in [ns_set keys $serversSection]} {
2650+
set ::acs::sdriver [dict get $driver_info module]
2651+
return $::acs::sdriver
2652+
}
2653+
}
2654+
}
2655+
} on error {errorMsg} {
2656+
ns_log warning "Probably use of version of NaviServer before 4.99.15: $errorMsg"
2657+
}
2658+
if {$::acs::sdriver eq ""} {
2659+
#
2660+
# fallback to legacy code
2661+
#
2662+
set server_modules [ad_server_modules]
2663+
foreach driver {nsssl nsssl_v4 nsssl_v6 nsopenssl nsssle http https} {
2664+
if {$driver ni $server_modules} continue
2665+
set ::acs::sdriver $driver
2666+
break
2667+
}
26472668
}
26482669
return $::acs::sdriver
26492670
}

0 commit comments

Comments
 (0)