File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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}
You can’t perform that action at this time.
0 commit comments